جارٍ التحقّق من صحة سلسلة الشهادات

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يشرح هذا المستند طريقة التحقّق من صحة سلسلة الشهادات قبل تحميل الشهادة إلى ملف تخزين مفاتيح أو على Truststore في Apigee Edge. وتعتمد هذه العملية على مجموعة أدوات OpenSSL للتحقق من صحة سلسلة الشهادات، وهي تنطبق على أي بيئة يتوفر فيها OpenSSL.

قبل البدء

قبل استخدام الخطوات الواردة في هذا المستند، تأكَّد من فهم المواضيع التالية:

  • إذا لم تكن على دراية بسلسلة شهادات، اطّلِع على سلسلة الشهادات.
  • إذا لم تكن معتادًا على استخدام مكتبة OpenSSL، يمكنك الاطّلاع على OpenSSL.
  • إذا أردت استخدام أمثلة سطر الأوامر في هذا الدليل، عليك تثبيت أحدث إصدار من برنامج OpenSSL أو تحديثه.
  • يُرجى التأكّد من أنّ الشهادات بتنسيق PEM. إذا لم تكن الشهادات بتنسيق PEM، استخدِم التعليمات الواردة في تحويل الشهادات إلى تنسيق متوافق لتحويلها إلى تنسيق PEM.

التحقق من صحة موضوع الشهادة وجهة إصدارها للسلسلة الكاملة

للتحقّق من صحة سلسلة الشهادات باستخدام أوامر OpenSSL، أكمِل الخطوات الموضّحة في الأقسام التالية:

تقسيم سلسلة الشهادات

قبل التحقق من الشهادة، يجب تقسيم سلسلة الشهادات إلى شهادات منفصلة باتّباع الخطوات التالية:

  1. سجِّل الدخول إلى الخادم الذي يوجد به برنامج OpenSSL.
  2. قسِّم سلسلة الشهادات إلى الشهادات التالية (إذا لم تكن قد قسَّمت من قبل):
    • شهادة الكيان: entity.pem
    • الشهادة المتوسطة: intermediate.pem
    • شهادة الجذر: root.pem

يوضِّح الشكل التالي مثالاً لسلسلة شهادات:

مسار سلسلة الشهادات: شهادة الهوية إلى الشهادة المتوسطة إلى شهادة الجذر

التحقق من موضوع الشهادة وجهة إصدارها

يوضّح هذا القسم طريقة الحصول على موضوع الشهادات وإصدارها والتأكّد من أنّ لديك سلسلة شهادات صالحة.

  1. نفِّذ الأمر OpenSSL التالي للحصول على Subject وIssuer لكل شهادة في السلسلة من entity إلى root والتأكّد من أنّها تشكل سلسلة شهادات مناسبة:
    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 متطابقان في شهادة الجذر.

    من المثال أعلاه، يمكنك التأكد من أن نموذج سلسلة الشهادات صالح.

التحقق من موضوع الشهادة وتجزئة جهة الإصدار

يوضّح هذا القسم طريقة الحصول على تجزئة الموضوع وجهة إصدار الشهادات والتأكّد من أنّ لديك سلسلة شهادات صالحة.

ومن الممارسات الجيدة دائمًا التحقّق من تسلسل تجزئة الشهادات، لأنّ ذلك يمكن أن يساعد في تحديد المشاكل مثل الاسم الشائع (CN) للشهادة التي تحتوي على مساحة غير مرغوب فيها أو أحرف خاصة.

  1. نفِّذ الأمر OpenSSL التالي للحصول على التسلسل hash لكل شهادة في السلسلة من entity إلى root والتأكّد من أنّها تشكِّل سلسلة شهادات مناسبة.
  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

حالة انتهاء الصلاحية

نفِّذ الأمر OpenSSL التالي للتحقق مما إذا كانت الشهادة قد انتهت صلاحيتها أو ستنتهي صلاحيتها خلال N seconds التالي. يؤدي ذلك إلى عرض حالة انتهاء صلاحية الشهادة في سياق تاريخ النظام الحالي.

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

حيث يكون certificate هو اسم الشهادة.

نموذج للتحقّق من تاريخ انتهاء صلاحية الشهادة من خلال خيار التحقّق من انتهاء صلاحية الشهادة

يستخدم الأمر التالي 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 إلى أنّ صلاحية الشهادة لم تنتهِ بعد.