Transferindo certificado SSL para novo servidor

1

Estamos migrando de um site da OSCommerce para o Magento e também para servidores de swicthing. O servidor antigo está no Apache e o nosso novo está no NGINX. O certificado SSL que temos parece ter sido comprado da GODADDY.

Eu quase descobri como mudar nosso certificado SSL de nosso servidor antigo para nosso novo servidor. Mas tem algumas perguntas?

1. CERTIFICADO REKEY

Eu descobri três tipos de arquivos SSL do antigo host virtual apache do site OSCommerce:

SSLCertificateFile /etc/apache2/ssl/11-2013/09********ss.crt
SSLCertificateKeyFile /etc/apache2/ssl/11-2013/server.key
SSLCertificateChainFile /etc/apache2/ssl/11-2013/gd_bundle.crt

Posso apenas copiá-los para um local no novo servidor e referenciá-los no arquivo de configuração do NGINX? Ou eu preciso gerar uma nova chave ssl, re-chave no arquivo crt (qual delas)?

2. CONFIGURAÇÃO NGINX A configuração do NGINX só parece precisar de referência a dois arquivos que o Apache faz?

# Specify path to your SSL certificates.
#ssl_certificate /etc/nginx/certificates/yourcertificate.crt;
#ssl_certificate_key /etc/nginx/certificates/yourcertificate.key;

Qual arquivo CRT devo referenciar para o NGINX, e o outro?

3. SSL 3.0 e amp; SHA1 Quando eu verifico nosso site no verificador de SSL do DigiCert ele diz:

Protocol Support

TLS 1.0, SSL 3.0

SSL 3.0 is an outdated protocol version with known vulnerabilities.

SSL certificate

Common Name = ourdomain.com

Subject Alternative Names = ourdomain.com, www.ourdomain.com

Issuer = Go Daddy Secure Certification Authority

Serial Number = *****************

SHA1 Thumbprint = ***************************

Key Length = 4096 bit

Signature algorithm = SHA1 + RSA (deprecated)

Secure Renegotiation: Supported

Como posso garantir que estamos usando o protocolo correto & SHA Isso é algo que eu mudo no novo arquivo de configuração do nginx?

    
por Holly 24.07.2015 / 18:56

2 respostas

1

ssl_certificate_key deve conter o que está no server.key, ou seja, eles chave privada não criptografada do servidor.

ssl_certificate deve conter o certificado do servidor e a cadeia de certificados, conforme explicado na documentação , nessa ordem . Então, é basicamente a saída de cat 09********ss.crt gd_bundle.crt

Uma ferramenta on-line útil para verificar rapidamente o que exatamente cada um desses blocos -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- contém é link - se você tem uma máquina com o openssl instalado, você pode usar

openssl x509 -in certificate.crt -text -noout

Com relação à configuração SSL / TLS, eu gosto desta página no wiki da Mozilla . Ele explica a maioria das siglas que você pode encontrar e dá conselhos sólidos em relação a configurações sensíveis. Existe uma ferramenta online que irá criar configurações de referência para o Apache, o nginx, o haproxy e o AWS LB, aqui . Como exemplo, uma configuração completa do nginx, com grampeamento OCSP e HSTS usando o perfil intermediário, é assim, mas você precisa entender que esses perfis evoluem e devem ser atualizados regularmente.

server {
    listen 443 ssl;

    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
    ssl_certificate /path/to/signed_cert_plus_intermediates;
    ssl_certificate_key /path/to/private_key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;

    # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
    ssl_dhparam /path/to/dhparam.pem;

    # intermediate configuration. tweak to your needs.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_prefer_server_ciphers on;

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

    ## verify chain of trust of OCSP response using Root CA and Intermediate certs
    ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

    resolver <IP DNS resolver>;

    ....
}

Depois de tudo o que foi implementado e testado, vá para ssllabs e faça um teste. Se você perdeu alguma coisa, verá o que ainda precisa ser feito.

    
por 24.07.2015 / 19:52
1
  1. Primeira parte:

    SSLCertificateFile /etc/apache2/ssl/11-2013/09********ss.crt
    

Este é o certificado público do seu site. Este é o que você re-chave para mudar o SHA1 para SHA2 .

SSLCertificateKeyFile /etc/apache2/ssl/11-2013/server.key

Este é um certificado privado para o seu servidor da Web.

SSLCertificateChainFile /etc/apache2/ssl/11-2013/gd_bundle.crt

Este é o pacote de certificados intermediários para acumular seu certificado de servidor da web para a autoridade raiz no godaddy (porque o certificado raiz não é necessariamente confiável pelos navegadores por padrão)

  1. Isso fornece instruções sobre como configurar o NGINX para usar uma cadeia de certificados intermediários (o que você provavelmente precisará fazer desde que precisava fazer isso em seu servidor Apache): nginx docs: Configurando servidores HTTPS

  2. Você não alteraria a configuração do certificado no arquivo de configuração do NGINX. Uma vez que um certificado tenha recursos, você pode ativar e desativar esses recursos no arquivo de configuração (de acordo com a resposta do fvu), mas primeiro é necessário basicamente "atualizar" seu próprio certificado. O GoDaddy tem alguns artigos que podem ser úteis para isso, o primeiro apenas descreve o que você está fazendo quando faz essa alteração: link o segundo diz a você como fazer isso usando o serviço: link .

Depois de ter tudo isso em vigor, você pode usar o ssllabs para testar, mas isso só funcionará se o seu novo site estiver em execução no hostname correto no DNS (o que talvez você não queira fazer se ainda precisar o site no Apache até que você tenha terminado). Supondo que você tenha raiz em algum lugar em uma máquina linux / unix, você pode usar o openssl para testar isso:

  1. Digite o endereço IP do seu novo serviço NGINX como o nome do site que você deseja testar. Portanto, o seu site principal fica onde está no Apache, você só informa sua máquina local para encontrá-lo no site NGINX. Depois de fazer isso, execute o seguinte comando e veja o que ele gera:

    openssl s_client -connect hostname:port
    

Ou use este comando, que aponta diretamente para o que você está verificando: link

    
por 25.07.2015 / 01:03