בדף הזה מוסבר איך להגדיר את TLS 1.3 במעבדי הבקשות של Apigee לתעבורת נתונים דרומה (תעבורת נתונים בין מעבד הבקשות לבין שרת בק-אנד).
מידע נוסף על התכונה TLS 1.3 ב-Java זמין בהערות המוצר של עדכון JDK 8u261.
ההליך להפעלת TLS 1.3 תלוי בגרסת Java שבה אתם משתמשים. כדי לבדוק איזו גרסה של Java מותקנת במעבד הבקשות, עיינו בקטע בדיקת גרסת Java במעבד בקשות שבהמשך.
גרסאות TLS v1.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 v1.3, כמו שמתואר בקטע איך מפעילים את TLS v1.3 כשהוא לא מופעל כברירת מחדל.
אם אתם משתמשים באחת מהגרסאות הבאות, TLS v1.3 כבר אמור להיות מופעל כברירת מחדל בתפקידי לקוח (מעבד הבקשות פועל כלקוח בחיבורי TLS דרומה), כך שאתם לא צריכים לעשות כלום:
- Oracle JDK 8u341 ואילך
- OpenJDK 8u352 ואילך
כדי ש-TLS v1.3 יפעל, כל התנאים הבאים צריכים להתקיים:
- Java הבסיסי במעבד הבקשות חייב לתמוך ב-TLS בגרסה 1.3.
- צריך להפעיל את TLS v1.3 ב-Java במעבד הבקשות.
- צריך להפעיל את TLS v1.3 באפליקציה מעבד בקשות.
איך מפעילים את 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 לא מופיע ברשימת הפרוטוקולים. אפשר לעיין במאמר רכיבי הגדרה של TLS/SSL TargetEndpoint. הערה: אם לא צוינו פרוטוקולים בהגדרות של שרת היעד, כל הפרוטוקולים שנתמכים על ידי Java יישלחו כאפשרויות בלחיצת היד של הלקוח.
- משביתים את TLS v1.3 במעבד הבקשות על ידי השבתת הפרוטוקול לחלוטין. הגדרת פרוטוקול 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 תומכת ב-2 הצפנות של TLS v1.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