הגדרת 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 (אבטחת שכבת התעבורה)/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

במקום לתהליך שלמעלה, אפשר להעביר קובץ config לפקודה בשלב השני של ההליך. צריך להשתמש בשיטה הזו אם רוצים להגדיר מאפייני 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 שהמשתמש בוחר כדי להגדיר או לאפס סיסמה. כברירת מחדל, אם לא הוגדר להשתמש ב-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

מגדיר את סט האלגוריתמים המושבת להצפנה (cipher suite) וניתן להשתמש בו גם כדי למנוע שימוש בגדלים קטנים של מפתחות. ללחיצת יד בפרוטוקול 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 ל-Cloud פרטי יש תמיכה בהוספת הדגל secure לכותרת Set-Cookie עבור מממשק המשתמש של Edge. אם הסימון הזה קיים, ניתן לשלוח את קובץ ה-cookie רק ערוצים שתומכים ב-TLS. אם הקובץ לא נמצא, ניתן לשלוח את קובץ ה-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