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

כברירת מחדל, ה-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 הוא השם של קובץ מאגר המפתחות.

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

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 Architecture Architecture Providers Oracle Providers for JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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