सर्टिफ़िकेट चेन की पुष्टि की जा रही है

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

इस दस्तावेज़ में, Apigee Edge में किसी कीस्टोर या ट्रस्टस्टोर में सर्टिफ़िकेट अपलोड करने से पहले, सर्टिफ़िकेट चेन की पुष्टि करने का तरीका बताया गया है. यह प्रोसेस, सर्टिफ़िकेट चेन की पुष्टि करने के लिए OpenSSL टूलकिट पर निर्भर करती है. साथ ही, यह उस हर एनवायरमेंट पर लागू होती है जहां OpenSSL उपलब्ध है.

शुरू करने से पहले

इस दस्तावेज़ में दिए गए चरणों का इस्तेमाल करने से पहले, पक्का करें कि आपको इन विषयों के बारे में जानकारी हो:

  • अगर आपको सर्टिफ़िकेट चेन के बारे में नहीं पता है, तो भरोसे की चेन लेख पढ़ें.
  • अगर आपको OpenSSL लाइब्रेरी के बारे में जानकारी नहीं है, तो OpenSSL पढ़ें.
  • अगर आपको इस गाइड में दिए गए कमांड-लाइन के उदाहरणों का इस्तेमाल करना है, तो OpenSSL क्लाइंट का नया वर्शन इंस्टॉल करें या उसे अपडेट करें.
  • पक्का करें कि सर्टिफ़िकेट PEM फ़ॉर्मैट में हों. अगर सर्टिफ़िकेट PEM फ़ॉर्मैट में नहीं हैं, तो उन्हें PEM फ़ॉर्मैट में बदलने के लिए, सर्टिफ़िकेट को काम करने वाले फ़ॉर्मैट में बदलना में दिए गए निर्देशों का पालन करें.

पूरी चेन के लिए, सर्टिफ़िकेट के विषय और जारी करने वाले की पुष्टि की जा रही है

OpenSSL कमांड का इस्तेमाल करके, सर्टिफ़िकेट चेन की पुष्टि करने के लिए, यहां दिए गए सेक्शन में बताया गया तरीका अपनाएं:

सर्टिफ़िकेट चेन को अलग-अलग करना

सर्टिफ़िकेट की पुष्टि करने से पहले, आपको सर्टिफ़िकेट चेन को अलग-अलग सर्टिफ़िकेट में बांटना होगा. इसके लिए, यह तरीका अपनाएं:

  1. उस सर्वर में लॉगिन करें जहां OpenSSL क्लाइंट मौजूद है.
  2. सर्टिफ़िकेट चेन को इन सर्टिफ़िकेट में बांटें. अगर ऐसा पहले से नहीं किया गया है, तो:
    • कंपनी का सर्टिफ़िकेट: entity.pem
    • इंटरमीडिएट सर्टिफ़िकेट: intermediate.pem
    • रूट सर्टिफ़िकेट: root.pem

यहां दिए गए डायग्राम में, सर्टिफ़िकेट चेन का एक उदाहरण दिखाया गया है:

सर्टिफ़िकेट चेन का फ़्लो: पहचान का सर्टिफ़िकेट से इंटरमीडिएट सर्टिफ़िकेट से रूट सर्टिफ़िकेट तक

सर्टिफ़िकेट के विषय और जारी करने वाले की पुष्टि करना

