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

כברירת מחדל, 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 Premises.
  2. מעתיקים את קובץ ה-JKS של מאגר המפתחות לספרייה בצומת של שרת הניהול, כמו בתור /opt/apigee/customer/application.
  3. שינוי הבעלות על קובץ ה-JKS ל-apigee user:
    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 Ones עבור מידע על יצירת סיסמה מעורפלת.

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

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

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

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

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

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

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

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

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

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

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

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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