এই পৃষ্ঠায়, সাউথবাউন্ড ট্রাফিকের জন্য 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 কাজ করার জন্য, নিম্নলিখিত সব শর্ত পূরণ করতে হবে:
- মেসেজ প্রসেসরের অন্তর্নিহিত Java-কে TLS v1.3-এর সাথে কাজ করতে হবে।
- মেসেজ প্রসেসরে Java-তে TLS v1.3 চালু থাকতে হবে।
- মেসেজ প্রসেসর অ্যাপ্লিকেশনে TLS v1.3 চালু থাকতে হবে।
TLS v1.3 ডিফল্ট হিসেবে চালু না থাকলে, Java-তে কীভাবে এটি চালু করবেন।
আপনি যদি নিম্নলিখিত 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 প্রোটোকল চালু করতে:
-
মেসেজ প্রসেসর কনফিগারেশন ফাইলে
(
/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-এ ২টি 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