আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
সার্ভার নেম ইন্ডিকেশন (SNI) একই IP অ্যাড্রেস এবং পোর্ট থেকে একাধিক HTTPS টার্গেটকে পরিষেবা দেওয়ার সুযোগ করে দেয়, যার জন্য টার্গেটগুলোকে একই TLS সার্টিফিকেট ব্যবহার করার প্রয়োজন হয় না। যখন কোনো ক্লায়েন্টে SNI সক্রিয় করা হয়, তখন ক্লায়েন্টটি প্রাথমিক TLS হ্যান্ডশেকের অংশ হিসেবে টার্গেট এন্ডপয়েন্টের হোস্টনেম প্রেরণ করে। এর ফলে TLS সার্ভার নির্ধারণ করতে পারে যে অনুরোধটি যাচাই করার জন্য কোন TLS সার্টিফিকেট ব্যবহার করা উচিত।
উদাহরণস্বরূপ, যদি অনুরোধের লক্ষ্য https:// example.com /request/path হয়, তাহলে TLS ক্লায়েন্ট TLS হ্যান্ডশেক অনুরোধে server_name এক্সটেনশনটি যোগ করে, যেমনটি নিচে দেখানো হয়েছে:

Edge নিম্নলিখিতগুলির জন্য SNI সমর্থন করে:
- একটি ক্লায়েন্ট অ্যাপ থেকে এপিআই প্রক্সিতে অনুরোধ। এই ক্ষেত্রে, Edge টিএলএস সার্ভার হিসেবে কাজ করে।
- Edge থেকে ব্যাকএন্ডে অনুরোধ। এই ক্ষেত্রে, Edge TLS ক্লায়েন্ট হিসেবে কাজ করে।
SNI সম্পর্কে অতিরিক্ত তথ্যের জন্য দেখুন:
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
Edge-এ API প্রক্সিতে অনুরোধের জন্য SNI সমর্থন করা
এপিআই প্রক্সিতে পাঠানো অনুরোধের জন্য এসএনআই সমর্থন হোস্ট অ্যালিয়াস এবং ভার্চুয়াল হোস্ট দ্বারা নিয়ন্ত্রিত হয়।
ভার্চুয়াল হোস্ট এবং হোস্ট অ্যালিয়াস সম্পর্কে
Edge-এর ক্ষেত্রে, একটি ভার্চুয়াল হোস্ট সেই আইপি অ্যাড্রেস ও পোর্ট, অথবা ডিএনএস নেম ও পোর্ট নির্ধারণ করে, যার মাধ্যমে একটি এপিআই প্রক্সি উন্মুক্ত করা হয় এবং এর ফলস্বরূপ, অ্যাপগুলো এপিআই প্রক্সি অ্যাক্সেস করার জন্য যে ইউআরএল ব্যবহার করে, সেটিও নির্ধারণ করে। আইপি অ্যাড্রেস/ডিএনএস নেমটি একটি Edge রাউটারকে নির্দেশ করে এবং পোর্ট নম্বরটি হলো রাউটারের একটি খোলা পোর্ট।
যখন আপনি ভার্চুয়াল হোস্ট তৈরি করেন, তখন আপনাকে ভার্চুয়াল হোস্টটির হোস্ট অ্যালিয়াসও নির্দিষ্ট করে দিতে হয়। সাধারণত এটি ভার্চুয়াল হোস্টটির ডিএনএস নাম হয়ে থাকে। অনুরোধটি পরিচালনা করবে এমন এপিআই প্রক্সি নির্ধারণ করার অংশ হিসেবে, রাউটারটি আগত অনুরোধের Host হেডারকে সমস্ত ভার্চুয়াল হোস্ট দ্বারা সংজ্ঞায়িত উপলব্ধ হোস্ট অ্যালিয়াসের তালিকার সাথে তুলনা করে।
Edge ইনস্টলেশনের সমস্ত ভার্চুয়াল হোস্টের জন্য হোস্ট অ্যালিয়াস এবং পোর্ট নম্বরের সমন্বয় অবশ্যই অনন্য হতে হবে। এর মানে হলো, একাধিক ভার্চুয়াল হোস্ট একই পোর্ট নম্বর ব্যবহার করতে পারে, যদি তাদের হোস্ট অ্যালিয়াস ভিন্ন হয়।
একটি ভার্চুয়াল হোস্ট আরও নির্ধারণ করে যে এপিআই প্রক্সিটি HTTP প্রোটোকল ব্যবহার করে অ্যাক্সেস করা হবে, নাকি TLS ব্যবহার করে এনক্রিপ্টেড HTTPS প্রোটোকলের মাধ্যমে। HTTPS ব্যবহার করার জন্য একটি ভার্চুয়াল হোস্ট কনফিগার করার সময়, ভার্চুয়াল হোস্টটিকে এমন একটি কীস্টোরের সাথে যুক্ত করুন যাতে TLS হ্যান্ডশেকিংয়ের সময় ভার্চুয়াল হোস্ট দ্বারা ব্যবহৃত সার্টিফিকেট এবং প্রাইভেট কী থাকে।
ভার্চুয়াল হোস্ট সম্পর্কে অতিরিক্ত তথ্যের জন্য দেখুন:
- ভার্চুয়াল হোস্ট সম্পর্কে
- প্রাইভেট ক্লাউডের জন্য একটি এপিআই-তে টিএলএস অ্যাক্সেস কনফিগার করা
- কীস্টোর এবং ট্রাস্টস্টোর
হোস্ট অ্যালিয়াসের সাথে SNI কীভাবে কাজ করে
SNI আপনাকে একই পোর্টে একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করার সুযোগ দেয়, যার প্রতিটির জন্য আলাদা TLS সার্টিফিকেট এবং কী থাকে। এরপর Edge, TLS হ্যান্ডশেক অনুরোধে থাকা server_name এক্সটেনশনের উপর ভিত্তি করে ভার্চুয়াল হোস্ট এবং TLS দ্বারা ব্যবহৃত সার্টিফিকেট/কী পেয়ার নির্ধারণ করে।
এজ রাউটারটি TLS হ্যান্ডশেক অনুরোধে server_name এক্সটেনশনটি পড়ে এবং তারপর সেটি ব্যবহার করে সমস্ত ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াসগুলোর মধ্যে অনুসন্ধান করে। যদি রাউটারটি কোনো হোস্ট অ্যালিয়াসের সাথে মিল খুঁজে পায়, তবে রাউটারটি সেই হোস্ট অ্যালিয়াসের সাথে যুক্ত ভার্চুয়াল হোস্টের TLS সার্টিফিকেট এবং কী ব্যবহার করে। যদি কোনো মিল খুঁজে না পাওয়া যায়, তাহলে TLS হ্যান্ডশেকিং ব্যর্থ হয়।
TLS হ্যান্ডশেক ব্যর্থ হওয়ার পরিবর্তে, আপনি একটি ডিফল্ট সার্টিফিকেট/কী পেয়ার নির্ধারণ করতে পারেন, যেমনটি পরবর্তী বিভাগগুলিতে বর্ণনা করা হয়েছে।
Edge for the Cloud-এ একটি ডিফল্ট সার্টিফিকেট/কী পেয়ার নির্ধারণ করা
Apigee, HTTPS সমর্থন করার জন্য একটি TLS সার্টিফিকেট এবং প্রাইভেট কী প্রদান করে। যদিও অনেক গ্রাহক ডেপ্লয়মেন্টের সময় তাদের নিজস্ব সার্টিফিকেট এবং প্রাইভেট কী ব্যবহার করতে পছন্দ করেন, আপনি Apigee-এর সার্টিফিকেট এবং কী ব্যবহার করে আপনার API-গুলো ডেপ্লয় করতে পারেন।
Edge for the Cloud-এ, যদি রাউটার SNI হেডারকে কোনো হোস্ট অ্যালিয়াসের সাথে মেলাতে না পারে অথবা যদি ক্লায়েন্ট SNI সমর্থন না করে, তাহলে রাউটার Apigee দ্বারা প্রদত্ত ডিফল্ট সার্টিফিকেট, অর্থাৎ *.apigee.net, ব্যবহার করে।
প্রাইভেট ক্লাউডের জন্য Edge-এ একটি ডিফল্ট সার্টিফিকেট/কী পেয়ার নির্ধারণ করা
Edge for the Private Cloud-এ, যদি server_name এক্সটেনশন এবং সমস্ত ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াসের মধ্যে কোনো মিল খুঁজে না পাওয়া যায়, অথবা যদি অনুরোধকারী ক্লায়েন্ট SNI সমর্থন না করে, তাহলে আপনি রাউটারটিকে পোর্টে একটি ডিফল্ট ভার্চুয়াল হোস্টের সার্টিফিকেট/কী ব্যবহার করার জন্য কনফিগার করতে পারেন। ডিফল্ট ভার্চুয়াল হোস্টটি অর্গানাইজেশনের নাম, এনভায়রনমেন্টের নাম এবং ভার্চুয়াল হোস্টের নামের সমন্বয়ে নিম্নোক্ত ফর্মে সংজ্ঞায়িত করা হয়:
orgName_envName_vhName
রাউটারটি orgName_envName_vhName এর সংমিশ্রণ থেকে বর্ণানুক্রমিকভাবে প্রথমে আসা সার্টিফিকেট/কী ব্যবহার করে। উদাহরণস্বরূপ, অনুরোধটি ৪৪৩ পোর্টে আসে, এবং prod এনভায়রনমেন্টে example org-এর জন্য দুটি ভার্চুয়াল হোস্ট সংজ্ঞায়িত করা আছে:
- ভার্চুয়াল হোস্টের নাম =
default - ভার্চুয়াল হোস্টের নাম =
test
এই উদাহরণে, রাউটারটি default নামের ভার্চুয়াল হোস্টের cert/key ব্যবহার করে, কারণ example_prod_default বর্ণানুক্রমিকভাবে example_prod_test আগে আসে।
ডিফল্ট ভার্চুয়াল হোস্ট সক্রিয় করতে:
- প্রথম রাউটার নোডে,
/opt/apigee/customer/application/router.propertiesফাইলটি সম্পাদনা করুন। যদি ফাইলটি না থাকে, তবে এটি তৈরি করুন। - ডিফল্ট ভার্চুয়াল হোস্ট নির্ধারণ করার জন্য ফাইলটিতে নিম্নলিখিত প্রপার্টিটি যোগ করুন:
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
- রাউটারটি পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- বাকি সব রাউটারে এই ধাপগুলো পুনরাবৃত্তি করুন।
ডিফল্ট ভার্চুয়াল হোস্টের সার্টিফিকেট/কী ব্যবহার করার পরিবর্তে, আপনি রাউটারে ডিফল্ট সার্টিফিকেট/কী স্পষ্টভাবে নির্ধারণ করতে পারেন। একটি সুস্পষ্ট ডিফল্ট সার্টিফিকেট/কী জোড়া নির্ধারণ করতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
- প্রথম রাউটার নোডে, সার্টিফিকেট এবং প্রাইভেট কী-টি এমন একটি স্থানে কপি করুন যেখানে apigee ব্যবহারকারী অ্যাক্সেস করতে পারে। উদাহরণস্বরূপ,
/opt/apigee/customer/application। - ফাইলগুলির মালিকানা 'apigee' ব্যবহারকারীর কাছে পরিবর্তন করুন।
chown apigee:apigee /opt/apigee/customer/application/myCert.pem
chown apigee:apigee /opt/apigee/customer/application/myKey.pem
/opt/apigee/customer/application/router.propertiesফাইলটি সম্পাদনা করুন। ফাইলটি না থাকলে, এটি তৈরি করুন।- ডিফল্ট সার্টিফিকেট/কী নির্দিষ্ট করার জন্য ফাইলটিতে নিম্নলিখিত প্রোপার্টিগুলো যোগ করুন:
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 - সার্টিফিকেট এবং কী-এর অবস্থান নির্দিষ্ট করতে
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
- রাউটারটি পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- বাকি সব রাউটারে এই ধাপগুলো পুনরাবৃত্তি করুন।
Edge থেকে ব্যাকএন্ডে পাঠানো অনুরোধের জন্য SNI সমর্থন করা হচ্ছে
Apigee Edge for Cloud এবং Private Cloud ডেপ্লয়মেন্টে, Edge মেসেজ প্রসেসর থেকে টার্গেট এন্ডপয়েন্টগুলিতে SNI ব্যবহার সমর্থন করে। ডিফল্টরূপে, Cloud-এর জন্য Edge মেসেজ প্রসেসরগুলিতে SNI সক্রিয় থাকে এবং Private Cloud-এ এটি নিষ্ক্রিয় থাকে।
প্রাইভেট ক্লাউডের জন্য Edge-এ ব্যাকএন্ডে SNI ব্যবহার করা
Edge for the Private Cloud-এর ক্ষেত্রে, বিদ্যমান টার্গেট ব্যাকএন্ডগুলোর সাথে ব্যাকওয়ার্ড কম্প্যাটিবল থাকার জন্য Apigee ডিফল্টরূপে SNI নিষ্ক্রিয় করে রেখেছে। যদি আপনার টার্গেট ব্যাকএন্ড SNI সমর্থন করার জন্য কনফিগার করা থাকে, তবে আপনি আপনার Edge ভার্সনের জন্য নিচে বর্ণিত পদ্ধতি অনুসরণ করে এই ফিচারটি সক্রিয় করতে পারেন।
Edge-এর জন্য অন্য কোনো নির্দিষ্ট কনফিগারেশনের প্রয়োজন নেই। যদি আপনার টার্গেট এনভায়রনমেন্ট SNI-এর জন্য কনফিগার করা থাকে, Edge তা সাপোর্ট করে। Edge স্বয়ংক্রিয়ভাবে রিকোয়েস্ট URL থেকে হোস্টনেমটি বের করে নেয় এবং TLS হ্যান্ডশেক রিকোয়েস্টে তা যোগ করে দেয়।
Edge সংস্করণ 4.15.07.0x-এর জন্য Edge এবং ব্যাকএন্ডের মধ্যে SNI সক্রিয় করুন।
SNI সক্রিয় করতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
- প্রথম মেসেজ প্রসেসর নোডে, একটি এডিটরে
/opt/apigee4/conf/apigee/message-processor/system.propertiesফাইলটি খুলুন। -
system.propertiesফাইলে নিম্নলিখিত প্রপার্টিটির মান true সেট করুন:jsse.enableSNIExtension=true
- মেসেজ প্রসেসরগুলো পুনরায় চালু করুন:
/opt/apigee4/bin/apigee-service message-processor restart
- বাকি সমস্ত মেসেজ প্রসেসরগুলিতে এই ধাপগুলি পুনরাবৃত্তি করুন।
Edge সংস্করণ 4.16.01 এবং পরবর্তী সংস্করণগুলির জন্য Edge এবং ব্যাকএন্ডের মধ্যে SNI সক্রিয় করুন।
SNI সক্রিয় করতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
- প্রথম মেসেজ প্রসেসর নোডে,
/opt/apigee/customer/application/message-processor.propertiesফাইলটি সম্পাদনা করুন। যদি ফাইলটি বিদ্যমান না থাকে, তবে এটি তৈরি করুন। - ফাইলটিতে নিম্নলিখিত প্রপার্টিটি যোগ করুন:
conf_system_jsse.enableSNIExtension=true
- মেসেজ প্রসেসরটি পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- বাকি সমস্ত মেসেজ প্রসেসরগুলিতে এই ধাপগুলি পুনরাবৃত্তি করুন।