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

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