Comprobación programada de certificados intermedios

0

Nessus informa que un "Certificado SSL no se puede confiar".

Esto se debe a que el certificado intermedio no se encuentra en el paquete de certificado presentado durante el protocolo de enlace TLS / SSL.

He visto un par de hilos similares:

Esto no es un problema ya que la mayoría de los navegadores descargarán certificados intermedios.

Si intento con openssl para verificar el certificado:

openssl s_client -connect example.com:443 -showcerts </dev/null

La salida solo muestra el primer certificado y luego un error unable to get local issuer certificate .

O si intento enlace obtengo el mismo error:

Chain of trust               NOT ok (chain incomplete)

¿Hay algún método que pueda usar que actúe de la forma en que lo haría un navegador y descarga cualquier certificado intermedio?

Incluso si hay una manera de identificar desde dónde descargar certificados intermedios, me complace codificar algo que haría esto, pero es solo saber qué buscar en la respuesta del certificado del servidor.

Actualizar

En ejecución

openssl x509 -in g0 -text

proporciona la información AIA para las URL intermedias de descarga de certificados

Authority Information Access: 
                OCSP - URI:http://ocsp.int-x3.letsencrypt.org
                CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

Entonces podemos correr:

wget http://cert.int-x3.letsencrypt.org/ -O intermed.der

entonces

openssl x509 -inform DER -in intermed.der -out intermed.pem -outform PEM

entonces

openssl x509 -in intermed.pem -text

Lo que da

 Authority Information Access: 
                OCSP - URI:http://isrg.trustid.ocsp.identrust.com
                CA Issuers - URI:http://apps.identrust.com/roots/dstrootcax3.p7c

Pero esto está en un formato diferente y al intentar convertirlo se produce un error:

openssl pkcs7 -print_certs -in dstrootcax3.p7c -out dstrootcax3
unable to load PKCS7 object
139884641126208:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto/pem/pem_lib.c:691:Expecting: PKCS7

En relación con comentario de Steffen Ullrich , esto tiene sentido y explicaría por qué A veces funciona mejor que el certificado no se puede descargar. Sin embargo, todavía me gustaría imaginar este con el objetivo final de utilizar openssl para verificar toda la cadena, incluidos los certificados intermedios descargables.

    
pregunta SilverlightFox 07.11.2017 - 14:43
fuente

0 respuestas