הגדרת 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 בתעבורת הנתונים אל 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. מפעילים מחדש את שרת ניהול הקצה באמצעות הפקודה:
    /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 פועל בממשק ה-API לניהול, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties כדי להגדיר את המאפיין הבא:
    conf_webserver_http.turn.off=true
  3. מפעילים מחדש את Edge Management Server באמצעות הפקודה הבאה:
    /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

שימוש במאגר מפתחות PKCS12 למערכות הפעלה שתומכות ב-FIPS

אם משתמשים ב-Edge for Private Cloud במערכת הפעלה שתומכת ב-FIPS, צריך להשתמש במאגר מפתחות מסוג PKCS12. הדבר נדרש כדי לעמוד בסטנדרטים של FIPS. בנוסף להגדרות הסטנדרטיות האחרות שמוזכרות במאמר הזה, מוסיפים את ההגדרה הבאה לקובץ management-server.properties:

conf/webserver.properties+keystore.type=PKCS12

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

מאפייני 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 עבור JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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