সাউথবাউন্ড ট্রাফিকের জন্য TLS 1.3 কনফিগার করা

এই পৃষ্ঠা থেকে জানা যায় যে কীভাবে সাউথবাউন্ড ট্রাফিকের (মেসেজ প্রসেসর এবং ব্যাকএন্ড সার্ভারের মধ্যে ট্রাফিক) জন্য Apigee মেসেজ প্রসেসরে TLS 1.3 কনফিগার করতে হয়।

Java-তে TLS 1.3 ফিচার সম্পর্কে আরও জানতে, JDK 8u261 আপডেট রিলিজ নোট দেখুন।

TLS 1.3 চালু করার পদ্ধতি আপনি Java-এর কোন ভার্সন ব্যবহার করছেন তার উপর নির্ভর করে। মেসেজ প্রসেসরে ইনস্টল করা Java-র ভার্সন খুঁজে পেতে, মেসেজ প্রসেসরে Java-র ভার্সন চেক করুন বিকল্পটি দেখুন।

TLS v1.3 এবং Java ভার্সন

Java-এর নিম্নলিখিত ভার্সনে TLS 1.3 ফিচার চালু করা হয়েছে:

  • 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 কানেকশনের জন্য মেসেজ প্রসেসর ক্লায়েন্ট হিসেবে কাজ করে) TLS v1.3 আগে থেকেই ডিফল্ট হিসেবে চালু করা থাকবে, তাই আপনাকে কোনও অ্যাকশন নিতে হবে না:

  • Oracle JDK 8u341 বা তার পরবর্তী যেকোনও ভার্সন
  • OpenJDK 8u352 বা তার পরবর্তী যেকোনও ভার্সন

TLS v1.3 কাজ করার জন্য, নিম্নলিখিত সব শর্ত পূরণ করতে হবে:

  • মেসেজ প্রসেসরে অন্তর্নিহিত জাভাতে TLS v1.3 কাজ করতে হবে।
  • মেসেজ প্রসেসরে জাভাতে TLS v1.3 চালু থাকতে হবে।
  • মেসেজ প্রসেসর অ্যাপ্লিকেশনে TLS v1.3 চালু থাকতে হবে।

Java-তে TLS v1.3 ডিফল্ট হিসেবে চালু করা না থাকলে কীভাবে তা চালু করবেন।

আপনি Java-এর নিম্নলিখিত ভার্সনগুলির মধ্যে কোনও একটি ব্যবহার করলে, কীভাবে TLS v1.3 চালু করবেন তা এই বিভাগে ব্যাখ্যা করা হয়েছে:

  • 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 চালু হয়।

Edge কম্পোনেন্টে JVM প্রপার্টি কীভাবে সেট করতে হয় তা জানতে অন্যান্য JVM প্রপার্টি পরিবর্তন করুন দেখুন।

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 বন্ধ করতে চাইলে, আপনার কাছে দুটি বিকল্প আছে:

  • আপনার টার্গেট সার্ভারের SSLInfo কনফিগার করুন এবং প্রোটোকল তালিকায় TLSv1.3 উল্লেখ করা নেই তা নিশ্চিত করুন। আরও জানতে TLS/SSL TargetEndpoint কনফিগারেশন এলিমেন্ট দেখুন। মনে রাখবেন: টার্গেট সার্ভার কনফিগারেশনে কোনও প্রোটোকল নির্দিষ্ট করা না থাকলে, Java দ্বারা সমর্থিত যেকোনও প্রোটোকল ক্লায়েন্ট হ্যান্ডশেকে বিকল্প হিসেবে পাঠানো হবে।
  • প্রোটোকল সম্পূর্ণভাবে বন্ধ করে মেসেজ প্রসেসরে TLS v1.3 বন্ধ করুন। দেখুন মেসেজ প্রসেসরে TLS প্রোটোকল সেট করুন।

মেসেজ প্রসেসরে 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 v1.3 সাইফার কাজ করে:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

আপনার টার্গেট সার্ভার TLS v1.3 এবং উপরে উল্লেখ করা সাইফারের মধ্যে অন্তত একটিকে সাপোর্ট করে কিনা তা চেক করতে আপনি openssl ব্যবহার করতে পারেন। মনে রাখবেন যে এই উদাহরণে 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