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

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

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

ขั้นตอนในการเปิดใช้ TLS 1.3 จะขึ้นอยู่กับเวอร์ชันของ Java ที่คุณใช้ โปรดดู ตรวจสอบเวอร์ชัน Java ใน Message Processor ด้านล่างเพื่อค้นหาเวอร์ชันของ 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 v1.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 อย่างน้อย 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. ตั้งค่าการกำหนดค่าต่อไปนี้ในไฟล์การกำหนดค่าเครื่องมือประมวลผลข้อความ (/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 ในกรณีดังกล่าว คุณมี 2 ตัวเลือกดังนี้

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

ตรวจสอบเวอร์ชัน Java ในโปรแกรมประมวลผลข้อความ

หากต้องการตรวจสอบเวอร์ชันของ Java ที่ติดตั้งในโปรแกรมประมวลผลข้อความ ให้เข้าสู่ระบบโหนด 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