מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
במסמך הזה מוסבר איך לאמת שרשרת אישורים לפני שמעלים את האישור אל מאגר מפתחות או מאגר אמון ב-Apigee Edge. התהליך מסתמך על ערכת הכלים OpenSSL לאימות האישור ברשת והרלוונטית לכל סביבה שבה OpenSSL זמין.
לפני שמתחילים
לפני שתשתמשו בשלבים שבמסמך הזה, חשוב שתוודאו שאתם מבינים את הנושאים הבאים:
- אם אתם לא מכירים שרשרת אישורים, אפשר לקרוא את המאמר שרשרת האמון.
- אם אתם לא מכירים את ספריית OpenSSL, עליכם לקרוא את המאמר OpenSSL.
- אם תרצו להשתמש בדוגמאות של שורת הפקודה במדריך הזה, התקינו או עדכנו את הגרסה העדכנית ביותר של לקוח OpenSSL.
- יש לוודא שהאישורים הם בפורמט PEM. אם האישורים לא בפורמט PEM, פועלים לפי ההוראות המרת אישורים לפורמט נתמך כדי להמיר אותם לפורמט PEM.
אימות הנושא והמנפיק של האישור לכל השרשרת
כדי לאמת את שרשרת האישורים באמצעות פקודות OpenSSL, יש להשלים את השלבים שמתוארים לסעיפים הבאים:
- פיצול שרשרת האישורים
- אימות הנושא והמנפיק של האישור
- אימות של נושא האישור והגיבוב (hash) של המנפיק
- אימות תפוגת האישור
פיצול שרשרת האישורים
לפני אימות האישור, צריך לפצל את שרשרת האישורים ל אישורים לפי השלבים הבאים:
- מתחברים לשרת שבו נמצא לקוח OpenSSL.
- מפצלים את שרשרת האישורים לאישורים הבאים (אם עדיין לא עשיתם זאת):
-
אישור ישות:
entity.pem -
אישור ביניים:
intermediate.pem -
אישור בסיס:
root.pem
האיור הבא מציג שרשרת אישורים לדוגמה:
אימות של הנושא והמנפיק של האישור
בקטע הזה נסביר איך לקבל את הנושא והמנפיק של האישורים ולוודא יש שרשרת אישורים חוקית.
-
מריצים את הפקודה הבאה של OpenSSL כדי לקבל את הפקודה
SubjectIssuerלכל אישור בשרשרת החל מ-entityאלrootולוודא שהם יוצרים שרשרת אישורים תקינה:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'כאשר certificate הוא שם האישור.
-
צריך לוודא שהאישורים בשרשרת עומדים בהנחיות הבאות:
-
Subjectשל כל אישור תואם ל-Issuerשל לאישור הקודם בשרשרת (חוץ מהאישורEntity). -
Subjectו-Issuerזהים עבור האישור הבסיסי (root).
אם האישורים בשרשרת עומדים בהנחיות האלה, שרשרת האישורים נחשבת שלמה ותקינה.
אימות שרשרת אישורים לדוגמה
הדוגמה הבאה היא הפלט של פקודות 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זהים באישור הבסיסי.
בעזרת הדוגמה שלמעלה, ניתן לאשר ששרשרת האישורים לדוגמה חוקית.
-
אימות של נושא האישור והגיבוב (hash) של המנפיק
בקטע הזה נסביר איך לקבל את הגיבוב של הנושא והמנפיק של האישורים. לוודא שיש לך שרשרת אישורים חוקית.
תמיד מומלץ לאמת את רצף הגיבוב (hash) של האישורים, כי זה יכול לעזור זיהוי בעיות כמו השם הנפוץ (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 הוא שם האישור.
אם האישורים בשרשרת תואמים להנחיות האלה, שרשרת האישורים נחשבות מלאות וחוקיות.
דוגמה לאימות שרשרת אישורים באמצעות רצף גיבוב (hash)
הדוגמה הבאה היא הפלט של פקודות 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 הוא שם האישור.
דוגמה לאימות תפוגת אישור באמצעות אפשרות של קצה ביקורת
הפקודה הבאה משתמשת ב-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 מציינת
האישור עדיין לא פג.