Esto está relacionado con otra pregunta, ¿Cómo verificar una firma de una entidad por otra usando OpenSSL CLI?
Usé openssl s_client -showcerts -connect www.google.com:443
para recopilar tres certificados de google. Llámalos g0
, g1
, g2
, donde:
-
g0
es un certificado de hoja firmado por la CA intermedia de Google -
g1
contiene la clave pública de la CA intermedia y está firmada por GeoTrust CA -
g2
tiene la clave pública de GeoTrust y está firmada por EquiFax CA
Mi objetivo es demostrar que esta es una cadena de firmas válida, paso a paso, utilizando la CLI de OpenSSL. El intento intuitivo es este:
$ openssl verify -CAfile g1 g0
Pero resulta que OpenSSL está utilizando certificados de su tienda de confianza (consulte Cómo verificar una firma de una entidad por otra usando OpenSSL CLI? ). Así que en lugar de eso, mato la tienda de confianza como @dave_thompson_085 sugirió en un comentario a la pregunta mencionada anteriormente. Pero esto no parece funcionar:
$ openssl verify -CApath /dev/null -CAfile g1 g0
g1.crt: C = US, O = Google Inc, CN = Google Internet Authority G2
error 2 at 1 depth lookup:unable to get issuer certificate
Entonces, ¿cómo emito correctamente este comando verify
de tal manera que puedo verificar específicamente si g1
ha firmado g0
?
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014