أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
يوضّح هذا المستند كيفية التحقّق من صحة سلسلة الشهادات قبل تحميل الشهادة إلى مخزن مفاتيح أو مخزن شهادات موثوق بها في Apigee Edge. تعتمد هذه العملية على الـ OpenSSL toolkit للتحقّق من صحة سلسلة الشهادات ، وهي تنطبق على أي بيئة تتوفّر فيها OpenSSL.
قبل البدء
قبل اتّباع الخطوات الواردة في هذا المستند، تأكَّد من فهم المواضيع التالية:
- إذا لم تكن على دراية بسلسلة الشهادات، يُرجى قراءة مقالة سلسلة الثقة.
- إذا لم تكن على دراية بمكتبة OpenSSL، يُرجى قراءة مقالة OpenSSL.
- إذا أردت استخدام أمثلة سطر الأوامر في هذا الدليل، ثبِّت أحدث إصدار من عميل OpenSSL أو نزِّله.
- تأكَّد من أنّ الشهادات بتنسيق PEM. إذا لم تكن الشهادات بتنسيق PEM، استخدِم التعليمات الواردة في تحويل الشهادات إلى تنسيق متوافق لتحويلها إلى تنسيق PEM.
التحقّق من صحة موضوع الشهادة وجهة إصدارها للسلسلة الكاملة
للتحقّق من صحة سلسلة الشهادات باستخدام أوامر OpenSSL، أكمل الخطوات الموضّحة في الـ أقسام التالية:
- تقسيم سلسلة الشهادات
- التحقّق من موضوع الشهادة وجهة إصدارها
- التحقّق من تجزئة موضوع الشهادة وجهة إصدارها
- التحقّق من انتهاء صلاحية الشهادة
تقسيم سلسلة الشهادات
قبل التحقّق من صحة الشهادة، عليك تقسيم سلسلة الشهادات إلى شهادات منفصلة باستخدام الخطوات التالية:
- سجِّل الدخول إلى الخادم الذي يتوفّر عليه عميل OpenSSL.
- قسِّم سلسلة الشهادات إلى الشهادات التالية (إذا لم يسبق لك إجراء ذلك):
-
شهادة الكيان:
entity.pem -
الشهادة المتوسطة:
intermediate.pem -
شهادة الجذر:
root.pem
توضّح الصورة التالية مثالاً على سلسلة شهادات:
التحقّق من موضوع الشهادة وجهة إصدارها
يوضّح هذا القسم كيفية الحصول على موضوع الشهادات وجهة إصدارها والتحقّق من أنّ لديك سلسلة شهادات صالحة.
-
نفِّذ أمر OpenSSL التالي للحصول على
SubjectوIssuerلكل شهادة في السلسلة منentityإلىrootوتأكَّد من أنّها تشكّل سلسلة شهادات مناسبة:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'حيث certificate هو اسم الشهادة.
-
تأكَّد من أنّ الشهادات في السلسلة تلتزم بالإرشادات التالية:
-
يتطابق
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) للشهادة الذي يتضمّن مسافة أو أحرفًا خاصة غير مرغوب فيها.
- نفِّذ أمر OpenSSL التالي للحصول على تسلسل
hashلكل شهادة في السلسلة منentityإلىrootوتأكَّد من أنّها تشكّل سلسلة شهادات مناسبة. - تأكَّد من أنّ الشهادات في السلسلة تلتزم بالإرشادات التالية:
-
يتطابق
Subjectلكل شهادة معIssuerللشهادة السابقة في السلسلة (باستثناء شهادةEntity). -
SubjectوIssuerمتطابقان في شهادة الجذر. -
يتطابق
subject hashللشهادة المتوسطة معissuer hashلشهادة الكيان. -
يتطابق
subject hashلشهادة الجذر معissuer hashلشهادة جهة الإصدار. -
يتطابق
subjectوissuer hashفي شهادة الجذر.
openssl x509 -hash -issuer_hash -noout -in certificate
حيث certificate هو اسم الشهادة.
إذا كانت الشهادات في السلسلة تلتزم بهذه الإرشادات، تُعتبر سلسلة الشهادات كاملة وصالحة.
مثال على التحقّق من صحة سلسلة الشهادات من خلال تسلسل التجزئة
المثال التالي هو ناتج أوامر 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
في المثال الموضّح أعلاه، يُرجى ملاحظة ما يلي:
من المثال أعلاه، يمكنك التأكّد من أنّ سلسلة الشهادات النموذجية صالحة.
التحقّق من انتهاء صلاحية الشهادة
يوضّح هذا القسم كيفية التحقّق مما إذا كانت جميع الشهادات في السلسلة منتهية الصلاحية أم لا باستخدام إحدى الطريقتَين التاليتَين:
- الحصول على تاريخَي البدء والانتهاء للشهادة
- الحصول على حالة انتهاء الصلاحية
تاريخا البدء والانتهاء
نفِّذ أمر 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 إلى أنّ
الشهادة لم تنتهِ صلاحيتها بعد.