¿Cómo verificar una firma de una entidad por otra utilizando OpenSSL CLI?

3

Estoy enseñando una clase sobre cadenas de certificados, así que descargo la cadena de www.google.com que tiene 4 certificados. Quiero demostrar cómo funcionan las dependencias desde el emisor al sujeto, demostrando que cada entidad firma el certificado del que está debajo.

Llame a los certificados g3 , g2 , g1 y g0 donde g3 es una raíz autofirmada, g2 y g1 son CA intermedios y g0 es un certificado de hoja . Intento esto:

$ openssl verify g0
error 20 at 0 depth lookup:unable to get local issuer certificate

Esto tiene sentido: la verificación falla porque se trata de un certificado de hoja sin CA dada. Así que a continuación intento esto:

$ openssl verify -CAfile g1 g0
g0: OK

¡Genial! Con el intermedio, ahora funciona! Continuando por la cadena:

$ openssl verify -CAfile g2 g1
g1: OK

¡Impresionante! Parece que g1 está firmado correctamente por g2 . Pero esto no es realmente lo que está siendo verificado. Porque g1 también está aparentemente firmado por g3 :

$ openssl verify -CAfile g3 g1
g1: OK

Y, de hecho, g1 ni siquiera necesita una CA:

$ openssl verify g1
OK

¡Parece que cualquier certificado con CA establecido en Verdadero en restricciones básicas siempre pasará la verificación!

Pregunta: ¿Cómo verifico que g2 realmente firmó g1 usando OpenSSL desde el CLI? ¿Y es este otro error de OpenSSL? ¿O simplemente un comportamiento contraintuitivo?

    
pregunta Fixee 15.03.2016 - 17:30
fuente

1 respuesta

2

Creo que certs g2 y g3 ya están presentes en el directorio de confianza predeterminado (/ etc / ssl / certs /) que openssl utiliza para construir la cadena de confianza y encontrar el 'ancla de confianza'.

En mi configuración:

  

g2 = GeoTrust Global CA
    g3 = Equifax Secure Certificate Authority

Ambos certificados están presentes en el directorio / etc / ssl / certs /.

Si prueba el mismo experimento con una cadena de certificados autogenerada, encontrará el comportamiento que espera.

    
respondido por el Rahul 15.03.2016 - 23:22
fuente

Lea otras preguntas en las etiquetas