এজ সহ SNI ব্যবহার করা

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

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

উদাহরণস্বরূপ, যদি অনুরোধের লক্ষ্যটি হয় https:// example.com /request/path , তাহলে TLS ক্লায়েন্ট server_name এক্সটেনশনটি TLS হ্যান্ডশেক অনুরোধে যোগ করে, যেমনটি নীচে দেখানো হয়েছে:

এজ এর জন্য SNI সমর্থন করে:

  • একটি API প্রক্সিতে একটি ক্লায়েন্ট অ্যাপ থেকে অনুরোধ। এই পরিস্থিতিতে, এজ টিএলএস সার্ভার হিসাবে কাজ করে
  • এজ থেকে ব্যাকএন্ডে অনুরোধ। এই পরিস্থিতিতে, এজ টিএলএস ক্লায়েন্ট হিসাবে কাজ করে।

SNI সম্পর্কে অতিরিক্ত তথ্যের জন্য, দেখুন:

এজ এ এপিআই প্রক্সির অনুরোধের জন্য SNI সমর্থন করছে

API প্রক্সিগুলিতে অনুরোধের জন্য SNI সমর্থন হোস্ট উপনাম এবং ভার্চুয়াল হোস্ট দ্বারা নিয়ন্ত্রিত হয়।

ভার্চুয়াল হোস্ট এবং হোস্ট উপনাম সম্পর্কে

এজ এর সাথে, একটি ভার্চুয়াল হোস্ট IP ঠিকানা এবং পোর্ট, বা DNS নাম এবং পোর্টকে সংজ্ঞায়িত করে, যার উপর একটি API প্রক্সি উন্মুক্ত করা হয় এবং এক্সটেনশনের মাধ্যমে, অ্যাপ্লিকেশনগুলি একটি API প্রক্সি অ্যাক্সেস করতে ব্যবহার করে এমন URL। আইপি ঠিকানা/ডিএনএস নামটি এজ রাউটারের সাথে মিলে যায় এবং পোর্ট নম্বরটি রাউটারের একটি খোলা পোর্ট।

আপনি যখন ভার্চুয়াল হোস্ট তৈরি করেন, আপনি ভার্চুয়াল হোস্টের হোস্ট উপনামও নির্দিষ্ট করেন। সাধারণত এটি ভার্চুয়াল হোস্টের DNS নাম। অনুরোধটি পরিচালনা করে এমন API প্রক্সি নির্ধারণের অংশ হিসাবে, রাউটার আগত অনুরোধের Host শিরোনামকে সমস্ত ভার্চুয়াল হোস্ট দ্বারা সংজ্ঞায়িত উপলব্ধ হোস্ট উপনামের তালিকার সাথে তুলনা করে।

ভার্চুয়াল হোস্টের জন্য হোস্ট উপনাম এবং পোর্ট নম্বরের সমন্বয় এজ ইনস্টলেশনের সমস্ত ভার্চুয়াল হোস্টের জন্য অনন্য হতে হবে। তার মানে একাধিক ভার্চুয়াল হোস্ট একই পোর্ট নম্বর ব্যবহার করতে পারে যদি তাদের আলাদা হোস্ট উপনাম থাকে।

একটি ভার্চুয়াল হোস্ট HTTP প্রোটোকল ব্যবহার করে বা TLS ব্যবহার করে এনক্রিপ্ট করা HTTPS প্রোটোকল ব্যবহার করে API প্রক্সি অ্যাক্সেস করা হয়েছে কিনা তাও নির্ধারণ করে। HTTPS ব্যবহার করার জন্য একটি ভার্চুয়াল হোস্ট কনফিগার করার সময়, ভার্চুয়াল হোস্টকে একটি কীস্টোরের সাথে সংযুক্ত করুন যাতে TLS হ্যান্ডশেকিংয়ের সময় ভার্চুয়াল হোস্টের দ্বারা ব্যবহৃত শংসাপত্র এবং ব্যক্তিগত কী থাকে৷

ভার্চুয়াল হোস্ট সম্পর্কে অতিরিক্ত তথ্যের জন্য, দেখুন:

হোস্ট উপনামের সাথে SNI কিভাবে কাজ করে

SNI আপনাকে একই পোর্টে একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করার অনুমতি দেয়, প্রতিটিতে বিভিন্ন TLS শংসাপত্র এবং কী রয়েছে। TLS হ্যান্ডশেক অনুরোধে server_name এক্সটেনশনের উপর ভিত্তি করে এজ তারপর ভার্চুয়াল হোস্ট এবং TLS দ্বারা ব্যবহৃত শংসাপত্র/কী জোড়া নির্ধারণ করে।

