הגדרת SNI בין מעבד ההודעות של הקצה לבין שרת הקצה העורפי

כרגע מוצג התיעוד של 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

בקטע הזה מוסבר איך לזהות אם שרת קצה עורפי מופעל או לא מופעל.

  1. מריצים את הפקודה openssl ומנסים להתחבר לשם המארח הרלוונטי של השרת (נתב קצה או שרת קצה עורפי) בלי להעביר את שם השרת, כפי שמוצג כאן:
    openssl s_client -connect hostname:port
    
  2. יכול להיות שתקבלו את האישורים, ולפעמים תראו את כשל לחיצת היד בפקודה 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
    
  3. מריצים את הפקודה openssl ומנסים להתחבר לשם המארח הרלוונטי של השרת (נתב Edge או שרת הקצה העורפי) על ידי העברת שם השרת, כמו שמוצג כאן:
    openssl s_client -connect hostname:port -servername hostname
    
  4. אם בשלב 1 מופיע כשל בלחיצת יד או מתקבלים אישורים שונים בשלב 1 ושלב 2, סימן שהשרת שצוין מופעל ב-SNI.
  5. כדי לבצע את האימות ליותר משרת קצה עורפי, צריך לחזור על השלבים שלמעלה בכל שרת קצה עורפי.

אם יש לך שרת קצה עורפי אחד או יותר שמופעל בהם SNI, עליך להפעיל SNI ברכיב מעבד ההודעות כמו שמוסבר בהמשך. אחרת, בקשות ה-API שנשלחות דרך Apigee Edge ייכשלו ויתקבלו כשל לחיצת יד ב-TLS (אבטחת שכבת התעבורה).

הפעלת SNI בין מעבדי הודעות של Edge לשרת קצה עורפי

בקטע הזה מוסבר איך מפעילים SNI בין מעבד ההודעות של Edge לשרת הקצה העורפי. אפשר להפעיל SNI דרך המאפיין jsse.enableSNIExtension ברכיב של מעבד ההודעות. כדי להגדיר מאפיין במעבד ההודעות, צריך להשתמש באסימון בהתאם לתחביר המתואר בקטע איך מגדירים את Edge.

כדי להפעיל SNI במעבדי ההודעות, בצע את השלבים הבאים:

  1. איתור אסימון לנכס jsse.enableSNIExtension
  2. הפעלת SNI במעבד ההודעות

איתור אסימון לנכס jsse.enableSNIExtension

בשלבים הבאים מוסבר איך לאתר את האסימון של הנכס jsse.enableSNIExtension:

  1. מחפשים את המאפיין jsse.enableSNIExtension בספריית המקור של מעבד ההודעות /opt/apigee/edge-message-processor/source באמצעות הפקודה הבאה:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. בפלט של הפקודה הזו מוצג האסימון של המאפיין 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 Messageprocessor.

  1. במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך. אם אין קטגוריה קיימת, יוצרים אותה.
    /opt/apigee/customer/application/message-processor.properties
    

    לדוגמה, כדי לפתוח את הקובץ באמצעות vi, מזינים את הפקודה הבאה:

    vi /opt/apigee/customer/application/message-processor.properties
    

  2. מוסיפים שורה בפורמט הבא לקובץ המאפיינים:
    conf_system_jsse.enableSNIExtension=true
    
  3. שומרים את השינויים.
  4. יש לוודא שקובץ המאפיינים הזה נמצא בבעלות המשתמש של apigee, כפי שמוצג בהמשך:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. מוודאים שתצורת ה-SNI מעודכנת במעבד ההודעות.
  7. אם יש לך יותר ממעבד הודעות אחד, צריך לחזור על השלבים האלה בכל מעבדי ההודעות.

השבתת SNI בין מעבדי הודעות של Edge לשרת קצה עורפי

באופן כללי, לא אמורות להיות בעיות לאחר הפעלת SNI. עם זאת, אם תבחין בבעיות קישוריות בין מעבד ההודעות של Edge לשרת הקצה העורפי לאחר הפעלת SNI, תמיד תוכל להשבית את ה-SNI על ידי ביצוע השלבים הבאים.

אפשר להשבית SNI על ידי החזרת המאפיין jsse.enableSNIExtension ל-false ברכיב מעבד ההודעות.

השבתת SNI במעבדי ההודעות

בשלבים הבאים מוסבר איך להשבית SNI במעבדי ההודעות של Apigee.

  1. במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך. אם אין קטגוריה קיימת, יוצרים אותה.
    /opt/apigee/customer/application/message-processor.properties
    

    לדוגמה, כדי לפתוח את הקובץ באמצעות vi, מזינים את הפקודה הבאה:

    vi /opt/apigee/customer/application/message-processor.properties
    

  2. אם השורה conf_system_jsse.enableSNIExtension=true קיימת ב-/opt/apigee/customer/application/message-processor.properties, משנים אותה באופן הבא:
    conf_system_jsse.enableSNIExtension=false
    
  3. שומרים את השינויים.
  4. יש לוודא שקובץ המאפיינים הזה נמצא בבעלות המשתמש של apigee, כפי שמוצג בהמשך:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. מוודאים שתצורת ה-SNI מעודכנת במעבד ההודעות.
  7. אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.

אימות תצורת SNI במעבדי ההודעות

בקטע הזה מוסבר איך לוודא שתצורת ה-SNI עודכנה בהצלחה במעבדי ההודעות.

למרות שמשתמשים באסימון conf_system_jsse.enableSNIExtension כדי להגדיר SNI במעבד ההודעות, צריך לוודא שהמאפיין בפועל jsse.enableSNIExtension הוגדר עם הערך החדש.

  1. במחשב של מעבד ההודעות, מחפשים את המאפיין jsse.enableSNIExtension בספרייה /opt/apigee/edge-message-processor/conf ובודקים אם הוא הוגדר עם הערך החדש כפי שמוצג בהמשך:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. אם תצורת ה-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 מופעל או מושבת בהצלחה במעבד ההודעות.

  3. אם הערך הישן של המאפיין jsse.enableSNIExtension עדיין מופיע, עליך לוודא שביצעת את כל השלבים המפורטים בקטע המתאים כדי להפעיל או להשבית SNI בצורה נכונה. אם החמצתם שלב כלשהו, יש לחזור על כל השלבים בצורה נכונה.
  4. אם עדיין אין לכם אפשרות להפעיל או להשבית SNI , תוכלו לפנות לתמיכה של Apigee Edge.