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

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

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

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

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

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

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

אפשר להגדיר חבילות הצפנה במארחים הווירטואליים או בנתבי Apigee. חשוב לזכור ש-Apigee מקבלת סטים של אלגוריתמים להצפנה רק בפורמט OpenSSL cipher string. גם במארח הווירטואלי וגם בנתב. ניהול הצפנים של 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.

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

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

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

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

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

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

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

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

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

    לדוגמה, אם ברצונך להתיר רק את חבילות ההצפנה 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 Get Computer host, כפי שמוצג למטה:

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

    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.

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

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

    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}
    

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

ב-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 של קבלת מארח וירטואלי כדי לקבל את ההגדרות של virtualhost, כמו שמוצג בהמשך:

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

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

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

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

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

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

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

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