הגדרת 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

המדיניות הזו מגדירה את הסטים המושבתים של אלגוריתמים להצפנה (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 for Private 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