Estoy viendo algunos problemas curiosos con la verificación del certificado para un certificado Emisor: Entrust - L1K que se emitió y está en uso (según la inspección del certificado en Chrome y Firefox) para un sitio interno aquí.
-
No veo ningún certificado de Asunto: Entrust - L1K en ninguno de mis llaveros locales, pero los navegadores se conectan alegremente, al menos desde dentro de la empresa.
-
Primero noté que algo andaba mal con algunos scripts de python, luego determiné que openssl no verificaría el certificado del sitio. Tampoco tiene representación en el paquete de certifi cert de python, que supuestamente se mantiene actualizado.
-
(También hay un caso verificado de una persona que puede conectarse sin problemas dentro de la red corporativa pero ve una advertencia de "no se puede verificar" sobre este certificado de Entrust - L1K al conectarse a través de VPN, mismo sistema, sin reinicio ni nada)
Después de descargar un certificado para Entrust - L1K directamente de Entrust con Issuer: Entrust - G2 , puedo construir una cadena de confianza válida enraizada en una CA de Entrust Root:
Entrust Root Certification Authority - G2 (this is present in my keychain)
--> Entrust Certification Authority - L1K (this is the newly downloaded cert)
--> Local site (this is the cert the browser was presented)
Tenga en cuenta que estoy haciendo esto con openssl y con los archivos cert manipulados en un directorio de trabajo. Solo el certificado de Entrust Root observado está presente en mi llavero.
Tengo varias preguntas en mi mente.
-
(El principal) ¿Cómo puedo ver la cadena de confianza que hace que mi navegador no se queje cuando me conecto al sitio local, dado que no puedo encontrar certificados en ninguno de mis llaveros que puede construir uno?
-
¿Es L1K una nueva sub-autoridad bajo Entrust? El certificado Subject: Entrust - L1K tiene
Validity
Not Before: Oct 5 19:13:56 2015 GMT
. ¿Cómo debería un nuevo certificado como este normalmente abrirse camino hacia los sistemas finales? -
¿Hay algo más que alguna cadena de certificados local que los navegadores del cliente puedan usar para la verificación de certificados, que explique las conexiones felices? ¿Y qué podría explicar el error de verificación del certificado en VPN?
A continuación se muestra la forma de texto del certificado L1K que se obtiene de Entrust manualmente. Como se mencionó anteriormente, este certificado completa la cadena de confianza entre el certificado del sitio y el certificado raíz para Entrust Root Certification Authority - G2 :
$ openssl x509 -in ../entrust_l1k.pem -text | more
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
0e:e9:4c:c3:00:00:00:00:51:d3:77:85
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
Validity
Not Before: Oct 5 19:13:56 2015 GMT
Not After : Dec 5 19:43:56 2030 GMT
Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
:
(elided)
:
35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
d9:1b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
Authority Information Access:
OCSP - URI:http://ocsp.entrust.net
X509v3 CRL Distribution Points:
URI:http://crl.entrust.net/g2ca.crl
X509v3 Certificate Policies:
Policy: X509v3 Any Policy
CPS: http://www.entrust.net/rpa
X509v3 Subject Key Identifier:
82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
X509v3 Authority Key Identifier:
keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB