הגדרת TLS עבור ממשק המשתמש לניהול

כברירת מחדל, אפשר לגשת לממשק המשתמש של Edge באמצעות HTTP באמצעות כתובת ה-IP של הצומת של שרת הניהול ושל היציאה 9000. לדוגמה:

http://ms_IP:9000

לחלופין, אפשר להגדיר גישת TLS לממשק המשתמש של Edge כך שתוכלו לגשת אליה באמצעות הטופס:

https://ms_IP:9443

בדוגמה הזו מגדירים גישה ל-TLS (אבטחת שכבת התעבורה) לשימוש ביציאה 9443. אבל ל-Edge אין דרישה למספר היציאה הזה, אבל אפשר להגדיר לשרת הניהול להשתמש בערכי יציאות אחרים. הדרישה היחידה היא שחומת האש תאפשר תעבורה דרך היציאה שצוינה.

בדיקה שיציאת ה-TLS (אבטחת שכבת התעבורה) פתוחה

בקטע הזה מגדירים את TLS להשתמש ביציאה 9443 בשרת הניהול. ללא קשר ליציאה שבה אתם משתמשים, עליכם לוודא שהיציאה פתוחה בשרת הניהול. לדוגמה, כדי לפתוח אותו, אפשר להשתמש בפקודה הבאה:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

הגדרת TLS (אבטחת שכבת התעבורה)

כדי להגדיר גישת TLS לממשק המשתמש של הניהול, משתמשים בתהליך הבא:

  1. יוצרים את קובץ ה-JKS של מאגר המפתחות שמכיל את אישור ה-TLS ואת המפתח הפרטי ומעתיקים אותו לצומת של שרת הניהול. למידע נוסף, ראה הגדרת TLS/SSL עבור Edge On Premises.
  2. מריצים את הפקודה הבאה כדי להגדיר TLS (אבטחת שכבת התעבורה):
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. צריך להזין את מספר יציאת ה-HTTPS, לדוגמה, 9443.
  4. מציינים אם רוצים להשבית את גישת HTTP לממשק המשתמש של הניהול. כברירת מחדל, אפשר לגשת לממשק המשתמש לניהול באמצעות HTTP ביציאה 9000.
  5. מזינים את האלגוריתם של מאגר המפתחות. ברירת המחדל היא JKS.
  6. צריך להזין את הנתיב המוחלט לקובץ ה-JKS של מאגר המפתחות.

    הסקריפט מעתיק את הקובץ לספרייה /opt/apigee/customer/conf בצומת של שרת הניהול, ומשנה את הבעלות על הקובץ ל-"apigee".

  7. מזינים את הסיסמה של מאגר המפתחות בטקסט נקי.
  8. הסקריפט יפעיל מחדש את ממשק המשתמש לניהול Edge. אחרי ההפעלה מחדש, ממשק המשתמש לניהול תומך בגישה באמצעות TLS.

    אפשר לראות את ההגדרות האלה ב/opt/apigee/etc/edge-ui.d/SSL.sh.

שימוש בקובץ תצורה כדי להגדיר TLS

כחלופה לתהליך שלמעלה, אפשר להעביר קובץ תצורה לפקודה בשלב 2 של התהליך. תצטרכו להשתמש בשיטה הזו כדי להגדיר מאפייני TLS (אבטחת שכבת התעבורה) אופציונליים.

כדי להשתמש בקובץ תצורה, יש ליצור קובץ חדש ולהוסיף את המאפיינים הבאים:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

שומרים את הקובץ בספרייה מקומית בכל שם שרוצים. לאחר מכן משתמשים בפקודה הבאה כדי להגדיר את ה-TLS (אבטחת שכבת התעבורה):

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

configFile הוא הנתיב המלא לקובץ ששמרת.

הגדרת ממשק המשתמש של Edge כשמסתיימת TLS במאזן העומסים

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

ההגדרה הנוספת נדרשת כשממשק המשתמש של Edge שולח למשתמשים אימיילים להגדרת הסיסמה שלהם, כשהמשתמשים נוצרים או כשהמשתמשים מבקשים לאפס סיסמה שאבדה. האימייל הזה מכיל כתובת URL שהמשתמש בוחר כדי להגדיר או לאפס סיסמה. כברירת מחדל, אם ממשק המשתמש של Edge לא מוגדר לשימוש ב-TLS (אבטחת שכבת התעבורה), כתובת ה-URL באימייל שנוצר תשתמש בפרוטוקול HTTP ולא ב-HTTPS. צריך להגדיר את מאזן העומסים ואת ממשק המשתמש של Edge כדי ליצור כתובת אימייל שמשתמשת ב-HTTPS.

כדי להגדיר את מאזן העומסים, צריך להקפיד להגדיר את הכותרת הבאה בבקשות שמועברות לממשק המשתמש של Edge:

X-Forwarded-Proto: https

כך מגדירים את ממשק המשתמש של Edge:

  1. פותחים את הקובץ /opt/apigee/customer/application/ui.properties בכלי עריכה. אם הקובץ לא קיים, יוצרים אותו:
    vi /opt/apigee/customer/application/ui.properties
  2. מגדירים את המאפיין הבא ב-ui.properties:
    conf/application.conf+trustxforwarded=true
  3. שומרים את השינויים ב-ui.properties.
  4. מפעילים מחדש את ממשק המשתמש של Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

