Não é possível usar o pacote CA integrado para verificar o certificado SSL GoDaddy SHA2

Não é possível usar o pacote CA integrado para verificar o certificado SSL GoDaddy SHA2

Encontrei um problema interessante. Temos um script PHP que entra em contato com um remetente LTL (https://facts.dohrn.com/). Esse script está falhando porque não consegue validar o certificado SSL. Entrei no site e descobri que eles estavam usando um certificado GoDaddy SHA2 (usa oPacotes de certificados GoDaddy - G2, que é usado para SHA2).

Eu tenho a versão mais recente ca-certificateinstalada e parece que eles têmAutoridade de certificação raiz Go Daddy - G2mas isso não é a mesma coisa e falha em todas as formas de validação. Finalmente consegui fazê-lo funcionar copiando o pacote e usando-o diretamente em uma solicitação CURL. Mas isso é simplesmente uma solução alternativa. Há mais alguma coisa que estou faltando que poderia fazer isso funcionar sem instalar a CA diretamente?

# openssl s_client -connect fact.dohrn.com:443
CONNECTED(00000003) profundidade = 0 OU = controle de domínio validado, CN = fatos.dohrn.com verificar
erro: num = 20: não foi possível obter o certificado do emissor local verificar retorno: 1
profundidade =0 OU = Controle de domínio validado, CN = fatos.dohrn.com verificar
erro:num=27:certificado não confiável verificar retorno:1 profundidade=0 OU =
Controle de domínio validado, CN = fatos.dohrn.com verificar
erro:num= 21:não é possível verificar o primeiro certificado verificar retorno:1
--- Cadeia de certificados 0 s:/OU=Controle de domínio validado/CN=facts.dohrn.com
i:/C=US/ST=Arizona/L=Scottsdale/O =GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN=Go Daddy Secure
Certificate Authority - G2
--- Certificado do servidor [certificado removido]
-----END CERTIFICATE-----
subject=/OU=Controle de domínio validado/CN= fact.dohrn.com
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN=Go Daddy Secure
Certificate Authority - G2
--- Nenhum nome de CA de certificado de cliente enviado
--- - O handshake SSL leu 1470 bytes e gravou 563 bytes
--- Novo, TLSv1/SSLv3, a cifra é RC4-SHA A chave pública do servidor é de 2048 bits A renegociação segura NÃO É suportada Compressão: NENHUMA Expansão:
NENHUMA Sessão SSL: Protocolo: Cifra
TLSv1
: ID de sessão RC4-SHA
: 1A23000017A7003411F3833970B7FA23C6D782E663CE0C8B17DE4D5A15DEE1A5
ID de sessão-ctx:
Chave mestra: 364598D78CF123F17230B0C25DD552F103BEF9A893F75EAD2B0
Arg-chave: Nenhum
Principal Krb5: Nenhum
Identidade PSK: Nenhuma
Dica de identidade PSK: Nenhum
Tempo de início: 1432044402
Tempo limite: 300 (seg)
Verifique o retorno código: 21 (não foi possível verificar o primeiro certificado)

Responder1

Parece que o servidor web emhttps://facts.dohrn.com/não inclui o certificado intermediário.

Isso parece ser um erro de configuração da parte deles. Definitivamente, é algo que pode causar problemas de compatibilidade, já que você só deve confiar nos clientes com os certificados raiz instalados de antemão.

Veja a cadeia de certificados, por exemplo, doResultado SSLLabs: (Você também notará que há muitos outros problemas com a configuração do SSL.)

1   Sent by server  facts.dohrn.com 
Fingerprint: 823e3a70f194c646498b2591069b3727ad0014d9 
RSA 2048 bits (e 65537) / SHA256withRSA

2   Extra download  Go Daddy Secure Certificate Authority - G2 
Fingerprint: 27ac9369faf25207bb2627cefaccbe4ef9c319b8 
RSA 2048 bits (e 65537) / SHA256withRSA

3   In trust store  Go Daddy Root Certificate Authority - G2   Self-signed  
Fingerprint: 47beabc922eae80e78783462a79f45c254fde68b 
RSA 2048 bits (e 65537) / SHA256withRSA


Eu diria que suas principais opções são tentar convencer o provedor de serviços a consertar o serviço ou contornar o problema, fornecendo ao cliente os certificados que o servidor deveria fornecer.

informação relacionada