Bir web sitesinden şunları yapabilirsiniz:
openssl s_client -showcerts -verify 5 -connect stackexchange.com:443 < /dev/null
Bu, sertifika zincirini ve sunucunun sunduğu tüm sertifikaları gösterecektir.
Şimdi, bu iki sertifikayı dosyalara kaydedersem, şunu kullanabilirim openssl verify
:
$ openssl verify -show_chain -untrusted dc-sha2.crt se.crt
se.crt: OK
Chain:
depth=0: C = US, ST = NY, L = New York, O = "Stack Exchange, Inc.", CN = *.stackexchange.com (untrusted)
depth=1: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA (untrusted)
depth=2: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
Bu -untrusted
seçenek ara sertifikaları / sertifikaları vermek için kullanılır; se.crt
doğrulamak için sertifika. Derinlik = 2 sonuç sistem güvenilir CA deposundan geldi.
Ara sertifikalarınız yoksa, doğrulama işlemini gerçekleştiremezsiniz. Bu sadece X.509’un işleyiş şekli.
Sertifikaya bağlı olarak, ara ürünü almak için bir URI içerebilir. Örnek olarak openssl x509 -in se.crt -noout -text
şunları içerir:
Authority Information Access:
OCSP - URI:http://ocsp.digicert.com
CA Issuers - URI:http://cacerts.digicert.com/DigiCertSHA2HighAssuranceServerCA.crt
“CA İhraççıları” URI'sının ara sertifikaya işaret ettiğini (DER biçiminde, bu yüzden openssl x509 -inform der -in DigiCertSHA2HighAssuranceServerCA.crt -out DigiCertSHA2HighAssuranceServerCA.pem
OpenSSL tarafından daha fazla kullanmak üzere kullanmanız gerekir ).
Eğer kaçarsan openssl x509 -in /tmp/DigiCertSHA2HighAssuranceServerCA.pem -noout -issuer_hash
almak 244b5494
en sistem kök CA deposunda bulabileceği, /etc/ssl/certs/244b5494.0
(sadece ekleme .0
isme).
Bunları sizin için yapmanın kolay ve kolay bir OpenSSL komutu olduğunu sanmıyorum.