Edge Message Processor ও ব্যাকএন্ড সার্ভারের মধ্যে SNI কনফিগার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

সার্ভার নেম ইন্ডিকেশন (SNI) একাধিক HTTPS ব্যাকএন্ড সার্ভারকে একই IP অ্যাড্রেস ও পোর্ট থেকে পরিবেশন করতে দেয়। এর জন্য ব্যাকএন্ড সার্ভারগুলিকে একই TLS সার্টিফিকেট ব্যবহার করতে হয় না। এটি TLS প্রোটোকলের একটি এক্সটেনশন। কোনও ক্লায়েন্টে SNI চালু করা থাকলে, ক্লায়েন্ট প্রাথমিক TLS হ্যান্ডশেক প্রক্রিয়ার অংশ হিসেবে ব্যাকএন্ড সার্ভারের হোস্টনেম পাস করে। এটি TLS সার্ভারকে নির্ধারণ করতে দেয় যে ক্লায়েন্টের অনুরোধ যাচাই করার জন্য কোন TLS সার্টিফিকেট ব্যবহার করা উচিত।

আগে থেকে থাকা ব্যাকএন্ড সার্ভারের সাথে ব্যাকওয়ার্ড কম্প্যাটিবিলিটি নিশ্চিত করতে, Edge for the Private Cloud-এর মেসেজ প্রসেসর কম্পোনেন্টে SNI ডিফল্ট হিসেবে বন্ধ করা থাকে । আপনার ব্যাকএন্ড সার্ভার যদি SNI কাজ করে এমনভাবে কনফিগার করা থাকে, তাহলে আপনাকে মেসেজ প্রসেসর কম্পোনেন্টে SNI চালু করতে হবে। অন্যথায়, Apigee Edge-এর মাধ্যমে পাঠানো API অনুরোধ TLS হ্যান্ডশেক ব্যর্থতা সংক্রান্ত সমস্যার কারণে কাজ করবে না।

এই ডকুমেন্ট থেকে আপনি নিম্নলিখিত বিষয়গুলি সম্পর্কে জানতে পারবেন:

শুরু করার আগে

SNI চালু থাকা সার্ভার শনাক্তকরণ

এই বিভাগে, কোনও ব্যাকএন্ড সার্ভারে SNI চালু আছে কিনা তা কীভাবে শনাক্ত করতে হয় তা বর্ণনা করা হয়েছে।

  1. openssl কমান্ডটি এক্সিকিউট করুন এবং প্রাসঙ্গিক সার্ভার হোস্টনেমে কানেক্ট করার চেষ্টা করুন (এজ রাউটার বা ব্যাকএন্ড সার্ভার) সার্ভারের নাম পাস না করেই, যেমন নিচে দেখানো হয়েছে:
    openssl s_client -connect hostname:port
  2. আপনি সার্টিফিকেট পেতে পারেন এবং কখনও কখনও আপনি নিচে দেখানো openssl কমান্ডে হ্যান্ডশেক ব্যর্থতা দেখতে পেতে পারেন:
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
  3. openssl কমান্ডটি এক্সিকিউট করুন এবং নিচে দেখানো পদ্ধতিতে সার্ভারের নাম পাস করে প্রাসঙ্গিক সার্ভার হোস্টনেমের (এজ রাউটার বা ব্যাকএন্ড সার্ভার) সাথে কানেক্ট করার চেষ্টা করুন:
    openssl s_client -connect hostname:port -servername hostname
  4. আপনি যদি ধাপ ১-এ হ্যান্ডশেক ব্যর্থতা পান অথবা ধাপ ১ ও ২-এ আলাদা আলাদা সার্টিফিকেট পান, তাহলে এটি ইঙ্গিত করে যে নির্দিষ্ট সার্ভারে SNI চালু করা আছে।
  5. আপনি যদি একাধিক ব্যাকএন্ড সার্ভারের জন্য এটি যাচাই করতে চান, তাহলে আপনাকে প্রতিটি ব্যাকএন্ড সার্ভারের জন্য উপরের ধাপগুলি রিপিট করতে হবে।

আপনি যদি দেখেন যে আপনার এক বা একাধিক ব্যাকএন্ড সার্ভারে SNI চালু করা আছে, তাহলে আপনাকে নিচে ব্যাখ্যা করা পদ্ধতি অনুযায়ী মেসেজ প্রসেসর কম্পোনেন্টে SNI চালু করতে হবে। অন্যথায়, Apigee Edge-এর মাধ্যমে পাঠানো API অনুরোধ TLS হ্যান্ডশেক ব্যর্থতা সংক্রান্ত সমস্যার কারণে কাজ করবে না।

