הגדרת TLS 1.3 לתעבורה לכיוון דרום

בדף הזה מוסבר איך להגדיר TLS 1.3 ב-Apigee Messageprocessors לתעבורת נתונים לכיוון דרום (תנועה בין מעבד ההודעות לשרת הקצה העורפי).

למידע נוסף על התכונה TLS 1.3 ב-Java, ראו נתוני גרסה של JDK 8u261 לעדכון.

ההליך להפעלת TLS 1.3 תלוי בגרסת ה-Java שבה אתם משתמשים. מידע נוסף מופיע בקטע בדיקת גרסת ה-Java במעבד ההודעות שבהמשך כדי למצוא את גרסת ה-Java שהותקנה במעבד ההודעות.

גרסאות TLS (אבטחת שכבת התעבורה) גרסה 1.3 ו-Java

התכונה TLS 1.3 הושקה בגרסאות הבאות של Java:

  • Oracle JDK 8u261
  • OpenJDK 8u272

בגרסאות ה-Java הבאות, קיימת תכונת TLS v1.3, אבל היא לא מופעלת כברירת מחדל בתפקידי לקוח:

  • Oracle JDK 8u261 ואילך, אבל פחות מ-Oracle JDK 8u341
  • OpenJDK 8u272 ואילך אבל פחות מ-OpenJDK 8u352

אם אתם משתמשים באחת מהגרסאות האלה, עליכם להפעיל את TLS (אבטחת שכבת התעבורה) בגרסה 1.3, כפי שמתואר במאמר איך מפעילים את TLS (אבטחת שכבת התעבורה) בגרסה 1.3 כשהיא לא מופעלת כברירת מחדל.

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

  • Oracle JDK 8u341 ואילך
  • OpenJDK 8u352 ואילך

כדי שגרסה 1.3 של TLS תפעל, כל התנאים הבאים צריכים להתקיים:

  • תשתית Java במעבד ההודעות חייבת לתמוך ב-TLS (אבטחת שכבת התעבורה) בגרסה 1.3.
  • יש להפעיל את TLS v1.3 ב-Java במעבד ההודעות.
  • יש להפעיל את TLS בגרסה 1.3 באפליקציה של מעבד ההודעות.

כיצד להפעיל את TLS v1.3 ב-Java כאשר הוא אינו מופעל כברירת מחדל.

בקטע הזה מוסבר איך להפעיל את TLS (אבטחת שכבת התעבורה) בגרסה 1.3 אם משתמשים באחת מגרסאות Java הבאות:

  • Oracle JDK 8u261 ואילך, אבל פחות מ-Oracle JDK 8u341
  • OpenJDK 8u272 ואילך אבל פחות מ-OpenJDK 8u352

במעבד ההודעות, מגדירים את מאפיין Java jdk.tls.client.protocols. הערכים מופרדים בפסיקים ויכולים להכיל לפחות אחד מהערכים הבאים: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 ו- SSLv3.

לדוגמה, אם מגדירים את -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3, פרוטוקולי הלקוח TLSv1.2 ו-TLSv1.3 מופעלים.

בקטע שינוי של מאפייני JVM אחרים מוסבר איך מגדירים מאפייני JVM ברכיב Edge.

כדי להפעיל את הפרוטוקולים v1, v1.1, v1.2 ו-v1.3:

  1. מגדירים את התצורה הבאה בקובץ התצורה של מעבד ההודעות (/opt/apigee/customer/application/message-processor.properties):
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. מפעילים מחדש את מעבד ההודעות.
>

איך להשבית את TLS v1.3 כאשר הוא מופעל כברירת מחדל

אם משתמשים ב-Oracle JDK 8u341 ואילך או ב-OpenJDK 8u352 ואילך, TLSv1.3 מופעל כברירת מחדל אצל לקוחות. אם ברצונך להשבית את TLS v1.3 במקרים כאלה, יש לך שתי אפשרויות:

  • מגדירים את SSLInfo של שרת היעד ומוודאים ש-TLSv1.3 לא יצוין ברשימת הפרוטוקולים. למידע נוסף, אפשר לקרוא את המאמר רכיבי תצורת TLS/SSL של TargetEndpoint. הערה: אם לא צוינו פרוטוקולים בהגדרות של שרת היעד, הפרוטוקולים שנתמכים ב-Java יישלחו כאפשרויות בלחיצת היד של הלקוח.
  • השבתת גרסה 1.3 של TLS במעבד ההודעות על ידי השבתת הפרוטוקול לחלוטין. למידע נוסף, ראו הגדרה של פרוטוקול TLS במעבד ההודעות.

בדיקת גרסת Java במעבד הודעות

כדי לבדוק איזו גרסת Java מותקנת במעבד הודעות, צריך להיכנס לצומת של מעבד ההודעות ולהריץ את הפקודה הבאה:

java -version

בפלט לדוגמה שבהמשך רואים ש-OpenJDK 8u312 מותקן.

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

הצפנים הנתמכים

בשלב זה, Java 8 תומך בשני צפנים TLS (אבטחת שכבת התעבורה) בגרסה 1.3:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

אפשר להשתמש ב-openssl כדי לבדוק אם שרת היעד תומך ב-TLS v1.3 ולפחות באחד מהצפנים שלמעלה. שימו לב שבדוגמה הזו נעשה שימוש בכלי השירות openssl11 שבו מופעל TLS v1.3.

$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3