Questo è legato a un'altra domanda, Come verificare una firma di un'entità da un'altra utilizzando la CLI di OpenSSL?
Ho usato openssl s_client -showcerts -connect www.google.com:443
per raccogliere tre certificati da google. Chiamali g0
, g1
, g2
, dove:
-
g0
è un certificato foglia firmato dalla CA intermedia di Google -
g1
contiene la chiave pubblica della CA intermedia ed è firmata da GeoTrust CA -
g2
contiene la chiave pubblica GeoTrust ed è firmata da EquiFax CA
Il mio obiettivo è dimostrare che questa è una catena di firme valida, passo dopo passo, utilizzando la CLI di OpenSSL. La prova intuitiva è questa:
$ openssl verify -CAfile g1 g0
Tuttavia, OpenSSL utilizza certs dal suo store di fiducia (vedi Come verificare una firma di un'entità con un'altra utilizzando OpenSSL CLI? ). Così, invece, uccido l'archivio fidato come @ dave_thompson_085 suggerito in un commento alla domanda sopra citata. Ma questo non sembra funzionare:
$ 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
Quindi, come faccio a pubblicare correttamente questo comando verify
in modo tale da poter verificare in particolare se g1
ha firmato g0
?
$ openssl version
OpenSSL 1.0.1f 6 Jan 2014