एक वेब साइट से, आप यह कर सकते हैं:
openssl s_client -showcerts -verify 5 -connect stackexchange.com:443 < /dev/null
वह सर्टिफिकेट चेन और सर्वर द्वारा प्रस्तुत सभी सर्टिफिकेट दिखाएगा।
अब, अगर मैं उन दो प्रमाणपत्रों को फ़ाइलों में सहेजता हूं, तो मैं उपयोग कर सकता हूं 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
-untrusted
विकल्प मध्यवर्ती प्रमाणपत्र (रों) देने के लिए प्रयोग किया जाता है; se.crt
सत्यापित करने के लिए प्रमाण पत्र है। गहराई = 2 परिणाम सिस्टम विश्वसनीय सीए स्टोर से आया था।
यदि आपके पास मध्यवर्ती प्रमाणपत्र नहीं है, तो आप सत्यापन नहीं कर सकते। बस यही X.509 काम करता है।
प्रमाण पत्र के आधार पर, इसमें इंटरमीडिएट प्राप्त करने के लिए एक यूआरआई हो सकता है। एक उदाहरण के रूप openssl x509 -in se.crt -noout -text
में , शामिल हैं:
Authority Information Access:
OCSP - URI:http://ocsp.digicert.com
CA Issuers - URI:http://cacerts.digicert.com/DigiCertSHA2HighAssuranceServerCA.crt
यह "CA जारीकर्ता" यूआरआई मध्यवर्ती प्रमाण पत्र (डीईआर प्रारूप में, इसलिए आपको openssl x509 -inform der -in DigiCertSHA2HighAssuranceServerCA.crt -out DigiCertSHA2HighAssuranceServerCA.pem
इसे ओपनएसएसएल द्वारा आगे उपयोग के लिए परिवर्तित करने के लिए उपयोग करने की आवश्यकता है) को इंगित करता है ।
यदि आप चलाते हैं openssl x509 -in /tmp/DigiCertSHA2HighAssuranceServerCA.pem -noout -issuer_hash
तो आपको मिलता है 244b5494
, जिसे आप सिस्टम रूट CA स्टोर पर देख सकते हैं /etc/ssl/certs/244b5494.0
(केवल .0
नाम के लिए संलग्न करें)।
मुझे नहीं लगता कि आपके लिए यह सब करने के लिए एक अच्छा, आसान ओपनएसएसएल कमांड है।