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

Edge for Private Cloud גרסה 4.17.05

כברירת מחדל, TLS מושבת ל-Management 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 ל-Management API, מבצעים את התהליך הבא:

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

בממשק ה-API לניהול יש עכשיו תמיכה בגישה באמצעות TLS.

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

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

בתהליך שלמעלה, ב-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. מפעילים מחדש את שרת ניהול הקצה באמצעות הפקודה:
    $ /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_webserver_ssl.port.
  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 | נכון>

conf_webserver_trust.store.path=&lt;path&gt;

conf_webserver_trust.store.password=

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

conf_webserver_exclude.cipher.suites=&lt;CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

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

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