Eu tive o mesmo problema - comprei um certificado SSL básico (da Network Solutions), instalei-o no nginx e ele funcionou bem no Opera e no IE - mas não no Firefox 3.6.12. Foi assim que resolvi o problema. Note que eu tenho acesso root / shell ao meu VPS, eu não sei se você faz (pelo menos isso pode apontar seus provedores na direção certa).
O primeiro passo para encontrar a solução foi usar Qualys (conforme esta outra resposta ). Ele me disse que a cadeia estava incompleta .
Em segundo lugar, usei OpenSSL para testar / depurar. Supondo que você tenha acesso ao shell, você pode fazer o comando ( q ou CTRL-C para desconectar):
openssl s_client -connect mysite.com:443
e você provavelmente verá o erro "não é possível obter o certificado do emissor local". Esta é também uma maneira de testar quando está funcionando, no shell, sem rodar o Firefox.
Cadeias de certificado SSL
Some browsers may complain about a certificate signed by a well-known certificate authority, while other browsers may accept the certificate without issues. This occurs because the issuing authority has signed the server certificate using an intermediate certificate that is not present in the certificate base of well-known trusted certificate authorities which is distributed with a particular browser. In this case the authority provides a bundle of chained certificates which should be concatenated to the signed server certificate. The server certificate must appear before the chained certificates in the combined file
Configuração do Nginx
No meu caso, eu obtive três arquivos da Network Solutions - mysite.com.crt
, AddTrustExternalCARoot.crt
e NetworkSolutionsDVServerCA.crt
. Não havia nenhum arquivo pacote , mas é possível criar um dos outros certificados. Depois de algumas tentativas e erros, descobri que precisava:
$ cat mysite.com.crt NetworkSolutionsDVServerCA.crt > mysite.com.chain.crt
O passo final foi reconfigurar o meu servidor nginx com o novo arquivo:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/mysite.com.chain.crt;
ssl_certificate_key /etc/ssl/private/mysite.com.key;
server_name mysite.com;
# and so on
}
Depois de obter os certificados certos no pacote e reiniciar o nginx, openssl
não informou erros, o Firefox conseguiu a página sem problemas e o Qualys informou que a cadeia era válida.
Configuração do Apache
Como você está executando o Apache, então você (ou seus provedores) precisam configurá-lo para SSL com os locais de arquivo corretos, um dos quais é o arquivo em cadeia intermediário :
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>