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

Edge এগুলির জন্য SNI কাজ করে:
- API প্রক্সিতে ক্লায়েন্ট অ্যাপের থেকে আসা অনুরোধ। এই পরিস্থিতিতে, Edge TLS সার্ভার হিসেবে কাজ করে
- Edge থেকে ব্যাকএন্ডে অনুরোধ। এই পরিস্থিতিতে, Edge TLS ক্লায়েন্ট হিসেবে কাজ করে।
SNI সম্পর্কে আরও তথ্যের জন্য, এগুলি দেখুন:
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
Edge-এ API প্রক্সিতে করা অনুরোধের জন্য SNI কাজ করে
API প্রক্সিতে পাঠানো অনুরোধের জন্য SNI সহায়তা হোস্টের ছদ্মনাম ও ভার্চুয়াল হোস্ট দ্বারা নিয়ন্ত্রিত হয়।
ভার্চুয়াল হোস্ট ও হোস্টের ছদ্মনাম সম্পর্কে
Edge-এ, ভার্চুয়াল হোস্ট হল IP অ্যাড্রেস ও পোর্ট অথবা DNS নাম ও পোর্ট, যার উপর API প্রক্সি এক্সপোজ করা হয় এবং এর সাথে সাথে URL-ও থাকে যা অ্যাপ API প্রক্সি অ্যাক্সেস করার জন্য ব্যবহার করে। IP অ্যাড্রেস/DNS নাম Edge রাউটারের সাথে সম্পর্কিত এবং পোর্ট নম্বর হল রাউটারে খোলা পোর্ট।
আপনি ভার্চুয়াল হোস্ট তৈরি করার সময়, ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াসও নির্দিষ্ট করেন।
সাধারণত এটি হল ভার্চুয়াল হোস্টের ডিএনএস নাম। অনুরোধ হ্যান্ডেল করা API প্রক্সি নির্ধারণ করার অংশ হিসেবে, রাউটার ইনকামিং অনুরোধের Host হেডারকে
সব ভার্চুয়াল হোস্টের দ্বারা সংজ্ঞায়িত উপলভ্য হোস্ট অ্যালিয়াসের
তালিকার সাথে তুলনা করে।
Edge ইনস্টলেশনে সব ভার্চুয়াল হোস্টের জন্য ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াস ও পোর্ট নম্বরের কম্বিনেশন অনন্য হতে হবে। এর অর্থ হল, একাধিক ভার্চুয়াল হোস্ট একই পোর্ট নম্বর ব্যবহার করতে পারে যদি তাদের আলাদা হোস্ট অ্যালিয়াস থাকে।
এছাড়াও, ভার্চুয়াল হোস্ট নির্ধারণ করে যে API প্রক্সি HTTP প্রোটোকল ব্যবহার করে অ্যাক্সেস করা হবে নাকি TLS ব্যবহার করে এনক্রিপ্ট করা HTTPS প্রোটোকল ব্যবহার করে অ্যাক্সেস করা হবে। HTTPS ব্যবহার করার জন্য ভার্চুয়াল হোস্ট কনফিগার করার সময়, ভার্চুয়াল হোস্টকে এমন একটি কীস্টোরের সাথে অ্যাসোসিয়েট করুন যাতে TLS হ্যান্ডশেকিংয়ের সময় ভার্চুয়াল হোস্টের ব্যবহার করা সার্টিফিকেট ও প্রাইভেট কী থাকে।
ভার্চুয়াল হোস্ট সম্পর্কে আরও তথ্য পেতে, এগুলি দেখুন:
- ভার্চুয়াল হোস্ট সম্পর্কে
- প্রাইভেট ক্লাউডের জন্য API-তে TLS অ্যাক্সেস কনফিগার করা
- কীস্টোর ও ট্রাস্টস্টোর
হোস্ট অ্যালিয়াসের সাথে SNI কীভাবে কাজ করে
SNI আপনাকে একই পোর্টে একাধিক ভার্চুয়াল হোস্টকে ডিফাইন করতে দেয়, প্রত্যেকটির আলাদা আলাদা
TLS সার্টিফিকেট ও কী থাকে। TLS হ্যান্ডশেক অনুরোধে থাকা server_name
এক্সটেনশনের উপর ভিত্তি করে Edge ভার্চুয়াল হোস্ট এবং TLS-এর ব্যবহার করা cert/key পেয়ার নির্ধারণ করে।
Edge রাউটার TLS হ্যান্ডশেক
অনুরোধে server_name এক্সটেনশনটি পড়ে
এবং তারপরে এটি সমস্ত ভার্চুয়াল হোস্ট থেকে হোস্ট অ্যালিয়াস সার্চ করার জন্য ব্যবহার করে। রাউটার যদি হোস্ট অ্যালিয়াসের সাথে কোনও ম্যাচ শনাক্ত করে, তাহলে রাউটার হোস্ট অ্যালিয়াসের সাথে যুক্ত ভার্চুয়াল হোস্ট থেকে TLS cert এবং কী ব্যবহার করে।
কোনও মিল খুঁজে না পাওয়া গেলে, TLS হ্যান্ডশেকিং সম্পূর্ণ হয় না।
TLS হ্যান্ডশেক ব্যর্থ হওয়ার পরিবর্তে, আপনি একটি ডিফল্ট cert/key পেয়ার নির্ধারণ করতে পারেন, যেমন পরবর্তী বিভাগে বর্ণনা করা হয়েছে।
Cloud-এর জন্য Edge-এ ডিফল্ট cert/কী পেয়ার নির্ধারণ করা
HTTPS-এ সহায়তা করার জন্য Apigee, TLS সার্টিফিকেট ও প্রাইভেট কী প্রদান করে। যদিও অনেক গ্রাহক ডিপ্লয়মেন্টের সময় তাদের নিজস্ব সার্টিফিকেট ও প্রাইভেট কী ব্যবহার করতে পছন্দ করেন, আপনি Apigee সার্টিফিকেট ও কী ব্যবহার করে আপনার API ডিপ্লয় করতে পারবেন।
Edge for the Cloud-এ, রাউটার যদি SNI হেডারকে কোনও হোস্টের ছদ্মনামের সাথে মেলাতে না পারে অথবা ক্লায়েন্ট SNI ব্যবহার করতে না পারলে, রাউটার Apigee-এর দেওয়া ডিফল্ট সার্টিফিকেট ব্যবহার করে, যা হল *.apigee.net.
প্রাইভেট ক্লাউডের জন্য Edge-এ ডিফল্ট cert/key পেয়ার নির্ধারণ করা
প্রাইভেট ক্লাউডের জন্য Edge-এ, সব ভার্চুয়াল হোস্ট থেকে server_name এক্সটেনশন এবং হোস্ট অ্যালিয়াসের
মধ্যে কোনও মিল খুঁজে না পাওয়া গেলে অথবা অনুরোধকারী ক্লায়েন্ট SNI কাজ না করলে, আপনি পোর্ট থেকে ডিফল্ট ভার্চুয়াল হোস্টের cert/key ব্যবহার করার জন্য
রাউটার কনফিগার করতে পারবেন। ডিফল্ট ভার্চুয়াল হোস্ট হল
সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্টের নামের কম্বিনেশন দিয়ে তৈরি করা হয়, যা
এই ফর্ম্যাটে থাকে:
orgName_envName_vhName
রাউটারটি orgName_envName_vhName-এর কম্বিনেশন থেকে cert/key ব্যবহার করে যা
বর্ণানুক্রমিক ক্রমে প্রথমে আসে। যেমন, অনুরোধটি পোর্ট ৪৪৩-এ এসেছে এবং এনভায়রনমেন্ট prod-এ org example-এর জন্য
দুটি ভার্চুয়াল হোস্ট সংজ্ঞায়িত করা আছে:
- ভার্চুয়াল হোস্টের নাম =
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
- বাকি সব রাউটারে এই ধাপগুলি আবার করুন।
ডিফল্ট ভার্চুয়াল হোস্ট থেকে cert/key ব্যবহার না করে, আপনি Router-এ স্পষ্টভাবে ডিফল্ট cert/key সংজ্ঞায়িত করতে পারেন। একটি স্পষ্ট ডিফল্ট সার্টিফিকেট/কী পেয়ার নির্ধারণ করতে, নিম্নলিখিত পদ্ধতি ব্যবহার করুন:
- প্রথম রাউটার নোডে, cert এবং ব্যক্তিগত কী কপি করে রাউটার নোডের এমন লোকেশনে রাখুন
যেটি apigee ব্যবহারকারীর অ্যাক্সেস করতে পারে। যেমন,
/opt/apigee/customer/application - ফাইলের মালিকানা পরিবর্তন করে 'apigee. user' করুন:
chown apigee:apigee /opt/apigee/customer/application/myCert.pem
chown apigee:apigee /opt/apigee/customer/application/myKey.pem
/opt/apigee/customer/application/router.propertiesএডিট করুন। সেই ফাইলটি না থাকলে, সেটি তৈরি করুন।- ডিফল্ট cert/key নির্দিষ্ট করার সুবিধা চালু করতে, ফাইলে নিম্নলিখিত প্রপার্টি যোগ করুন:
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-এ এন্ডপয়েন্ট টার্গেট করতে মেসেজ প্রসেসর থেকে SNI ব্যবহার করার সুবিধা Edge-এ আছে। ডিফল্ট হিসেবে, ক্লাউডের জন্য Edge Message Processors-এ SNI চালু করা থাকে এবং ব্যক্তিগত ক্লাউডে বন্ধ করা থাকে।
প্রাইভেট ক্লাউডের জন্য Edge-এ ব্যাকএন্ডে SNI ব্যবহার করা
প্রাইভেট ক্লাউডের জন্য Edge-এর ক্ষেত্রে, আগে থেকে থাকা টার্গেট ব্যাকএন্ডের সাথে ব্যাকওয়ার্ড কম্প্যাটিবল হতে, 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-এ নিম্নলিখিত প্রপার্টিকে 'সঠিক' হিসেবে সেট করুন: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
- বাকি থাকা সব মেসেজ প্রসেসরের ক্ষেত্রে এই ধাপগুলি অনুসরণ করুন।