הגדרת 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
# Set type to PKCS12 if you are using a PKCS12 keystore
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 הוא הנתיב המלא לקובץ ששמרתם.

שימוש במאגר מפתחות PKCS12 למערכות הפעלה שתומכות ב-FIPS

אם אתם משתמשים ב-Edge for Private Cloud במערכת הפעלה שתומכת ב-FIPS, עליכם להשתמש במאגר מפתחות מסוג PKCS12. אפשר ליצור מאגר מפתחות PKCS12 באמצעות פקודות רגילות של OpenSSL. כשמשתמשים במאגר מפתחות של PKCS12, מגדירים את KEY_ALGO=PKCS12 בקובץ התצורה.

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

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

ההגדרה הנוספת נדרשת כשממשק המשתמש של Edge שולח למשתמשים אימיילים להגדרת הסיסמה שלהם כשהם נוצרים, או כשהם מבקשים לאפס סיסמה שאבדה. הודעת האימייל הזו מכילה כתובת URL שהמשתמש בוחר כדי להגדיר או לאפס סיסמה. כברירת מחדל, אם ממשק המשתמש של Edge לא מוגדר לשימוש ב-TLS, כתובת ה-URL באימייל שנוצר משתמשת בפרוטוקול HTTP ולא ב-HTTPS. צריך להגדיר את מאזן העומסים ואת ממשק Edge UI כך שייצרו כתובת אימייל שמשתמשת ב-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