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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X.
info

يوضّح هذا المستند كيفية التحقّق من صحة سلسلة الشهادات قبل تحميل الشهادة إلى مخزن مفاتيح أو مخزن شهادات موثوق بها في Apigee Edge. تعتمد هذه العملية على الـ OpenSSL toolkit للتحقّق من صحة سلسلة الشهادات ، وهي تنطبق على أي بيئة تتوفّر فيها 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 هو اسم الشهادة.

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