Você acabou de receber um novo certificado HTTPS (SSL / TLS) e o que você espera que sejam os Certificados Intermediários corretos.
Isso é configurado no Apache com:
SSLCertificateKeyFile /etc/ssl/www.example.com.key
SSLCertificateChainFile /etc/ssl/www.example.com.chn
SSLCertificateFile /etc/ssl/www.example.com.crt
Ou no Nginx com:
ssl_certificate_key /etc/apache2/ssl/www.example.com.key;
ssl_certificate /etc/apache2/ssl/www.example.com.pem;
Lembrar apachectl configtest
apenas verifica se esses arquivos existem; e nginx -t
"falhará se o certificado do site não for o primeiro no arquivo crt e também se a chave estiver errada" (obrigado Drifter104 ).
Então, como você pode verificar tudo antes de reiniciar?
Possíveis problemas
-
Você tem os Intermediários incorretos (por exemplo, GeoTrust lista todos os seus Intermediários em uma página ).
-
Você acidentalmente misturou o arquivo do Certificado Intermediário com o arquivo de certificado do seu site.
-
Você incluiu o Certificado Raiz (afetando o desempenho, pois isso envia dados desnecessários).
-
Está faltando um ou mais certificados intermediários.
-
O certificado é para a chave errada.
-
Você deixou esses arquivos legíveis por qualquer pessoa no servidor (por exemplo, chmod 644
).
-
Você está usando o certificado errado (o domínio não está em CN ou SAN )
Alguns pontos de partida
Extraindo informações sobre os arquivos de chave, CSR ou certificado:
openssl rsa -check -in "www.example.com.key";
openssl req -text -noout -verify -in "www.example.com.csr";
openssl x509 -text -noout -in "www.example.com.crt";
Obtendo o hash da chave pública com o sha256 (por exemplo, para configurar o HPKP ):
openssl rsa -in "www.example.com.key" -pubout -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl x509 -in "www.example.com.chn" -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl req -in "www.example.com.csr" -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
openssl s_client -connect www.example.com:443 | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
É possível validar via SSL Labs , mas somente quando você começar a usar essa configuração.