تهيئة الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) لحركة المرور المتجهة جنوبًا

توضّح هذه الصفحة كيفية ضبط الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) في معالِجات الرسائل في Apigee للزيارات الواردة (الزيارات بين معالِج الرسائل والخادم الخلفي).

لمزيد من المعلومات حول ميزة TLS 1.3 في Java، يُرجى الاطّلاع على ملاحظات إصدار تحديث JDK 8u261.

يعتمد إجراء تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) على إصدار Java الذي تستخدمه. يُرجى الاطّلاع على قسم التحقّق من إصدار Java في معالج الرسائل أدناه لمعرفة إصدار Java المثبَّت في معالج الرسائل.

الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) وإصدارات Java

تم تقديم ميزة TLS 1.3 في إصدارات Java التالية:

  • Oracle JDK 8u261
  • OpenJDK 8u272

في إصدارات Java التالية، تتوفّر ميزة TLS v1.3 ولكنّها غير مفعَّلة تلقائيًا في أدوار العميل:

  • الإصدار Oracle JDK 8u261 أو إصدار أحدث ولكن أقدم من Oracle JDK 8u341
  • ‫OpenJDK 8u272 أو إصدار أحدث ولكن أقدم من OpenJDK 8u352

إذا كنت تستخدم أحد هذه الإصدارات، عليك تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS)، كما هو موضّح في كيفية تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) عندما لا يكون مفعَّلاً تلقائيًا.

إذا كنت تستخدم أحد الإصدارات التالية، من المفترض أن يكون الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) مفعَّلاً تلقائيًا في أدوار العميل (يعمل "معالج الرسائل" كعميل لاتصالات بروتوكول أمان طبقة النقل (TLS) الواردة)، لذا ليس عليك اتّخاذ أي إجراء:

  • الإصدار Oracle JDK 8u341 أو الإصدارات الأحدث
  • الإصدار 8u352 من OpenJDK أو إصدار أحدث

لكي يعمل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS)، يجب استيفاء جميع الشروط التالية:

  • يجب أن يتيح Java الأساسي في "معالج الرسائل" الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS).
  • يجب تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) في Java على معالج الرسائل.
  • يجب تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) في تطبيق "معالج الرسائل".

كيفية تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) في Java عندما لا يكون مفعَّلاً تلقائيًا

يوضّح هذا القسم كيفية تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) في حال استخدام أحد إصدارات 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:

  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. أعِد تشغيل معالج الرسائل.
>

كيفية إيقاف الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) عندما يكون مفعَّلاً تلقائيًا

إذا كنت تستخدم الإصدار 8u341 من Oracle JDK أو إصدارًا أحدث، أو الإصدار 8u352 من OpenJDK أو إصدارًا أحدث، يتم تفعيل TLSv1.3 تلقائيًا للعملاء. إذا أردت إيقاف الإصدار 1.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 استخدام شفرتَين من شفرات الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS):

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

يمكنك استخدام openssl للتحقّق مما إذا كان الخادم المستهدَف يتوافق مع الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) وواحدة على الأقل من الشفرات المذكورة أعلاه باستخدام ما يلي. يُرجى العِلم أنّ هذا المثال يستخدم الأداة المساعدة openssl11 التي تم تفعيل الإصدار 1.3 من بروتوكول أمان طبقة النقل (TLS) فيها.

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