הגדרת פרוטוקול TLS לנתב ולמעבד הודעות

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

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

במעבד הבקשות, אפשר להגדיר את הפרוטוקול ל-TargetEndpoint ספציפי. מידע נוסף זמין במאמר הגדרת TLS מ-Edge לקצה העורפי (Cloud ו-ענן פרטי).

הגדרת פרוטוקול TLS בנתב

כדי להגדיר את פרוטוקול ה-TLS ב-Router, מגדירים מאפיינים בקובץ router.properties:

  1. פותחים את הקובץ router.properties בכלי לעריכת טקסט. אם הקובץ לא קיים, יוצרים אותו:
    vi /opt/apigee/customer/application/router.properties
  2. מגדירים את המאפיינים הרצויים:
    # Possible values are space-delimited list of: TLSv1 TLSv1.1 TLSv1.2
    conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2
  3. שומרים את השינויים.
  4. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש "apigee":
     chown apigee:apigee /opt/apigee/customer/application/router.properties
  5. מפעילים מחדש את הנתב:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  6. בודקים את קובץ ה-NGINX ‏/opt/nginx/conf.d/0-default.conf כדי לוודא שהפרוטוקול עודכן כמו שצריך:
    cat /opt/nginx/conf.d/0-default.conf

    מוודאים שהערך של ssl_protocols הוא TLSv1.2.

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

הגדרת פרוטוקול TLS במעבד הבקשות

כדי להגדיר את פרוטוקול ה-TLS במעבד הבקשות, מגדירים מאפיינים בקובץ message-processor.properties:

  1. פותחים את הקובץ message-processor.properties בכלי לעריכת טקסט. אם הקובץ לא קיים, יוצרים אותו:
    vi /opt/apigee/customer/application/message-processor.properties
  2. מגדירים את המאפיינים באמצעות התחביר הבא:
    # Possible values are a comma-delimited list of TLSv1, TLSv1.1, and TLSv1.2
    conf/system.properties+https.protocols=[TLSv1][,TLSv1.1][,TLSv1.2]
    # Possible values are a comma-delimited list of SSLv3, TLSv1, TLSv1.1, TLSv1.2
    # SSLv3 is required
    conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3[,TLSv1][,TLSv1.1][,TLSv1.2]
    
    # Specify the ciphers that the Message Processor supports. (You must separate ciphers with a comma.):
    conf_message-processor-communication_local.http.ssl.ciphers=cipher[,...]

    הערכים האפשריים של conf_message-processor-communication_local.http.ssl.ciphers הם:

    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • TLS_RSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
    • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

    לדוגמה:

    conf/system.properties+https.protocols=TLSv1.2
    conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1
    conf_message-processor-communication_local.http.ssl.ciphers=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

    רשימה מלאה של המאפיינים הקשורים מופיעה במאמר הגדרת TLS בין נתב לבין מעבד בקשות.

  3. שומרים את השינויים.
  4. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש "apigee":
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. מפעילים מחדש את מעבד הבקשות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. אם אתם משתמשים ב-TLS דו-כיווני עם הקצה העורפי, הגדירו את פרוטוקול ה-TLS במארח הווירטואלי כמו שמתואר במאמר הגדרת TLS מ-Edge לקצה העורפי (Cloud ו-ענן פרטי).