Configurando um SSL Godaddy no CentOS?

1

Eu nunca configurei um SSL no Linux antes, mas tenho uma ideia geral de como ele funciona. Especificações do servidor abaixo se isso ajuda:

Servidor: CentOS Linux 6 Estação de trabalho: Windows 7

Então, eu tenho 4 domínios, todos compartilhando uma única instalação e endereço IP do Magento. Suponha que um dos meus domínios seja "mywebsite1.com" Estou tentando ativar o SSL apenas para este domínio por enquanto, mas estou com erros. O que estou fazendo de errado? Aqui está o meu fluxo de trabalho:

  1. Eu comprei um SSL do Godaddy, em seguida, gerou o csr e a chave com o comando dado por eles:

    openssl req -new -newkey rsa:2048 -nodes -keyout mywebsite1.key -out mywebsite1.csr

  2. Copio os arquivos para / etc / pki / tls / private

  3. Eu abro mywebsite1.crs e copio e colo o código para Godaddy.

  4. Eu gero os arquivos crt e os baixo do GoDaddy, faço o upload para o meu servidor e os movo para / etc / pki / tls / certs

  5. a. Primeira tentativa, abri o /etc/httpd/conf.d/ssl.conf e atualizei o Os valores SSLCertificate, KeyFile e ChainFile do bloco padrão do VirtualHost para apontar para os locais corretos.

    b. 2a tentativa, seguindo link que modifiquei ssl.conf e adicionou esta diretiva:

    NameVirtualHost *:443

    c. Então eu removi todo o bloco default VirtualHost (que era bastante demorado).

    Última tentativa, adicionei o seguinte ao arquivo ssl.conf modificado de

<VirtualHost *:443>

    SSLEngine on

    SSLCertificateFile /etc/pki/tls/certs/mywebsite1.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/mywebsite1.key
    SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt
    DocumentRoot /var/www/html
    ServerName mywebsite1.com
</VirtualHost>

6 .. Eu reinicio o Apache

7 .. Eu então vou para o link apenas para encontrar erros que me impedem de ver o site em vários navegadores.

Navegador: Firefox

SSL received a record with an unknown content type.

(Error code: ssl_error_rx_unknown_record_type)

Navegador: Chrome

Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

Navegador: IE ... leva-me ao Google ...

link

NameVirtualHost 12.34.567.89

<VirtualHost 12.34.567.89>
    DocumentRoot  /var/www/html
    ServerName website1.com
</VirtualHost>

<VirtualHost 12.34.567.89>
    DocumentRoot  /var/www/html
    ServerName website2.com
</VirtualHost>

<VirtualHost 12.34.567.89>
    DocumentRoot  /var/www/html
    ServerName website3.com
</VirtualHost>

<VirtualHost 12.34.567.90:80>
    DocumentRoot /var/www/html
    ServerName website4.com
</VirtualHost>

Notas:

  1. Eu li que você deve ativar o ssl com um comando chamado "a2enmod ssl", mas esse comando não existe para o meu servidor.
  2. Não há logs de erros ssl em / etc / httpd / logs.
  3. De acordo com Godaddy, fui instruído a nomear a chave "mywebsite1" sem a extensão. No entanto, eles me dão um crt com a extensão, o que é estranho.
  4. Esta é apenas a fase de desenvolvimento e essa alteração precisará ser rapidamente reproduzida com um novo SSL e diferentes domínios, uma vez que lançarmos o servidor de produção.

Eu tentei todas as etapas 3 vezes (veja 5a-5c), mas ainda não tive sorte em fazer com que o SSL funcionasse em um dos meus domínios. Como posso fazer o SSL funcionar?

ATUALIZAÇÃO: apachectl -S

12.34.567.90:80 mywebsite4.com (/etc/httpd/conf/httpd.conf:1021)
12.34.567.89:* is a NameVirtualHost
default server mywebsite3.com (/etc/httpd/conf/httpd.conf:1016)
port * namevhost mywebsite3.com (/etc/httpd/conf/httpd.conf:1016)
port * namevhost mywebsite1.com (/etc/httpd/conf/httpd.conf:1026)
port * namevhost mywebsite2.com (/etc/httpd/conf/httpd.conf:1031)
port * namevhost mywebsite5.com (/etc/httpd/conf/httpd.conf:1036)
wildcard NameVirtualHosts and _default_ servers:
*:443 is a NameVirtualHost
default server mywebsite1.com (/etc/httpd/conf.d/ssl.conf:77)
port 443 namevhost mywebsite1.com (/etc/httpd/conf.d/ssl.conf:77)
Syntax OK

ATUALIZAÇÃO: funcionou ... mas ...

Eu consegui executar o SSL alterando o vhost para apontar apenas para mywebsite1 em vez de *: 443

<VirtualHost mywebsite1.com>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/mywebsite1.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/mywebsite1.key
    #SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt
    DocumentRoot /var/www/html
    ServerName mywebsite1.com
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn
</VirtualHost>

Isso puxa o SSL, no entanto ... o protocolo HTTP retorna uma "Solicitação incorreta"

Essa alteração parece estar afetando a visualização sem SSL do site. Eu não posso especificar a porta porque reiniciar o apache me dará um erro que portas e não portas não podem ser misturadas.

UPDATE

Corrigido com a sugestão de Michael Hampton. Obrigado pessoal.

    
por Lakitu 22.03.2013 / 17:12

2 respostas

3

Você tem um monte de <VirtualHost> entradas que não possuem um número de porta definido. Portanto, como sua apachectl -S output mostrou, a definição está sendo aplicada a todas as portas de escuta. Defina um número de porta para cada um desses <VirtualHost> s.

    
por 25.03.2013 / 15:12
0

Se você estava usando o padrão /etc/httpd/conf.d/ssl.conf, você deveria ter logs:

Registros ErrorLog / ssl_error_log Logs do TransferLog / ssl_access_log LogLevel avisar

Tente se livrar de:

SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt

e também certifique-se de que seu certificado não tenha uma linha ausente da pasta de cópia.

Tente testar primeiro com um certificado auto-assinado, se tiver problemas: link

Isso deve ajudar com os outros problemas:

link

    
por 22.03.2013 / 18:43