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

כברירת מחדל, פרוטוקול TLS מושבת ב-Management API, ואתם ניגשים ל-Edge Management API דרך 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 בתעבורה אל ומ-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. מעדכנים את ההגדרה של ממשק המשתמש החדש של Edge כדי להתחבר לשרת הניהול באמצעות HTTPS. מגדירים את המאפיינים הבאים בקובץ התצורה של ממשק המשתמש החדש של Edge:
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    כאשר port היא היציאה שצוינה קודם על ידי conf_webserver_ssl.port (לדוגמה, 8443).

  5. מפעילים את ההגדרה המעודכנת בממשק המשתמש החדש של Edge:
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    מידע נוסף על קובץ התצורה של ממשק המשתמש החדש של Edge זמין במאמר הגדרת ממשק המשתמש החדש של Edge. כדי להגדיר גישת HTTPS לממשק המשתמש החדש של Edge, קראו את המאמר הגדרת TLS לממשק המשתמש החדש של Edge.

מאפייני 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_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

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

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

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

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

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

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

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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