בדף הזה מוסבר איך להגדיר TLS 1.3 ב'מעבדי הודעות של Apigee' לתעבורת נתונים שפונה דרומה. (תנועה בין מעבד ההודעות לשרת הקצה העורפי).
למידע נוסף על התכונה 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 v1.3 כשהיא לא מופעלת כברירת מחדל.
אם אתם משתמשים באחת מהגרסאות הבאות, גרסה 1.3 של TLS כבר אמורה להיות מופעלת כברירת מחדל. בתפקידי לקוח (מעבד הודעות פועל כלקוח לחיבורי TLS שפונים לכיוון דרום), כך שלא צריך לבצע פעולה כלשהי:
- Oracle JDK 8u341 ואילך
- OpenJDK 8u352 ואילך
כדי שגרסה 1.3 של TLS תפעל, כל התנאים הבאים צריכים להתקיים:
- הבסיס של Java במעבד ההודעות חייב לתמוך ב-TLS v1.3.
- יש להפעיל את TLS v1.3 ב-Java ב'מעבד הודעות'.
- יש להפעיל את גרסה 1.3 של TLS באפליקציה 'מעבד הודעות'.
איך להפעיל TLS v1.3 ב-Java כאשר היא לא מופעלת כברירת מחדל.
בקטע הזה מוסבר איך להפעיל TLS v1.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.
כדי להפעיל את הפרוטוקולים TLS v1, v1.1, v1.2 ו-v1.3:
- קביעת ההגדרות הבאות ב-
קובץ התצורה של מעבד ההודעות
(
/opt/apigee/customer/application/message-processor.properties
):bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- צריך להפעיל מחדש את מעבד ההודעות.
איך להשבית את TLS v1.3 כשהוא מופעל כברירת מחדל
אם משתמשים ב-Oracle JDK 8u341 ואילך, או ב-OpenJDK 8u352 ואילך, TLSv1.3 מופעל על ידי ברירת המחדל ללקוחות. אם ברצונך להשבית את TLS v1.3 במקרים כאלה, יש לך שתי אפשרויות:
- צריך להגדיר את ה-SSLInfo של שרת היעד ולוודא שה-TLSv1.3 לא מוזכר רשימת הפרוטוקולים. צפייה רכיבי הגדרה של נקודת קצה (TargetEndpoint) של TLS/SSL. הערה: אם לא צוינו פרוטוקולים בתצורה של שרת היעד, פרוטוקולים שנתמכים על ידי 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