מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
במסמך הזה מוסבר איך לאמת שרשרת אישורים לפני שמעלים את האישור אל מאגר מפתחות או מאגר אמון ב-Apigee Edge. התהליך מסתמך על ערכת הכלים OpenSSL לאימות האישור ברשת והרלוונטית לכל סביבה שבה OpenSSL זמין.
לפני שמתחילים
לפני שתשתמשו בשלבים שבמסמך הזה, חשוב שתוודאו שאתם מבינים את הנושאים הבאים:
- אם אתם לא מכירים שרשרת אישורים, אפשר לקרוא את המאמר שרשרת האמון.
- אם אתם לא מכירים את ספריית OpenSSL, עליכם לקרוא את המאמר OpenSSL.
- אם תרצו להשתמש בדוגמאות של שורת הפקודה במדריך הזה, התקינו או עדכנו את הגרסה העדכנית ביותר של לקוח OpenSSL.
- יש לוודא שהאישורים הם בפורמט PEM. אם האישורים לא בפורמט PEM, פועלים לפי ההוראות המרת אישורים לפורמט נתמך כדי להמיר אותם לפורמט PEM.
אימות הנושא והמנפיק של האישור לכל השרשרת
כדי לאמת את שרשרת האישורים באמצעות פקודות OpenSSL, יש להשלים את השלבים שמתוארים לסעיפים הבאים:
- פיצול שרשרת האישורים
- אימות הנושא והמנפיק של האישור
- אימות של נושא האישור והגיבוב (hash) של המנפיק
- אימות תפוגת האישור
פיצול שרשרת האישורים
לפני אימות האישור, צריך לפצל את שרשרת האישורים ל אישורים לפי השלבים הבאים:
- מתחברים לשרת שבו נמצא לקוח 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
זהים עבור האישור הבסיסי (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
מציינת
האישור עדיין לא פג.