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

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

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

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

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

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

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

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

למשל:

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

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

הגדרה של סטים של אלגוריתמים להצפנה (cipher suite) במארחים וירטואליים

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

במאמר סטים נתמכים של אלגוריתמים להצפנה (cipher suite) מופיעה רשימה של אפשרויות ההצפנה חבילות שנתמכות ב-Apigee.

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

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

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

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

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

    לדוגמה, אם רוצים להתיר רק את סטים של אלגוריתמים להצפנה (cipher suite) TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 והקבוצה TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, ואז לקבוע את הערכים המתאימים מחרוזות הצפנה של OpenSSL מ- דף של צופן OpenSSL כפי שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של 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 של מארח וירטואלי כפי שמוצג בהמשך:

    משתמש ב-Public Cloud:

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

    משתמש בענן פרטי:

    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.

    לדוגמה, אם רוצים להתיר רק את סטים של אלגוריתמים להצפנה (cipher suite) TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 והקבוצה TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, ואז לקבוע את הערכים המתאימים מחרוזות הצפנה של OpenSSL מ- דף של צופן OpenSSL כפי שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של 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 של המארח הווירטואלי באופן הבא:

    משתמש ב-Public Cloud:

    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}
    

    משתמש בענן פרטי:

    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}
    

סטים נתמכים של אלגוריתמים להצפנה (cipher suite)

ב-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

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

בקטע הזה מוסבר איך לוודא שסטים של אלגוריתמים להצפנה (cipher suite): במארח הווירטואלי באמצעות ה-API של Edge.

  1. להפעיל את אחזור API של מארח וירטואלי כדי לקבל את ההגדרה של virtualhost כמו בדוגמה הבאה:

    משתמש ב-Public Cloud:

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

    משתמש בענן פרטי:

    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 עדיין מופיע, עליך לוודא ביצעתם את כל השלבים שמפורטים הגדרה נכונה של סטים של אלגוריתמים להצפנה (cipher suite) במארחים וירטואליים אם פספסתם שלב כלשהו, יש לחזור על השלבים האלה שוב בצורה נכונה.
  4. אם עדיין אין לך אפשרות לעדכן או להוסיף סטים של אלגוריתמים להצפנה (cipher suite) למארח הווירטואלי, צריך לפנות אל תמיכה ב-Apigee Edge.

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

בקטע הזה מוסבר איך להגדיר סטים של אלגוריתמים להצפנה (cipher suite) בנתבים. סטים של אלגוריתמים להצפנה (cipher suite): שהוגדרו באמצעות המאפיין 'נתב' conf_load_balancing_load.balancing.driver.server.ssl.ciphers, שמייצג את סט האלגוריתמים להצפנה (cipher suite) המופרד בנקודתיים.

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

  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
    

    לדוגמה, אם רוצים להתיר רק את סט האלגוריתמים להצפנה (cipher suite) TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 והקבוצה TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, ואז לקבוע את הערכים המתאימים מחרוזות הצפנה של OpenSSL מ- דף של צופן OpenSSL כפי שמוצג בטבלה הבאה:

    חבילת הצפנה מחרוזת הצפנה של 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. אם יש לכם כמה נתבים, צריך לחזור על השלבים שלמעלה בכל הנתבים.

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

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

  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 שלמעלה, כאשר הפונקציה סטים של אלגוריתמים להצפנה (cipher suite) עודכנו ועכשיו הם 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 הוגדרה בערכים של חבילת ההצפנה החדשה. הסימון הזה מצביע על כך שחבילת ההצפנה הסתיימה בהצלחה עודכן למחרוזות ההצפנה של OpenSSL DHE-RSA-AES128-GCM-SHA25ו ECDHE-RSA-AES128-GCM-SHA256 בנתב.

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