הגדרה של חבילות הצפנה במארחים וירטואליים ובנתבים

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

במאמר הזה מוסבר איך מגדירים חבילות הצפנה במארחים וירטואליים ובנתבים ב-Apigee Edge.

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

ב-Apigee, חבילות הצפנה צריכות להיות מוסכמות הדדית בין אפליקציות הלקוח לבין נתבים.

יכול להיות שתרצו לשנות את חבילות ההצפנה ב-Apigee Edge מהסיבות הבאות:

  • כדי למנוע אי התאמה בין חבילות הצפנה בין אפליקציות לקוח לבין נתבי Apigee
  • כדי להשתמש בחבילות צופן מאובטחות יותר, או כדי לתקן נקודות חולשה באבטחה או כדי לשפר את האבטחה

אפשר להגדיר חבילות הצפנה במארחים וירטואליים או בנתבי Apigee. הערה: מערכת Apigee מקבלת חבילות הצפנה רק בפורמט מחרוזות הצפנה של OpenSSL במארח הווירטואלי ובנתב. בדף ה-man של OpenSSL ciphers מפורטים סוויטות ההצפנה של SSL או TLS מהמפרט הרלוונטי והמקבילות שלהן ב-OpenSSL.

למשל:

אם רוצים להגדיר את חבילת TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ההצפנה במארח הווירטואלי או בנתב Apigee, צריך לזהות את מחרוזת ההצפנה המתאימה של OpenSSL מתוך דף ה-man של OpenSSL ciphers. מחרוזת הצפנה של OpenSSL עבור סט האלגוריתמים להצפנה TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 היא ECDHE-RSA-AES128-GCM-SHA256. לכן צריך להשתמש במחרוזת הצפנה של OpenSSL ECDHE-RSA-AES128-GCM-SHA256 כשמגדירים את סט האלגוריתמים להצפנה במארח הווירטואלי או בנתב Apigee.

לפני שמתחילים

הגדרת חבילות הצפנה במארחים וירטואליים

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

רשימה של חבילות ההצפנה ש-Apigee תומך בהן מופיעה במאמר בנושא חבילות הצפנה נתמכות.

אפשר להגדיר את המארח הווירטואלי באחת מהדרכים הבאות:

  • שימוש בממשק המשתמש של Edge
  • שימוש ב-Edge API

שימוש בממשק המשתמש של Edge

כדי להגדיר את המארח הווירטואלי באמצעות ממשק המשתמש של Edge:

  1. מתחברים אל ממשק המשתמש של Edge.
  2. עוברים אל ניהול > מארחים וירטואליים.
  3. בוחרים סביבה ספציפית שבה רוצים לבצע את השינוי.
  4. בוחרים את המארח הווירטואלי הספציפי שרוצים להגדיר לו את חבילות ההצפנה.
  5. בקטע Properties (מאפיינים), מעדכנים את הערך של Ciphers (הצפנות) עם רשימה של מחרוזות הצפנה של OpenSSL שמופרדות באמצעות נקודתיים.

    לדוגמה, אם רוצים לאפשר רק את חבילות ההצפנה TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 ו- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, צריך לקבוע את מחרוזות ההצפנה התואמות של OpenSSL מתוך דף ה-man של OpenSSL ciphers, כמו שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    מוסיפים את מחרוזת הצפנה של OpenSSL עם הפרדה באמצעות נקודתיים, כמו שמוצג באיור הבא:

    דוגמה להצפנה

  6. שומרים את השינוי.

שימוש ב-Edge API

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

  1. מקבלים את ההגדרה הנוכחית של המארח הווירטואלי באמצעות ה-API של Get virtual host, כמו שמוצג בהמשך:

    משתמש בענן ציבורי:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}

    משתמש ב-Private Cloud:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
    {
      "hostAliases": [
        "api.myCompany,com"
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  2. מוסיפים את המאפיין ssl_ciphers למטען הייעודי (payload) הקיים בפורמט JSON של הגדרת המארח הווירטואלי, בקטע properties, עם מחרוזות ההצפנה המתאימות של OpenSSL.

    לדוגמה, אם רוצים לאפשר רק את חבילות ההצפנה TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 ו-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, צריך לקבוע את מחרוזות ההצפנה התואמות של OpenSSL מתוך דף ה-man של OpenSSL ciphers, כמו שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    מוסיפים את properties בלוק הקוד הבא:

    דוגמה לתצורה מעודכנת של מארח וירטואלי:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  3. שומרים את ההגדרות המעודכנות של המארח הווירטואלי בקובץ. לדוגמה, virtualhost-payload.json.
  4. מעדכנים את ההגדרה של virtualhost באמצעות API Update a virtual host באופן הבא:

    משתמש בענן ציבורי:

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}

    משתמש ב-Private Cloud:

    curl -v -X POST Content-Type: application/json
    http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u {username}

חבילות הצפנה נתמכות

‫Apigee תומך בסטים הבאים של אלגוריתמים להצפנה (cipher suite):

ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-RSA-CAMELLIA256-SHA
AES256-GCM-SHA384
AES256-SHA256  
AES256-SHA
CAMELLIA256-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
DHE-RSA-CAMELLIA128-SHA
AES128-GCM-SHA256
AES128-SHA256   
AES128-SHA 
CAMELLIA128-SHA

אימות של חבילות הצפנה במארחים וירטואליים

בקטע הזה מוסבר איך לוודא שחבילות ההצפנה שונו בהצלחה במארח הווירטואלי באמצעות Edge API.

  1. מריצים את ה-API‏ Get virtual host כדי לקבל את ההגדרה של virtualhost כמו שמוצג למטה:

    משתמש בענן ציבורי:

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}

    משתמש ב-Private Cloud:

    curl -v -X GET http://{management_server_IP}:8080/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u {username}
  2. מוודאים שהמאפיין ssl_ciphers הוגדר לערך החדש.

    דוגמה לתצורה מעודכנת של מארח וירטואלי:

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "ssl_ciphers",
            "value": "DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }

    בדוגמה שלמעלה, שימו לב ש-ssl_ciphers הוגדר עם הערך החדש.

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