इस सेक्शन में, सर्टिफ़िकेट के विषय और जारी करने वाले व्यक्ति की जानकारी पाने का तरीका बताया गया है. साथ ही, यह पुष्टि करने का तरीका बताया गया है कि आपके पास मान्य सर्टिफ़िकेट चेन है.

  1. चेन में मौजूद हर सर्टिफ़िकेट के लिए, entity से root तक Subject और Issuer पाने के लिए, यहां दी गई OpenSSL कमांड चलाएं. साथ ही, पुष्टि करें कि वे एक सही सर्टिफ़िकेट चेन बनाते हैं:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    यहां certificate, सर्टिफ़िकेट का नाम है.

  2. पुष्टि करें कि चेन में मौजूद सर्टिफ़िकेट, इन दिशा-निर्देशों का पालन करते हों:
    • हर सर्टिफ़िकेट का Subject, चेन में मौजूद पिछले सर्टिफ़िकेट के Issuer से मेल खाता हो. हालांकि, Entity सर्टिफ़िकेट के लिए ऐसा होना ज़रूरी नहीं है.
    • रूट सर्टिफ़िकेट के लिए, Subject और Issuer एक जैसे होते हैं.

    अगर चेन में मौजूद सर्टिफ़िकेट इन दिशा-निर्देशों का पालन करते हैं, तो सर्टिफ़िकेट चेन को पूरा और मान्य माना जाता है.

    सर्टिफ़िकेट चेन की पुष्टि करने का सैंपल

    यहां एक उदाहरण दिया गया है. इसमें तीन सर्टिफ़िकेट वाली एक सैंपल सर्टिफ़िकेट चेन के लिए, OpenSSL कमांड का आउटपुट दिखाया गया है:

    लीगल एंटिटी का सर्टिफ़िकेट

    openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):'
    
    Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1
    Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
            

    इंटरमीडिएट सर्टिफ़िकेट

    openssl x509 -text -in intermediate.pem  | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
            

    रूट सर्टिफ़िकेट

    openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
            

    ऊपर दिए गए उदाहरण में, इन बातों पर ध्यान दें:

    • इंटरमीडिएट सर्टिफ़िकेट का Subject, इकाई के सर्टिफ़िकेट के Issuer से मेल खाता हो.
    • रूट सर्टिफ़िकेट का Subject, इंटरमीडिएट सर्टिफ़िकेट के Issuer से मेल खाता हो.
    • रूट सर्टिफ़िकेट में Subject और Issuer की वैल्यू एक जैसी होती है.

    ऊपर दिए गए उदाहरण से, यह पुष्टि की जा सकती है कि सैंपल सर्टिफ़िकेट चेन मान्य है.

सर्टिफ़िकेट के विषय और जारी करने वाले के हैश की पुष्टि करना

इस सेक्शन में, सर्टिफ़िकेट के विषय और जारी करने वाले के हैश पाने का तरीका बताया गया है. साथ ही, यह पुष्टि करने का तरीका भी बताया गया है कि आपके पास मान्य सर्टिफ़िकेट चेन है.

सर्टिफ़िकेट के हैश सीक्वेंस की पुष्टि करना हमेशा एक अच्छा तरीका होता है. इससे ऐसी समस्याओं का पता लगाने में मदद मिल सकती है जैसे कि सर्टिफ़िकेट के सामान्य नाम (सीएन) में अनचाही जगह या खास वर्ण होना.

  1. चेन में मौजूद हर सर्टिफ़िकेट के लिए, entity से root तक का hash क्रम पाने के लिए, यहां दिया गया OpenSSL कमांड चलाएं. साथ ही, पुष्टि करें कि वे एक सही सर्टिफ़िकेट चेन बनाते हैं.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    यहां certificate, सर्टिफ़िकेट का नाम है.

  3. पुष्टि करें कि चेन में मौजूद सर्टिफ़िकेट, इन दिशा-निर्देशों का पालन करते हों:
    • हर सर्टिफ़िकेट का Subject, चेन में मौजूद पिछले सर्टिफ़िकेट के Issuer से मेल खाता हो. हालांकि, Entity सर्टिफ़िकेट के लिए ऐसा होना ज़रूरी नहीं है.
    • रूट सर्टिफ़िकेट के लिए, Subject और Issuer एक जैसे होते हैं.

    अगर चेन में मौजूद सर्टिफ़िकेट इन दिशा-निर्देशों का पालन करते हैं, तो सर्टिफ़िकेट चेन को पूरा और मान्य माना जाता है.

    हैश सीक्वेंस के ज़रिए सर्टिफ़िकेट चेन की पुष्टि करने का सैंपल

    यहां एक उदाहरण दिया गया है. इसमें तीन सर्टिफ़िकेट वाली सर्टिफ़िकेट चेन के लिए, OpenSSL कमांड का आउटपुट दिखाया गया है:

    openssl x509 -in entity.pem -hash -issuer_hash -noout
    c54c66ba #this is subject hash
    99bdd351 #this is issuer hash
        
    openssl x509 -in intermediate.pem -hash -issuer_hash -noout
    99bdd351
    4a6481c9
        
    openssl x509 -in root.pem -hash -issuer_hash -noout
    4a6481c9
    4a6481c9
        

    ऊपर दिए गए उदाहरण में, इन बातों पर ध्यान दें:

    • इंटरमीडिएट सर्टिफ़िकेट का subject hash, इकाई के सर्टिफ़िकेट के issuer hash से मेल खाता हो.
    • रूट सर्टिफ़िकेट का subject hash, सर्टिफ़िकेट जारी करने वाली संस्था के सर्टिफ़िकेट के issuer hash से मेल खाता हो.
    • रूट सर्टिफ़िकेट में subject और issuer hash की वैल्यू एक जैसी होती है.

    ऊपर दिए गए उदाहरण से, यह पुष्टि की जा सकती है कि सैंपल सर्टिफ़िकेट चेन मान्य है.

