Duas coisas que você pode fazer:
- Verifique a cadeia intermediária
- Limpar a cadeia intermediária
Verifique a cadeia intermediária
Como o erro parece indicar, há algo errado em sua cadeia de certificados intermediários. Você deve verificar de onde obteve seu certificado e que obteve o pacote intermediário correto.
Você deve verificar o "hash" e o "hash do emissor" de cada certificado na cadeia com os comandos openssl x509 -noout -hash
e openssl x509 -noout -issuer_hash
. Tente isso para obter o hash do emissor do seu certificado:
cat /path/to/cert/mysite.com.cert | openssl x509 -noout -issuer_hash
Em seguida, tente encontrar um certificado com esse hash no arquivo sf_bundle.crt
que você especificou como SSLCertificateChainFile
. Você pode ter que extrair os certificados (ou apenas copiá-los para o comando):
cat first_cert_from_sf_bundle.crt | openssl x509 -noout -hash
Verifique todos eles. Se ninguém tem esse hash, então algo está errado ali. Continue fazendo essas verificações até encontrar um certificado que tenha o mesmo -hash
e -issuer_hash
. Este é o seu certificado raiz.
Se algo estiver faltando, você pode verificar os outros arquivos intermediários aqui link . Faça o download deles e compare os -hash
deles com os -issuer_hash
nos quais você ficou preso.
Se tudo estiver bem, então ....
Limpar a cadeia intermediária
Eu vi isso também ajudar quando você recebe erros de validação estranhos. Certifique-se de que sua cadeia intermediária liste somente os certificados necessários e na ordem correta (é mais fácil se estiver no formato PEM). Em outras palavras, se sua cadeia for Your cert -> cert A -> cert B -> Starfield Root cert
. Tente anexar esses nesta ordem (você pode pular o primeiro e o último) para que sua cadeia intermediária pareça com algo assim:
-----BEGIN CERTIFICATE-----
cert A
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
cert B
-----END CERTIFICATE-----
Pessoalmente, gosto de manter todos esses certificados (certificado pessoal, seguidos pelos intermediários, seguidos pelo certificado raiz) no mesmo arquivo. Então, apenas especifico esse arquivo como SSLCertificateFile
e SSLCertificateChainFile
.