এজ রাউটার টিএলএস হ্যান্ডশেক অনুরোধে server_name এক্সটেনশনটি পড়ে এবং তারপর এটিকে সমস্ত ভার্চুয়াল হোস্ট থেকে হোস্ট উপনামের বিরুদ্ধে অনুসন্ধান করতে ব্যবহার করে। যদি রাউটার একটি হোস্ট উপনামের সাথে একটি মিল সনাক্ত করে, রাউটার হোস্ট উপনামের সাথে যুক্ত ভার্চুয়াল হোস্ট থেকে TLS শংসাপত্র এবং কী ব্যবহার করে। যদি কোনো মিল পাওয়া না যায়, TLS হ্যান্ডশেকিং ব্যর্থ হয়।

TLS হ্যান্ডশেক ব্যর্থ হওয়ার পরিবর্তে, আপনি একটি ডিফল্ট শংসাপত্র/কী জোড়া সংজ্ঞায়িত করতে পারেন, যেমনটি পরবর্তী বিভাগে বর্ণিত হয়েছে।

ক্লাউডের জন্য এজে একটি ডিফল্ট শংসাপত্র/কী জোড়া সংজ্ঞায়িত করা

Apigee HTTPS সমর্থন করার জন্য একটি TLS শংসাপত্র এবং ব্যক্তিগত কী প্রদান করে। যদিও অনেক গ্রাহক তাদের নিজস্ব শংসাপত্র এবং ব্যক্তিগত কী ব্যবহার করতে পছন্দ করেন, আপনি Apigee শংসাপত্র এবং কী ব্যবহার করে আপনার API গুলি স্থাপন করতে পারেন৷

এজ ফর দ্য ক্লাউডে, রাউটার যদি SNI হেডারের সাথে হোস্ট উপনামের সাথে মেলে না বা যদি ক্লায়েন্ট SNI সমর্থন না করে, তাহলে রাউটার Apigee দ্বারা প্রদত্ত ডিফল্ট শংসাপত্র ব্যবহার করে, যা *.apigee.net।

প্রাইভেট ক্লাউডের জন্য এজে একটি ডিফল্ট শংসাপত্র/কী জোড়া সংজ্ঞায়িত করা

প্রাইভেট ক্লাউডের জন্য এজ-এ, server_name এক্সটেনশন এবং সমস্ত ভার্চুয়াল হোস্টের হোস্ট উপনামের মধ্যে কোনো মিল না পাওয়া গেলে, অথবা অনুরোধকারী ক্লায়েন্ট যদি SNI সমর্থন না করে, তাহলে আপনি ডিফল্ট ভার্চুয়াল থেকে সার্টি/কী ব্যবহার করার জন্য রাউটার কনফিগার করতে পারেন। বন্দরে হোস্ট। ডিফল্ট ভার্চুয়াল হোস্ট সংগঠনের নাম, পরিবেশের নাম এবং ভার্চুয়াল হোস্ট নামের সংমিশ্রণ দ্বারা সংজ্ঞায়িত করা হয়, ফর্মটিতে:

orgName_envName_vhName

রাউটার orgName_envName_vhName এর সংমিশ্রণ থেকে সার্টি/কী ব্যবহার করে যা বর্ণানুক্রমিক ক্রমে প্রথমে আসে। উদাহরণস্বরূপ, অনুরোধটি পোর্ট 443-এ আসে এবং পরিবেশ prod org example জন্য দুটি ভার্চুয়াল হোস্ট সংজ্ঞায়িত করা হয়েছে:

  • ভার্চুয়াল হোস্ট নাম = default
  • ভার্চুয়াল হোস্ট নাম = test

এই উদাহরণে, রাউটার default নামের ভার্চুয়াল হোস্ট থেকে সার্টি/কী ব্যবহার করে কারণ example_prod_default বর্ণানুক্রমিকভাবে example_prod_test এর আগে আসে।

ডিফল্ট ভার্চুয়াল হোস্ট সক্ষম করতে:

  1. প্রথম রাউটার নোডে, /opt/apigee/customer/application/router.properties সম্পাদনা করুন। যদি সেই ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করুন।
  2. একটি ডিফল্ট ভার্চুয়াল হোস্ট সংজ্ঞায়িত করতে আপনাকে সক্ষম করতে ফাইলটিতে নিম্নলিখিত বৈশিষ্ট্য যুক্ত করুন:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. রাউটার পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. সমস্ত অবশিষ্ট রাউটারগুলিতে এই পদক্ষেপগুলি পুনরাবৃত্তি করুন।