सर्टिफ़िकेट की समयसीमा खत्म होने की पुष्टि की जा रही है

इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि चेन में मौजूद सभी सर्टिफ़िकेट की समयसीमा खत्म हो गई है या नहीं. इसके लिए, यहां दिए गए तरीकों का इस्तेमाल करें:

  • सर्टिफ़िकेट के शुरू और खत्म होने की तारीख पाएं.
  • सदस्यता खत्म होने की स्थिति की जानकारी पाएं.

शुरू और खत्म होने की तारीख

चेन में मौजूद हर सर्टिफ़िकेट की शुरू और खत्म होने की तारीख पाने के लिए, OpenSSL का यह कमांड चलाएं: entity से root. साथ ही, पुष्टि करें कि चेन में मौजूद सभी सर्टिफ़िकेट लागू हैं (शुरू होने की तारीख आज से पहले की है) और उनकी समयसीमा खत्म नहीं हुई है.

सर्टिफ़िकेट के शुरू और खत्म होने की तारीखों के हिसाब से, उसकी समयसीमा खत्म होने की पुष्टि करने का सैंपल

openssl x509 -startdate -enddate -noout -in entity.pem
notBefore=Feb  6 21:57:21 2020 GMT
notAfter=Feb  4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem
notBefore=Jun 15 00:00:42 2017 GMT
notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem
notBefore=Apr 13 10:00:00 2011 GMT
notAfter=Apr 13 10:00:00 2022 GMT

समयसीमा खत्म होने की स्थिति

यह देखने के लिए कि सर्टिफ़िकेट की समयसीमा खत्म हो गई है या अगले N seconds में खत्म होने वाली है, OpenSSL की यह कमांड चलाएं. यह फ़ंक्शन, सिस्टम की मौजूदा तारीख के हिसाब से, सर्टिफ़िकेट के खत्म होने की स्थिति दिखाता है.

openssl x509 -checkend <N Seconds> -noout -in certificate

यहां certificate, सर्टिफ़िकेट का नाम है.

checkend विकल्प के ज़रिए, सर्टिफ़िकेट की समयसीमा खत्म होने की पुष्टि करने का सैंपल

यहां दिए गए निर्देश में 0 seconds का इस्तेमाल किया गया है. इससे यह पता चलता है कि सर्टिफ़िकेट की समयसीमा खत्म हो गई है या नहीं:

openssl x509 -checkend 0 -noout -in entity.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem
Certificate will not expire

इस उदाहरण में, मैसेज Certificate will not expireसे पता चलता है कि सर्टिफ़िकेट की समयसीमा अभी खत्म नहीं हुई है.