מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
Server Name Indication (SNI) – מאפשר הצגה של מספר שרתי קצה עורפי של HTTPS כתובת IP ויציאה בלי לדרוש מהשרתים העורפיים האלה להשתמש באותו אישור TLS. זו הרחבה של פרוטוקול TLS. כש-SNI מופעל אצל לקוח, הלקוח עובר שם המארח של שרת הקצה העורפי כחלק מלחיצת היד הראשונית של TLS. הפעולה הזו מאפשרת שרת TLS כדי לקבוע באיזה אישור TLS יש להשתמש כדי לאמת את הבקשה הלקוח.
כברירת מחדל, SNI מושבת ברכיב מעבד ההודעות ב-Edge בענן הפרטי כדי להבטיח תאימות לאחור עם השרתים העורפיים הקיימים. אם שרת הקצה העורפי שלכם מוגדר לתמיכה ב-SNI, אז עליך להפעיל את ה-SNI ברכיב מעבד ההודעות. אחרת, בקשות ה-API שעוברות דרך Apigee Edge ייכשלו כשלים לחיצת יד של TLS.
במסמך הזה נסביר איך לבצע את הפעולות הבאות:
- זיהוי אם שרת עורפי מופעל SNI
- הפעלת SNI במעבדי ההודעות כדי לתקשר עם הקצה העורפי שרתים שתומכים ב-SNI
- השבתת SNI במעבדי ההודעות במקרה הצורך
- מוודאים שהגדרות ה-SNI עודכנו מעבדי הודעות
לפני שמתחילים
- אם אתם לא מכירים את SNI, קראו את המאמר שימוש ב-SNI עם קצה.
- אם אתם לא מכירים את הגדרת Edge בענן פרטי, קראו את המאמר איך מגדירים את Edge?
זיהוי של שרת התומך ב-SNI
הקטע הזה מתאר איך לזהות אם שרת עורפי מופעל SNI או לא.
-
מריצים את הפקודה
openssl
ומנסים להתחבר לשם המארח הרלוונטי של השרת. (נתב קצה או שרת קצה עורפי) בלי להעביר את שם השרת, כפי שמוצג בהמשך:openssl s_client -connect hostname:port
-
ייתכן שתקבלו את האישורים, ולפעמים תבחינו בכשל בלחיצת היד
הפקודה
openssl
, כמו שמוצג בהמשך:
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
מריצים את הפקודה
openssl
ומנסים להתחבר לשרת הרלוונטי. שם המארח (נתב קצה או שרת קצה עורפי) על ידי העברת שם השרת כפי שמוצג בהמשך:openssl s_client -connect hostname:port -servername hostname
- אם נתקלתם בבעיה בלחיצת היד בשלב 1 או שקיבלתם אישורים שונים בשלב 1 ובשלב 2, אז הוא מציין שהשרת שצוין מופעל SNI.
- כדי לאמת את זה עבור יותר משרת קצה עורפי אחד, צריך צריך לחזור על השלבים שלמעלה עבור כל שרת עורפי.
אם יש לכם שרת עורפי אחד או יותר שמופעל בהם SNI, תצטרכו להפעיל SNI ברכיב מעבד ההודעות כמו שמוסבר בהמשך. אחרת, ה-API בקשות שעוברות דרך Apigee Edge ייכשלו כשלים לחיצת יד של TLS.
הפעלת SNI בין מעבדי הודעות קצה לבין שרת עורפי
בקטע הזה מוסבר איך להפעיל SNI בין מעבד ההודעות של Edge לבין הקצה העורפי
השרת. ניתן להפעיל SNI באמצעות המאפיין jsse.enableSNIExtension
ב-
רכיב מעבד ההודעות. כדי להגדיר מאפיין במעבד ההודעות,
את האסימון לפי התחביר שמתואר
איך מגדירים את Edge?
כדי להפעיל SNI במעבדי ההודעות, מבצעים את השלבים הבאים:
איתור אסימון לנכס jsse.enableSNIExtension
בשלבים הבאים מוסבר איך לאתר את האסימון של
מאפיין jsse.enableSNIExtension
:
-
חיפוש המאפיין
jsse.enableSNIExtension
במקור של מעבד ההודעות הספרייה/opt/apigee/edge-message-processor/source
באמצעות הפקודה הבאה:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
בפלט של הפקודה הזו מוצג האסימון למאפיין של מעבד ההודעות
jsse.enableSNIExtension
באופן הזה:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
כשהמחרוזת בין התגים
{T}{/T}
היא השם של האסימון שאפשר להגדיר בקובץ.properties
של מעבד ההודעות.לדוגמה, האסימון של הנכס
jsse.enableSNIExtension
הוא:conf_system_jsse.enableSNIExtension
הפעלת SNI במעבד ההודעות
השלבים הבאים מתארים איך להפעיל SNI ברכיב מעבד ההודעות של Apigee.
- במעבד הודעות, פותחים את הקובץ הבא בעורך. אם לא ניתן
כבר קיים, אז יוצרים אותו.
/opt/apigee/customer/application/message-processor.properties
לדוגמה, כדי לפתוח את הקובץ באמצעות
vi
, מזינים את הפקודה הבאה:vi /opt/apigee/customer/application/message-processor.properties
-
מוסיפים לקובץ המאפיינים שורה בפורמט הבא:
conf_system_jsse.enableSNIExtension=true
- שומרים את השינויים.
-
יש לוודא שקובץ המאפיינים הזה נמצא בבעלות של המשתמש
apigee
, כפי שמוצג בהמשך:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
צריך להפעיל מחדש את מעבד ההודעות כפי שמוצג בהמשך:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- לוודא שהגדרות ה-SNI מעודכנות מעבד הודעות.
- אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים האלה בכל מעבדי הודעות.
השבתת SNI בין מעבדי הודעות קצה לבין שרת עורפי
בדרך כלל, לא אמורות להופיע בעיות לאחר הפעלת SNI. אבל אם תבחינו כל בעיית קישוריות בין מעבד ההודעות של Edge לבין שרת הקצה העורפי לאחר תמיד אפשר להשבית את ה-SNI על ידי ביצוע השלבים הבאים.
אפשר להשבית את SNI באמצעות הגדרת המאפיין jsse.enableSNIExtension
בחזרה אל false
ברכיב מעבד ההודעות.
השבתת SNI במעבדי ההודעות
בשלבים הבאים מוסבר איך להשבית SNI במעבדי ההודעות של Apigee.
-
במעבד הודעות, פותחים את הקובץ הבא בעורך. אם לא ניתן
כבר קיים, אז יוצרים אותו.
/opt/apigee/customer/application/message-processor.properties
לדוגמה, כדי לפתוח את הקובץ באמצעות
vi
, מזינים את הפקודה הבאה:vi /opt/apigee/customer/application/message-processor.properties
-
אם השורה
conf_system_jsse.enableSNIExtension=true
נמצאת בה/opt/apigee/customer/application/message-processor.properties
, ולאחר מכן יש לשנות אותו בתור ככה:conf_system_jsse.enableSNIExtension=false
- שומרים את השינויים.
-
יש לוודא שקובץ המאפיינים הזה נמצא בבעלות של המשתמש
apigee
, כפי שמוצג בהמשך:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
צריך להפעיל מחדש את מעבד ההודעות כפי שמוצג בהמשך:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- לוודא שהגדרות ה-SNI מעודכנות מעבד הודעות.
- אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי הודעות.
אימות של תצורת SNI במעבדי ההודעות
בקטע הזה מוסבר איך לוודא שתצורת ה-SNI בוצעה בהצלחה שעודכנו במעבדי ההודעות.
למרות שאתם משתמשים באסימון conf_system_jsse.enableSNIExtension
כדי
להגדיר SNI במעבד ההודעות, עליך לוודא שהמאפיין
jsse.enableSNIExtension
הוגדר עם הערך החדש.
-
במעבד ההודעות, מחפשים את המאפיין
jsse.enableSNIExtension
. בספרייה/opt/apigee/edge-message-processor/conf
ולבדוק אם הוגדר עם הערך החדש כפי שמוצג בהמשך:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
אם תצורת ה-SNI עודכנה בהצלחה במעבד ההודעות, אז
הפקודה שלמעלה מציגה את הערך החדש בקובץ
system.properties
.התוצאה לדוגמה מהפקודה שלמעלה לאחר הפעלת SNI במעבד ההודעות הוא:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
באופן דומה, התוצאה לדוגמה מהפקודה שלמעלה לאחר השבתת ה-SNI כך מעבד ההודעות:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
בפלט לדוגמה שלמעלה, שימו לב שהמאפיין
jsse.enableSNIExtension
עודכן לערך החדשtrue
אוfalse
ב-system.properties
זה מציין ש-SNI הופעל בהצלחה מושבת במעבד ההודעות. -
אם עדיין מופיע הערך הישן של הנכס
jsse.enableSNIExtension
, לוודא שביצעת את כל השלבים המפורטים בקטע המתאים כדי להפעיל את או להשבית את SNI בצורה נכונה. אם פספסתם שלב כלשהו, יש לחזור על השלבים האלה שוב בצורה נכונה. - אם עדיין אין לך אפשרות להפעיל/להשבית את SNI , עליך לפנות אל תמיכה ב-Apigee Edge.