การกำหนดค่า TLS 1.3 สำหรับการรับส่งข้อมูลไปทางใต้

หน้านี้อธิบายวิธีกำหนดค่า TLS 1.3 ใน Apigee Message Processor สำหรับการรับส่งข้อมูลขาออก (การรับส่งข้อมูลระหว่าง Message Processor กับเซิร์ฟเวอร์แบ็กเอนด์)

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ TLS 1.3 ใน Java ได้ที่บันทึกประจำรุ่นของการอัปเดต JDK 8u261

ขั้นตอนการเปิดใช้ TLS 1.3 จะขึ้นอยู่กับเวอร์ชันของ Java ที่คุณใช้ ดู ตรวจสอบเวอร์ชัน Java ใน Message Processor ด้านล่างเพื่อดูเวอร์ชันของ Java ที่ติดตั้งใน Message Processor

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 โดยค่าเริ่มต้นในบทบาทไคลเอ็นต์ (Message Processor ทำหน้าที่เป็นไคลเอ็นต์สำหรับการเชื่อมต่อ TLS ขาออก) ดังนั้นคุณจึงไม่ต้องดำเนินการใดๆ

  • Oracle JDK 8u341 ขึ้นไป
  • OpenJDK 8u352 ขึ้นไป

เพื่อให้ TLS v1.3 ทำงานได้ ต้องเป็นไปตามเงื่อนไขต่อไปนี้ทั้งหมด

  • Java พื้นฐานใน Message Processor ต้องรองรับ TLS v1.3
  • ต้องเปิดใช้ TLS v1.3 ใน Java บน Message Processor
  • ต้องเปิดใช้ TLS v1.3 ในแอปพลิเคชัน Message Processor

วิธีเปิดใช้ TLS v1.3 ใน Java เมื่อไม่ได้เปิดใช้โดยค่าเริ่มต้น

ส่วนนี้จะอธิบายวิธีเปิดใช้ TLS v1.3 ในกรณีที่คุณใช้ Java เวอร์ชันใดเวอร์ชันหนึ่งต่อไปนี้

  • Oracle JDK 8u261 ขึ้นไป แต่ต่ำกว่า Oracle JDK 8u341
  • OpenJDK 8u272 ขึ้นไป แต่ต่ำกว่า OpenJDK 8u352

ใน Message Processor ให้ตั้งค่าพร็อพเพอร์ตี้ Java jdk.tls.client.protocols ค่าจะคั่นด้วยคอมมาและมีค่า TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 และ SSLv3 ได้อย่างน้อย 1 ค่า

เช่น การตั้งค่า -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 จะเปิดใช้โปรโตคอลไคลเอ็นต์ TLSv1.2 และ TLSv1.3

ดูเปลี่ยนพร็อพเพอร์ตี้ JVM อื่นๆ เพื่อดูวิธีตั้งค่าพร็อพเพอร์ตี้ JVM ในคอมโพเนนต์ Edge

วิธีเปิดใช้โปรโตคอล TLS v1, v1.1, v1.2 และ v1.3

  1. ตั้งค่าการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่า Message Processor (/opt/apigee/customer/application/message-processor.properties)
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. รีสตาร์ท Message Processor
>

วิธีปิดใช้ TLS v1.3 เมื่อเปิดใช้โดยค่าเริ่มต้น

หากคุณใช้ Oracle JDK 8u341 ขึ้นไป หรือ OpenJDK 8u352 ขึ้นไป ระบบจะเปิดใช้ TLSv1.3 โดยค่าเริ่มต้นสำหรับไคลเอ็นต์ หากต้องการปิดใช้ TLS v1.3 ในกรณีดังกล่าว คุณมี 2 ตัวเลือกดังนี้

  • กำหนดค่า SSLInfo ของเซิร์ฟเวอร์เป้าหมายและตรวจสอบว่าไม่มีการระบุ TLSv1.3 ในรายการโปรโตคอล ดู องค์ประกอบการกำหนดค่า TargetEndpoint ของ TLS/SSL หมายเหตุ: หากไม่ได้ระบุโปรโตคอลในการกำหนดค่าเซิร์ฟเวอร์เป้าหมาย ระบบจะส่งโปรโตคอลที่ Java รองรับเป็นตัวเลือกในการแฮนด์เชคของไคลเอ็นต์
  • ปิดใช้ TLS v1.3 ใน Message Processor โดยปิดใช้โปรโตคอลโดยสมบูรณ์ ดูหัวข้อ ตั้งค่าโปรโตคอล TLS ใน Message Processor

ตรวจสอบเวอร์ชัน Java ใน Message Processor

หากต้องการตรวจสอบเวอร์ชัน Java ที่ติดตั้งใน Message Processor ให้เข้าสู่ระบบโหนด Message Processor แล้วเรียกใช้คำสั่งต่อไปนี้

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 v1.3 จำนวน 2 รายการ ได้แก่

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

คุณสามารถใช้ openssl เพื่อตรวจสอบว่าเซิร์ฟเวอร์เป้าหมายรองรับ TLS v1.3 และการเข้ารหัสข้างต้นอย่างน้อย 1 รายการหรือไม่ โดยใช้คำสั่งด้านล่าง โปรดทราบว่าตัวอย่างนี้ใช้ยูทิลิตี 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