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

כברירת מחדל, פרוטוקול TLS מושבת ב-Management API, והגישה ל-Edge Management API מתבצעת דרך HTTP באמצעות כתובת ה-IP של צומת Management Server ויציאה 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 בתנועה אל 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
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    כאשר keyStore.jks הוא קובץ מאגר המפתחות, ו-obfuscatedPassword היא הסיסמה המעורפלת של מאגר המפתחות. במאמר הגדרת TLS/SSL ל-Edge On Premises מוסבר איך ליצור סיסמה מעורפלת.

  5. מפעילים מחדש את שרת הניהול של Edge באמצעות הפקודה:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

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

  1. מגדירים גישת TLS ל-Management API כמו שמתואר למעלה.
  2. אחרי שמוודאים ש-TLS פועל ב-Management 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 restart 
  4. עורכים את /opt/apigee/customer/application/ui.properties כדי להגדיר את המאפיין הבא לממשק המשתמש של Edge:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    כאשר FQ_domain_name הוא שם הדומיין המלא, לפי כתובת האישור של שרת הניהול, ו-port היא היציאה שצוינה למעלה על ידי conf_webserver_ssl.port.

    אם הקובץ ui.properties לא קיים, יוצרים אותו.

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

    אחרת, ממשק המשתמש של Edge ידחה אישור עם חתימה עצמית.

  6. מפעילים מחדש את ממשק המשתמש של Edge באמצעות הפקודה הבאה:
    /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=password

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

conf_webserver_cert.alias=alias

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

conf_webserver_keymanager.password=password

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

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

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

OBF:xxxxxxxxxx

conf_webserver_exclude.cipher.suites=CIPHER_SUITE_1 CIPHER_SUITE_2

conf_webserver_include.cipher.suites=

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

למידע נוסף על חבילות הצפנה וארכיטקטורת קריפטוגרפיה, אפשר לעיין במאמר Java Cryptography Architecture Oracle Providers Documentation for JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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