दूसरों के रूप में उल्लेख किया है, आप openssl verify
उपयोग कर सकते हैं। documentation के अनुसार, यह वैधता अवधि भी जांचता है।
प्रोग्रामेटिक रूप से, इसका मतलब हो सकता है कि थोड़े बुरे (या गायब) दस्तावेज, पूरे वेब पर कोड उदाहरण पढ़ना, और शायद सिरदर्द।
प्रमाण पत्र को सही तरीके से सत्यापित करने के लिए, आपको सभी इंटरमीडिएट प्रमाणपत्रों को सूचित करने की आवश्यकता है। आम तौर पर आप निरस्तीकरण सूची (सीआरएल) को भी सूचित करेंगे, लेकिन इसकी आवश्यकता नहीं है।
तो, यहाँ आप कोड के मामले (OpenSSL) में क्या करने की जरूरत है:
X509_STORE_new
- एक प्रमाणपत्र संग्रह बनाएं;
X509_STORE_CTX_new
- एक स्टोर संदर्भ बनाएं;
X509_STORE_add_cert
- अपने प्रमाणपत्र स्टोर की विश्वसनीय सूची में सीए (और सभी मध्यस्थ) प्रमाण पत्र जोड़ें (नोट: सूची देखने/लोड करने के लिए कोई फ़ंक्शन है);
X509_STORE_add_crl
- अपने प्रमाणपत्र स्टोर के सीआरएल में निरस्त प्रमाणपत्र जोड़ें (नोट: ऊपर जैसा ही);
X509_STORE_CTX_init
- अपने स्टोर स्टोर को अपने प्रमाणपत्र स्टोर को सूचित करना आरंभ करें;
X509_STORE_CTX_set_purpose
- यदि आपको इसकी आवश्यकता है तो उद्देश्य को परिभाषित करें;
X509_STORE_CTX_set_cert
- संदर्भ बताएं कि आप कौन सा प्रमाण पत्र सत्यापित करने जा रहे हैं;
X509_verify_cert
- अंत में, इसे मान्य करें;
X509_STORE_CTX_cleanup
- यदि आप किसी अन्य प्रमाणपत्र को सत्यापित करने के लिए संदर्भ का पुन: उपयोग करना चाहते हैं, तो आप इसे साफ़ कर लें और वापस जाएं (5);
- अंतिम लेकिन कम से कम नहीं, deallocate (1) और (2);
वैकल्पिक रूप से, X509_verify
के साथ त्वरित सत्यापन किया जा सकता है। हालांकि, ध्यान रखें कि यह केवल हस्ताक्षर की तुलना करता है।
जब मुझे इसकी आवश्यकता थी, तो मुझे खोज, पढ़ने और परीक्षण का एक दिन लगा। तब मैंने यह पाया कि ओपनएसएसएल स्रोत-कोड में जो कुछ भी चाहिए वह सही था। इसलिए, यदि आपको एक उदाहरण की आवश्यकता है, तो सीधे openssl-xxx/apps/verify.c पर जाएं।
महत्वपूर्ण: एमडी 5 का उपयोग कभी नहीं करें। कारण को समझने के लिए, Creating a rogue CA certificate पढ़ें।
सी में [x509 प्रमाण पत्र सत्यापन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2756553/x509- प्रमाणपत्र-verification-in-c) – jww