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

Edge for Private Cloud גרסה 4.17.05

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

http://ms_IP:8080

לחלופין, אפשר להגדיר גישת TLS לממשק ה-API לניהול כך שתוכלו לגשת אליה באמצעות הטופס:

https://ms_IP:8443

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

כדי להבטיח הצפנת תנועה אל ממשק ה-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 לממשק ה-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 הוא השם של קובץ ה-Keystore.
  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 הוא הסיסמה של מאגר המפתחות המעורפל. למידע על יצירת סיסמה מעורפלת (obfuscation), אפשר לקרוא את המאמר בנושא הגדרת TLS/SSL ל-Edge On Premises.
  5. מפעילים מחדש את שרת ניהול Edge באמצעות הפקודה:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server הפעלה מחדש

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

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

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

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

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

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

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

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

מאפייני 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 יכולים להימשך לפני הזמן הקצוב לתפוגה (באלפיות שנייה).