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

Edge for Private Cloud גרסה 4.16.09

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

http://ms_IP:8080

לחלופין, אפשר להגדיר גישה ל-TLS לממשק ה-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 בתעבורת הנתונים אל Management API וממנו. אם הקובץ הזה לא קיים, יוצרים אותו.

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

  1. יוצרים את קובץ ה-JKS של מאגר המפתחות שמכיל את אישור ה-TLS ואת המפתח הפרטי. מידע נוסף זמין במאמר הגדרת TLS/SSL ל-Edge On Premises.
  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
    # מגדירים את הערך הבא כ-true אם כל התקשורת צריכה להתבצע דרך HTTPS.
    # Not recommended until you have tested TLS/HTTPS for the Edge API and
    # configured the Edge UI to use TLS to access the Edge API, as shown below.
    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 היא הסיסמה המעורפלת של מאגר המפתחות. למידע על יצירת סיסמה עם ערפול קוד (obfuscated), ראו הגדרת TLS/SSL ל-Edge On Premises.
  5. מפעילים מחדש את שרת הניהול של Edge באמצעות הפקודה:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server empty

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

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

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

בתהליך שלמעלה, Apigee המליצה להשאיר את הערך conf_webserver_http.turn.off=false כדי ש-Edge UI יוכל להמשיך לבצע קריאות ל-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_server_ .
  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=

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

מידע על חבילות צפנים ועל ארכיטקטורת הצפנה זמין במאמרים הבאים:

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 לפני שהם יפוג (באלפיות שנייה).