Edge মেসেজ প্রসেসর ও ব্যাকএন্ড সার্ভারের মধ্যে SNI চালু করা

এই বিভাগে Edge Message Processor ও ব্যাকএন্ড সার্ভারের মধ্যে SNI কীভাবে চালু করতে হয় তা ব্যাখ্যা করা হয়েছে। SNI, মেসেজ প্রসেসর কম্পোনেন্টের jsse.enableSNIExtension প্রপার্টির মাধ্যমে চালু করা যায়। মেসেজ প্রসেসরে কোনও প্রপার্টি কনফিগার করতে, Edge কীভাবে কনফিগার করতে হয়-এ বর্ণিত সিনট্যাক্স অনুযায়ী টোকেন ব্যবহার করুন।

মেসেজ প্রসেসরে SNI চালু করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. jsse.enableSNIExtension প্রপার্টির জন্য টোকেন খুঁজে বের করুন
  2. মেসেজ প্রসেসরে SNI চালু করুন

jsse.enableSNIExtension প্রপার্টির জন্য টোকেন লোকেট করা

নিচে উল্লেখ করা ধাপগুলি থেকে কীভাবে jsse.enableSNIExtension প্রপার্টির টোকেন খুঁজে পাবেন তা জানতে পারবেন:

  1. নিচের কমান্ড ব্যবহার করে jsse.enableSNIExtension মেসেজ প্রসেসর সোর্স ডিরেক্টরিতে /opt/apigee/edge-message-processor/source প্রপার্টি সার্চ করুন:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. এই কমান্ডের আউটপুট মেসেজ প্রসেসরের প্রপার্টির টোকেন দেখায় jsse.enableSNIExtension যা নিচে দেখানো হল:
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    {T}{/T} ট্যাগের মধ্যে থাকা স্ট্রিং হল টোকেনের নাম যা আপনি মেসেজ প্রসেসরের .properties ফাইলে সেট করতে পারেন।

    তাই, প্রপার্টি jsse.enableSNIExtension-এর টোকেন হল:

    conf_system_jsse.enableSNIExtension

মেসেজ প্রসেসরে SNI চালু করুন

Apigee মেসেজ প্রসেসর কম্পোনেন্টে কীভাবে SNI চালু করতে হয় তা নিম্নলিখিত ধাপগুলি থেকে জানতে পারবেন।

  1. Message Processor মেশিনে, এডিটরে নিম্নলিখিত ফাইলটি খুলুন। এটি আগে থেকে না থাকলে, এটি তৈরি করুন।
    /opt/apigee/customer/application/message-processor.properties

    যেমন, vi ব্যবহার করে ফাইল খুলতে, নিম্নলিখিত কমান্ড লিখুন:

    vi /opt/apigee/customer/application/message-processor.properties
  2. প্রপার্টি ফাইলে নিম্নলিখিত ফর্ম্যাটে একটি লাইন যোগ করুন:
    conf_system_jsse.enableSNIExtension=true
  3. আপনার করা পরিবর্তন সেভ করুন।
  4. নিশ্চিত করুন যে এই প্রপার্টি ফাইলের মালিক apigee ব্যবহারকারী, যেমন নিচে দেখানো হয়েছে:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. নিচে দেখানো পদ্ধতিতে মেসেজ প্রসেসর রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. মেসেজ প্রসেসরে SNI কনফিগারেশন আপডেট করা হয়েছে কিনা তা যাচাই করুন।
  7. আপনার কাছে একাধিক মেসেজ প্রসেসর থাকলে, সব মেসেজ প্রসেসরের জন্য উপরে উল্লিখিত ধাপগুলি আবার করুন।

Edge মেসেজ প্রসেসর ও ব্যাকএন্ড সার্ভারের মধ্যে SNI বন্ধ করা

সাধারণত SNI চালু করার পরে আপনার কোনও সমস্যা হওয়ার কথা নয়। তবে, SNI চালু করার পরে Edge Message Processor এবং ব্যাকএন্ড সার্ভারের মধ্যে কোনও কানেক্টিভিটি সংক্রান্ত সমস্যা হলে, আপনি নিম্নলিখিত ধাপগুলি অনুসরণ করে SNI বন্ধ করে দিতে পারেন।