ডিফল্ট ভার্চুয়াল হোস্ট থেকে শংসাপত্র/কী ব্যবহার করার পরিবর্তে, আপনি রাউটারে ডিফল্ট শংসাপত্র/কী স্পষ্টভাবে সংজ্ঞায়িত করতে পারেন। একটি স্পষ্ট ডিফল্ট শংসাপত্র/কী জোড়া সংজ্ঞায়িত করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. প্রথম রাউটার নোডে, শংসাপত্র এবং ব্যক্তিগত কীটি রাউটার নোডের একটি অবস্থানে অনুলিপি করুন যা এপিজি ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য। উদাহরণস্বরূপ, /opt/apigee/customer/application
  2. ফাইলগুলির মালিকানা 'এপিজি'-তে পরিবর্তন করুন। ব্যবহারকারী:
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. /opt/apigee/customer/application/router.properties সম্পাদনা করুন। যদি সেই ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করুন।
  4. ডিফল্ট শংসাপত্র/কী নির্দিষ্ট করতে আপনাকে সক্ষম করতে ফাইলটিতে নিম্নলিখিত বৈশিষ্ট্যগুলি যুক্ত করুন:
    conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  5. certy এবং কী-এর অবস্থান নির্দিষ্ট করতে router.properties এ নিম্নলিখিত বৈশিষ্ট্যগুলি সেট করুন:
    conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem
    conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
  6. রাউটার পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. সমস্ত অবশিষ্ট রাউটারগুলিতে এই পদক্ষেপগুলি পুনরাবৃত্তি করুন।

এজ থেকে ব্যাকএন্ডে অনুরোধের জন্য SNI সমর্থন করে

এজ ক্লাউড এবং ব্যক্তিগত ক্লাউড স্থাপনার জন্য Apigee এজ-এ শেষ পয়েন্টগুলি লক্ষ্য করতে মেসেজ প্রসেসর থেকে SNI ব্যবহার সমর্থন করে। ডিফল্টরূপে, ক্লাউডের জন্য এজ মেসেজ প্রসেসরে এসএনআই সক্ষম এবং ব্যক্তিগত ক্লাউডে অক্ষম করা হয়।

ব্যক্তিগত ক্লাউডের জন্য এজের ব্যাকএন্ডে SNI ব্যবহার করা

প্রাইভেট ক্লাউডের জন্য এজ-এর জন্য, বিদ্যমান টার্গেট ব্যাকএন্ডগুলির সাথে পিছিয়ে সামঞ্জস্যপূর্ণ হওয়ার জন্য, Apigee ডিফল্টরূপে SNI অক্ষম করেছে৷ যদি আপনার টার্গেট ব্যাকএন্ড SNI সমর্থন করার জন্য কনফিগার করা থাকে, তাহলে আপনি আপনার এজ সংস্করণের জন্য নীচে বর্ণিত হিসাবে এই বৈশিষ্ট্যটি সক্ষম করতে পারেন।

অন্য কোন এজ-নির্দিষ্ট কনফিগারেশনের প্রয়োজন নেই। যদি আপনার টার্গেট এনভায়রনমেন্ট SNI-এর জন্য কনফিগার করা থাকে, এজ এটিকে সমর্থন করে। এজ স্বয়ংক্রিয়ভাবে অনুরোধ URL থেকে হোস্টনাম বের করে এবং TLS হ্যান্ডশেক অনুরোধে যোগ করে।

এজ সংস্করণ 4.15.07.0x এর জন্য এজ এবং ব্যাকএন্ডের মধ্যে SNI সক্ষম করুন

SNI সক্ষম করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. প্রথম মেসেজ প্রসেসর নোডে, একটি এডিটরে /opt/apigee4/conf/apigee/message-processor/system.properties ফাইলটি খুলুন।
  2. system.properties এ নিম্নোক্ত প্রপার্টিটিকে সত্য হিসেবে সেট করুন:
    jsse.enableSNIExtension=true
  3. বার্তা প্রসেসর পুনরায় চালু করুন:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. সমস্ত অবশিষ্ট বার্তা প্রসেসরে এই পদক্ষেপগুলি পুনরাবৃত্তি করুন৷

এজ সংস্করণ 4.16.01 এবং পরবর্তী সংস্করণের জন্য এজ এবং ব্যাকএন্ডের মধ্যে SNI সক্ষম করুন

SNI সক্ষম করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. প্রথম মেসেজ প্রসেসর নোডে, /opt/apigee/customer/application/message-processor.properties সম্পাদনা করুন। যদি সেই ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করুন।
  2. ফাইলে নিম্নলিখিত বৈশিষ্ট্য যোগ করুন:
    conf_system_jsse.enableSNIExtension=true
  3. বার্তা প্রসেসর পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. সমস্ত অবশিষ্ট বার্তা প্রসেসরে এই পদক্ষেপগুলি পুনরাবৃত্তি করুন৷