הגדרת סטים של אלגוריתמים להצפנה בנתבים

בקטע הזה מוסבר איך מגדירים חבילות הצפנה בנתבים. אפשר להגדיר חבילות צופן באמצעות המאפיין Router‏ conf_load_balancing_load.balancing.driver.server.ssl.ciphers, שמייצג את חבילות הצופן המקובלות שמופרדות באמצעות נקודתיים.

כדי להגדיר חבילות הצפנה בנתבים:

  1. במחשב של הנתב, פותחים את הקובץ הבא בעורך. אם הוא לא קיים, צריך ליצור אותו.

    /opt/apigee/customer/application/router.properties

    לדוגמה, כדי לפתוח את הקובץ באמצעות vi, מזינים את הפקודה הבאה:

    vi /opt/apigee/customer/application/router.properties
  2. מוסיפים לקובץ properties שורה בפורמט הבא, ומחליפים את colon_separated_cipher_suites בערך:
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=colon_separated_cipher_suites

    לדוגמה, אם רוצים לאפשר רק את חבילות ההצפנה TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 ו-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, צריך לקבוע את מחרוזות ההצפנה התואמות של OpenSSL מתוך דף ה-man של OpenSSL ciphers, כמו שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של OpenSSL
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256

    ואז מוסיפים את השורה הבאה:

    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
  3. שומרים את השינויים.
  4. מוודאים שקובץ המאפיינים הזה נמצא בבעלות המשתמש apigee, כמו שמוצג בהמשך:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  5. מפעילים מחדש את הנתב כמו שמוצג בהמשך:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. אם יש לכם יותר מנתב אחד, צריך לחזור על השלבים שלמעלה בכל הנתבים.

אימות של סט אלגוריתמים להצפנה בנתבים

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

  1. בנתב, מחפשים את המאפיין conf_load_balancing_load.balancing.driver.server.ssl.ciphers באמצעות כלי החיפוש של Apigee מהתיקייה /opt/apigee, ובודקים אם הוא הוגדר עם הערך החדש באופן הבא:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
  2. אם חבילות ההצפנה החדשות מוגדרות בהצלחה בנתב, הפקודה שלמעלה מציגה את הערכים החדשים.

    בדוגמה הבאה מוצגת התוצאה של הפקודה search שצוינה למעלה, אחרי שחבילות ההצפנה עודכנו ל-DHE-RSA-AES128-GCM-SHA256 ול-ECDHE-RSA-AES128-GCM-SHA256:

    Found key conf_load_balancing_load.balancing.driver.server.ssl.ciphers, with value, DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256, in /opt/apigee/customer//application/router.properties

    בדוגמת הפלט שלמעלה, אפשר לראות שהמאפיין conf_load_balancing_load.balancing.driver.server.ssl.ciphers הוגדר עם הערכים החדשים של סט האלגוריתמים להצפנה. ההודעה הזו מציינת שסט האלגוריתמים להצפנה (cipher suite) עודכן בהצלחה למחרוזות ההצפנה של OpenSSL‏ DHE-RSA-AES128-GCM-SHA25ו-ECDHE-RSA-AES128-GCM-SHA256 בנתב.

  3. אם עדיין מוצגים הערכים הישנים של חבילות ההצפנה [conf_load_balancing_load.balancing.driver.server.ssl.ciphers], צריך לוודא שפעלתם לפי כל השלבים שמפורטים במאמר הגדרת חבילות הצפנה בנתבים. אם פספסתם שלב כלשהו, צריך לחזור על כל השלבים בצורה נכונה.
  4. אם עדיין אין אפשרות לשנות את חבילות ההצפנה בנתבים, צריך לפנות אל התמיכה של Apigee Edge.