মেসেজ প্রসেসর কম্পোনেন্টে jsse.enableSNIExtension প্রপার্টিকে আবার false হিসেবে সেট করে SNI বন্ধ করা যেতে পারে।

মেসেজ প্রসেসরে SNI বন্ধ করা

Apigee মেসেজ প্রসেসরে কীভাবে SNI বন্ধ করতে হয় তা নিম্নলিখিত ধাপগুলি থেকে জানতে পারবেন।

  1. Message Processor মেশিনে, এডিটরে নিম্নলিখিত ফাইলটি খুলুন। এটি আগে থেকে না থাকলে, এটি তৈরি করুন।
    /opt/apigee/customer/application/message-processor.properties

    যেমন, vi ব্যবহার করে ফাইল খুলতে, এই কমান্ড লিখুন:

    vi /opt/apigee/customer/application/message-processor.properties
  2. conf_system_jsse.enableSNIExtension=true লাইনটি যদি /opt/apigee/customer/application/message-processor.properties-এ থাকে, তাহলে এটিকে এইভাবে পরিবর্তন করুন:
    conf_system_jsse.enableSNIExtension=false
  3. আপনার করা পরিবর্তন সেভ করুন।
  4. নিশ্চিত করুন যে এই প্রপার্টি ফাইলের মালিক apigee ব্যবহারকারী, যেমন নিচে দেখানো হয়েছে:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. নিচে দেখানো পদ্ধতিতে মেসেজ প্রসেসর রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. মেসেজ প্রসেসরে SNI কনফিগারেশন আপডেট করা হয়েছে কিনা তা যাচাই করুন।
  7. আপনার একাধিক মেসেজ প্রসেসর থাকলে, সবকটি মেসেজ প্রসেসরের জন্য উপরের ধাপগুলি রিপিট করুন।

মেসেজ প্রসেসরে SNI কনফিগারেশন যাচাই করা

এই বিভাগে কীভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরে SNI কনফিগারেশন সফলভাবে আপডেট করা হয়েছে তা ব্যাখ্যা করা হয়েছে।

মেসেজ প্রসেসরে SNI কনফিগার করার জন্য আপনি conf_system_jsse.enableSNIExtension টোকেন ব্যবহার করলেও আপনাকে যাচাই করে দেখতে হবে যে নতুন ভ্যালু দিয়ে আসল প্রপার্টি jsse.enableSNIExtension সেট করা হয়েছে কিনা।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে jsse.enableSNIExtension প্রপার্টিটি খুঁজুন এবং নিচে দেখানো নতুন ভ্যালু দিয়ে এটি সেট করা হয়েছে কিনা দেখুন:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. মেসেজ প্রসেসরে SNI কনফিগারেশন সফলভাবে আপডেট করা হলে, উপরের কমান্ডটি system.properties ফাইলে নতুন ভ্যালু দেখায়।

    আপনি মেসেজ প্রসেসরে SNI চালু করার পরে উপরের কমান্ড থেকে পাওয়া নমুনা ফলাফল নিম্নলিখিত:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    একইভাবে, আপনি মেসেজ প্রসেসরে SNI বন্ধ করে দেওয়ার পরে, উপরের কমান্ড থেকে পাওয়া নমুনা ফলাফল নিম্নলিখিত:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    উপরের উদাহরণ আউটপুটে, লক্ষ্য করুন যে প্রপার্টি jsse.enableSNIExtension নতুন ভ্যালু true বা false-এ আপডেট করা হয়েছে system.properties। এটি থেকে বোঝা যায় যে মেসেজ প্রসেসরে SNI চালু বা বন্ধ করা হয়েছে।

  3. আপনি যদি এখনও প্রপার্টির jsse.enableSNIExtension পুরনো ভ্যালু দেখতে পান, তাহলে SNI সঠিকভাবে চালু বা বন্ধ করার জন্য উপযুক্ত বিভাগে বর্ণিত সমস্ত ধাপ অনুসরণ করেছেন কিনা তা যাচাই করুন। আপনি কোনও ধাপ মিস করে থাকলে, সঠিকভাবে আবার সব ধাপ রিপিট করুন।
  4. আপনি এখনও SNI চালু/বন্ধ করতে না পারলে , Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।