দক্ষিণমুখী ট্রাফিকের জন্য TLS 1.3 কনফিগার করা হচ্ছে

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

জাভাতে TLS 1.3 বৈশিষ্ট্য সম্পর্কে আরও জানতে, JDK 8u261 আপডেট রিলিজ নোট দেখুন।

TLS 1.3 সক্ষম করার পদ্ধতি আপনার ব্যবহার করা জাভা সংস্করণের উপর নির্ভর করে। বার্তা প্রসেসরে ইনস্টল করা জাভা সংস্করণ খুঁজে পেতে নীচের একটি বার্তা প্রসেসরে জাভা সংস্করণটি দেখুন।

TLS v1.3 এবং Java সংস্করণ

TLS 1.3 বৈশিষ্ট্যটি জাভার নিম্নলিখিত সংস্করণগুলিতে চালু করা হয়েছিল:

  • ওরাকল JDK 8u261
  • OpenJDK 8u272

নিম্নলিখিত জাভা সংস্করণগুলিতে, 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 কাজ করার জন্য, নিম্নলিখিত সমস্তগুলি সত্য হতে হবে:

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

ডিফল্টরূপে সক্রিয় না থাকলে জাভাতে TLS v1.3 কীভাবে সক্ষম করবেন।

এই বিভাগটি ব্যাখ্যা করে কিভাবে TLS v1.3 সক্ষম করতে হয় যদি আপনি Java এর নিম্নলিখিত সংস্করণগুলির একটি ব্যবহার করেন:

  • Oracle JDK 8u261 বা তার পরে কিন্তু Oracle JDK 8u341 এর চেয়ে কম
  • OpenJDK 8u272 বা তার পরে কিন্তু OpenJDK 8u352 এর চেয়ে কম

বার্তা প্রসেসরে, জাভা প্রপার্টি 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 বৈশিষ্ট্য পরিবর্তন করতে দেখুন।

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

একটি বার্তা প্রসেসরে জাভা সংস্করণ পরীক্ষা করুন

একটি বার্তা প্রসেসরে ইনস্টল করা জাভা সংস্করণ পরীক্ষা করতে, মেসেজ প্রসেসর নোডে লগ ইন করুন এবং নিম্নলিখিত কমান্ডটি চালান:

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 2 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