De onde vem a cadeia de certificados do openssl?

De onde vem a cadeia de certificados do openssl?

Estou tentando verificar se a cadeia de flo2cash.com openssl me dá isto: openssl s_client -showcerts -connect flo2cash.com:443
CONNECTED(00000003) depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com

Indicando que a raiz é "AddTrust External CA Root" Tanto o Chrome quanto o Firefox mostram apenas 3 níveis na cadeia com o certificado enraizado em "COMODO RSA Certification Authority"

Se eu verificar o último certificado da cadeia, recebo o seguinte: subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root notBefore=May 30 10:48:38 2000 GMT notAfter=May 30 10:48:38 2020 GMT

Este certificado é muito antigo.

Isto é o que está nos pacotes CA que posso encontrar na minha máquina (Fedora 25 corrigido para o mais recente) e também nos navegadores:

subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority notBefore=Jan 19 00:00:00 2010 GMT notAfter=Jan 18 23:59:59 2038 GMT

Esse certificado antigo deve estar vindo de algum lugar.

Responder1

No meu laptop Mint eu tenho ovelhocertificado:

$ openssl x509 -noout -subject -issuer -in /usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt 
subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority

openssl s_clientretorna o certificado CA mais superior COMODO RSA Certification Authorityassinado pela raiz acima:

$ openssl s_client -connect flo2cash.com:443
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

Edite /etc/ca-certificates.confe desmarque a linha que contém o certificado CA raiz acima ( mozilla/AddTrust_External_Root.crt):

#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/ACEDICOM_Root.crt
!mozilla/AC_Raíz_Certicámara_S.A..crt
mozilla/Actalis_Authentication_Root_CA.crt
!mozilla/AddTrust_External_Root.crt
mozilla/AddTrust_Low-Value_Services_Root.crt
mozilla/AddTrust_Public_Services_Root.crt
mozilla/AddTrust_Qualified_Certificates_Root.crt

Execute update-ca-certificatespara reconstruir seu cache.

Depois disso, você obterá a mesma cadeia do seu navegador:

$ openssl s_client -connect flo2cash.com:443 -showcerts
CONNECTED(00000003)
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

O caminho que um cliente cria do certificado da entidade final para o certificado CA raiz depende da lógica programada no cliente. Isso não está definido nas especificações, portanto está sujeito à interpretação dos desenvolvedores de cada cliente específico.

Com ambos os certificados de CA raiz habilitados no OpenSSL, ele escolhe o primeiro caminho mostrado. Seus navegadores escolheram de forma diferente, porque podem.

Responder2

Qual certificado antigo? Opontecertificado para Autoridade de Certificação Comodo RSA da raiz CA externa AddTrust é enviada pelo servidor. Oraizcertificado para AddTrust externodeve vir do armazenamento confiável do seu sistema; ele não é enviado pelo servidor e, mesmo que fosse, o OpenSSL descarta corretamente qualquer raiz recebida do servidor e confia apenas na raiz que encontra no armazenamento confiável local. Eu não uso o Fedora, mas meu CentOS o possui instalado /etc/pki/tls/certs/ca-bundle.crt( ca-certificatese provavelmente o RHEL é o mesmo).

Sim, esta raiz AddTrust é uma das raízes de CA mais antigas ainda ativas. Embora o certificado da ponte não esteja antes de 2000-05-30 10:48:38 alinhado perfeitamente (e de forma irrealista) com seu pai, tenho certeza de que estava desatualizado; é assinado com SHA384, mas o FIPS180-2 não foi publicado até 2002, muito menos implementado amplamente. (Por exemplo, o Windows XP não implementou certificados assinados por SHA2 até o SP3 em 2008.)

Raiz própria do Comodo RSAnão temBefore 2010-01-19 00:00:00 mas também pode ser retroativo, ou então foi mantido na prateleira por um tempo; ele também é assinado com SHA384, mas AIR nenhuma das CAs públicas começou a emitir e encadear SHA2 até o início de 2014 (a segunda tentativa de prazo do NIST) e a maioria só no final de 2015, quando o CABforum e alguns navegadores importantes começaram a reclamar do SHA1. Não me lembro onde o Comodo se enquadra nesse espectro, mas o único armazenamento confiável que posso rastrear facilmente ao longo do tempo, o Oracle, anteriormente Sun Java, não foi adicionado comodorsacaaté 8u51 em 2015-06. (Tinha addtrustexternalcade voltapelo menospara 6u7 em 2008-06; Não tenho os dados antes disso.)

Pelo menos uma parte do site da Comodoainda mostra a cadeia de confiança por meio do certificado de ponte para AddTrust como correta, mesmo que expire em menos de 3 anos.

informação relacionada