הגדרת מאפייני TLS אופציונליים

ממשק המשתמש של Edge תומך במאפיינים אופציונליים של תצורת TLS, שניתן להשתמש בהם כדי להגדיר את הדברים הבאים:

  • פרוטוקול TLS המוגדר כברירת מחדל
  • רשימה של פרוטוקולי TLS נתמכים
  • אלגוריתמים נתמכים של TLS (אבטחת שכבת התעבורה)
  • הצפנות TLS נתמכות

הפרמטרים האופציונליים האלה זמינים רק אם מגדירים את מאפיין התצורה הבא בקובץ תצורה, כפי שמתואר במאמר שימוש בקובץ תצורה להגדרת TLS:

TLS_CONFIGURE=y

בטבלה הבאה מתוארים המאפיינים הבאים:

נכס התיאור
TLS_PROTOCOL המדיניות הזו מגדירה את פרוטוקול TLS שמוגדר כברירת מחדל לממשק המשתמש של Edge. כברירת מחדל, הפרוטוקול הוא TLS 1.2. הערכים החוקיים הם TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

מגדיר את רשימת הפרוטוקולים המופעלים כמערך מופרד בפסיקים. לדוגמה:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

שימו לב שצריך לסמן בתו בריחה (escape) את התו.

כל הפרוטוקולים מופעלים כברירת מחדל.

TLS_DISABLED_ALGO

המדיניות הזו מגדירה את חבילות ההצפנה המושבתות, ואפשר להשתמש בה גם כדי למנוע שימוש בגדלים קטנים של מפתחות לצורך לחיצת יד בפרוטוקול TLS. אין ערך ברירת מחדל.

הערכים שמועברים אל TLS_DISABLED_ALGO תואמים לערכים המותרים של jdk.tls.disabledAlgorithms, כפי שמתואר כאן. עם זאת, עליך להשתמש בתו בריחה (escape) בזמן ההגדרה של TLS_DISABLED_ALGO:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

מגדיר את הרשימה של הצפנות הזמינות של TLS כמערך מופרד בפסיקים. לדוגמה:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

שימו לב שצריך לסמן בתו בריחה (escape) את התו.

רשימת ברירת המחדל של הצפנים המופעלים היא:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

כאן מופיעה רשימת הצפנים הזמינים.

השבתה של פרוטוקולי TLS

כדי להשבית פרוטוקולי TLS, צריך לערוך את קובץ התצורה, כפי שמתואר במאמר שימוש בקובץ תצורה להגדרת TLS:

  1. פותחים את קובץ התצורה בכלי עריכה.
  2. כדי להשבית פרוטוקול TLS אחד (לדוגמה, TLSv1.0), מוסיפים את הפרטים הבאים לקובץ התצורה:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    כדי להשבית מספר פרוטוקולים, לדוגמה, TLSv1.0 ו-TLSv1.1, מוסיפים את הקוד הבא לקובץ התצורה:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. שומרים את השינויים בקובץ התצורה.
  4. מריצים את הפקודה הבאה כדי להגדיר TLS (אבטחת שכבת התעבורה):
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    configFile הוא הנתיב המלא לקובץ התצורה.

  5. מפעילים מחדש את ממשק המשתמש של Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

שימוש בקובצי cookie מאובטחים

ב-Apigee Edge לענן הפרטי יש תמיכה בהוספת הדגל secure לכותרת Set-Cookie של תגובות מממשק המשתמש של Edge. אם הסימון הזה קיים, ניתן לשלוח את קובץ ה-cookie רק בערוצים שמופעל בהם TLS (אבטחת שכבת התעבורה). אם קובץ ה-cookie לא נמצא, ניתן לשלוח את קובץ ה-cookie בכל ערוץ, בין אם הוא מאובטח ובין אם לא.

קובצי cookie בלי הסימון secure עלולים לאפשר לתוקף להשיג את קובץ ה-cookie ולהשתמש בו שוב או לפרוץ לסשן פעיל. לכן מומלץ להפעיל את ההגדרה הזו.

כדי להגדיר את הדגל secure לקובצי cookie בממשק המשתמש של Edge:

  1. פותחים את הקובץ הבא בכלי לעריכת טקסט:
    /opt/apigee/customer/application/ui.properties

    אם הקובץ לא קיים, יוצרים אותו.

  2. מגדירים את המאפיין conf_application_session.secure לערך true בקובץ ui.properties, כמו בדוגמה הבאה:
    conf_application_session.secure=true
  3. שומרים את השינויים.
  4. מפעילים מחדש את ממשק המשתמש של Edge באמצעות הכלי apigee-serice, כמו בדוגמה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

כדי לוודא שהשינוי פועל, בודקים את כותרות התגובות בממשק המשתמש של Edge באמצעות כלי עזר כמו curl. לדוגמה:

curl -i -v https://edge_UI_URL

הכותרת צריכה לכלול שורה שנראית כך:

Set-Cookie: secure; ...

השבתת TLS בממשק המשתמש של Edge

כדי להשבית TLS בממשק המשתמש של Edge, משתמשים בפקודה הבאה:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl