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

Edge for Private Cloud v. 4.17.01

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

http://ms_IP:8080

לחלופין, אפשר להגדיר גישה של TLS ל-Management API כדי לגשת אליה בטופס:

https://ms_IP:8443

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

כדי להבטיח את הצפנת התנועה אל Management API וממנו, צריך להגדיר את ההגדרות בקובץ /opt/apigee/customer/application/management-server.properties.

בנוסף לתצורת TLS, אפשר גם לשלוט באימות הסיסמאות (אורך וחוזק הסיסמה) על ידי שינוי הקובץ management-server.properties.

מוודאים שיציאת ה-TLS פתוחה

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

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

הגדרת TLS

עורכים את הקובץ /opt/apigee/customer/application/management-server.properties כדי לשלוט בשימוש ב-TLS בתנועה אל ממשק ה-API לניהול וממנו. אם הקובץ הזה לא קיים, יוצרים אותו.

כדי להגדיר גישה ל-TLS ל-Management API, פועלים לפי התהליך הבא:

  1. יוצרים את קובץ ה-JKS של מאגר המפתחות שמכיל את אישור ה-TLS ואת המפתח הפרטי. מידע נוסף זמין במאמר הגדרת TLS/SSL (אבטחת שכבת התעבורה) ב-Edge Ones.
  2. מעתיקים את קובץ ה-JKS של מאגר המפתחות לתיקייה בצומת של שרת הניהול, למשל /opt/apigee/customer/application.
  3. משנים את הבעלות של קובץ ה-JKS ל-apigee:
    ‎$ chown apigee:apigee keystore.jks

    כאשר keystore.jks הוא שם קובץ מאגר המפתחות.
  4. עורכים את הקובץ /opt/apigee/customer/application/management-server.properties כדי להגדיר את המאפיינים הבאים. אם הקובץ הזה לא קיים, יוצרים אותו:
    conf_webserver_ssl.enabled=true
    # משאירים את conf_webserver_http.turn.off מוגדר כ-false
    # כי הרבה קריאות פנימיות ב-Edge משתמשות ב-HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # מזינים למטה את הסיסמה של מאגר המפתחות המעורפל.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    כאשר keyStore.jks הוא קובץ מאגר המפתחות, ו-obfuscatedPassword היא הסיסמה המעורפלת של מאגר המפתחות. מידע נוסף על יצירת סיסמה מעורפלת זמין במאמר הגדרת TLS/SSL ל-Edge On Premises.
  5. מפעילים מחדש את Edge Management Server באמצעות הפקודה:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

מעכשיו יש ב-Management API תמיכה בגישה דרך TLS.

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

הגדרת ממשק המשתמש של Edge כך שישתמש ב-TLS כדי לגשת ל-Edge API

בתהליך שלמעלה, ב-Apigee מומלץ לצאת מהכתובת conf_webserver_http.turn.off=false כדי שממשק המשתמש של Edge יוכל להמשיך לבצע קריאות ל-Edge API באמצעות HTTP.

כדי להגדיר את ממשק המשתמש של Edge לבצע את הקריאות האלה רק דרך HTTPS:

  1. מגדירים גישה ל-TLS ל-Management API כפי שמתואר למעלה.
  2. אחרי שמוודאים ש-TLS פועל בממשק ה-API לניהול, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties כדי להגדיר את המאפיין הבא:
    conf_webserver_http.turn.off=true
  3. מפעילים מחדש את שרת ניהול הקצה באמצעות הפקודה:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server running
  4. עורכים את הקובץ /opt/apigee/customer/application/ui.properties כדי להגדיר את המאפיין הבא לממשק המשתמש של Edge. אם הקובץ הזה לא קיים, יוצרים אותו:
    conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1"

    כאשר FQDN הוא שם הדומיין המלא, בהתאם לכתובת האישור של שרת הניהול, ומספר היציאה הוא היציאה שצוינה למעלה על ידי conf_webserver_ssl.port.
  5. רק אם השתמשתם באישור בחתימה עצמית (לא מומלץ בסביבת ייצור) כשאתם מגדירים גישת TLS לממשק ה-API לניהול שלמעלה, אתם צריכים להוסיף את המאפיין הבא ל-ui.properties:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    אחרת, ממשק המשתמש של Edge ידחה אישור בחתימה עצמית.
  6. מפעילים מחדש את ממשק Edge UI באמצעות הפקודה:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

מאפייני TLS לשרת הניהול

בטבלה הבאה מפורטים כל מאפייני ה-TLS/‏SSL שאפשר להגדיר בקובץ management-server.properties:

נכסים

תיאור

conf_webserver_http.port=8080

ברירת המחדל היא 8080.

conf_webserver_ssl.enabled=false

כדי להפעיל או להשבית את TLS או SSL. כש-TLS/‏SSL מופעל (true), צריך להגדיר גם את המאפיינים ssl.port ו-keystore.path.

conf_webserver_http.turn.off=true

כדי להפעיל או להשבית את http יחד עם https. אם רוצים להשתמש רק ב-HTTPS, משאירים את ערך ברירת המחדל true.

conf_webserver_ssl.port=8443

יציאת ה-TLS/‏SSL.

חובה כש-TLS/SSL מופעל (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=<path>

הנתיב לקובץ מאגר המפתחות.

חובה כש-TLS/SSL מופעל (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=

צריך להשתמש בסיסמה מעורפלת בפורמט הזה: OBF:xxxxxxxxxx

conf_webserver_cert.alias=

כינוי אופציונלי של אישור מאגר מפתחות

conf_webserver_keymanager.password=

אם למנהל המפתחות יש סיסמה, צריך להזין גרסה מעורפלת של הסיסמה בפורמט הזה: OBF:xxxxxxxxxx

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

קביעת הגדרות למאגר האישורים. קובעים אם רוצים לקבל את כל אישורי ה-TLS/‏SSL (לדוגמה, כדי לקבל סוגים לא סטנדרטיים). ברירת המחדל היא false. מזינים את הנתיב למאגר האמון, ומזינים סיסמה מעורפלת של מאגר האישורים בפורמט הזה: OBF:xxxxxxxxxx

conf_webserver_exclusion.cipher.Suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

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

מידע נוסף על סטים של אלגוריתמים להצפנה (cipher suite) ועל ארכיטקטורת קריפטוגרפיה זמין במאמרים הבאים:

http://docs.oracle.com/javase/8/docs/technotes/
guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

מספרים שלמים שקובעים:

  • גודל המטמון של סשן TLS/‏SSL (בייטים) לאחסון פרטי סשן של כמה לקוחות.
  • משך הזמן של סשנים של TLS/SSL לפני שהם יפוג (באלפיות שנייה).