আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
এজ-এর একটি ভার্চুয়াল হোস্ট সেই ডোমেন এবং পোর্টগুলিকে সংজ্ঞায়িত করে যেখানে একটি API প্রক্সি উন্মুক্ত হয় এবং এক্সটেনশনের মাধ্যমে, অ্যাপগুলি একটি API প্রক্সি অ্যাক্সেস করতে ব্যবহার করে এমন URL।
একটি ভার্চুয়াল হোস্ট HTTP প্রোটোকল ব্যবহার করে বা TLS ব্যবহার করে এনক্রিপ্ট করা HTTPS প্রোটোকল দ্বারা API প্রক্সি অ্যাক্সেস করা হয়েছে কিনা তাও নির্ধারণ করে। HTTPS এবং TLS ব্যবহার করার জন্য একটি ভার্চুয়াল হোস্ট কনফিগার করার সময়, আপনি এজে একটি ভার্চুয়াল হোস্ট তৈরি করেন এবং একটি কীস্টোর এবং ট্রাস্টস্টোর ব্যবহার করার জন্য ভার্চুয়াল হোস্ট কনফিগার করেন।
আরও জানুন:
- TLS/SSL সম্পর্কে
- এজ সহ TLS ব্যবহার করা
- ভার্চুয়াল হোস্ট সম্পর্কে
- প্রাইভেট ক্লাউডের জন্য ভার্চুয়াল হোস্ট কনফিগার করা হচ্ছে
- ভার্চুয়াল হোস্ট সম্পত্তি রেফারেন্স
- কীস্টোর এবং ট্রাস্টস্টোর
ভার্চুয়াল হোস্ট তৈরি করতে আপনার যা দরকার
আপনি একটি ভার্চুয়াল হোস্ট তৈরি করার আগে, আপনার নিম্নলিখিত তথ্য থাকা উচিত:
- ভার্চুয়াল হোস্টের সর্বজনীনভাবে মুখোমুখি ডোমেন নাম। উদাহরণস্বরূপ, আপনার জানা উচিত যে সর্বজনীনভাবে মুখ করা নাম
api.myCompany.com
,myapi.myCompany.com
, ইত্যাদি। আপনি ভার্চুয়াল হোস্ট তৈরি করার সময় এবং ভার্চুয়াল হোস্টের জন্য DNS রেকর্ড তৈরি করার সময় সেই তথ্যটি ব্যবহার করা হয়। - একমুখী TLS এর জন্য , আপনাকে একটি কীস্টোর তৈরি করতে হবে যেখানে কীস্টোরে নিম্নলিখিতগুলি রয়েছে:
- TLS শংসাপত্র - হয় একটি শংসাপত্র কর্তৃপক্ষ (CA) দ্বারা স্বাক্ষরিত একটি শংসাপত্র, অথবা শংসাপত্রের একটি শৃঙ্খল যেখানে শেষ শংসাপত্রটি একটি CA দ্বারা স্বাক্ষরিত।
- ব্যক্তিগত কী - এজ 2048 বিট পর্যন্ত কী আকার সমর্থন করে। একটি পাসফ্রেজ ঐচ্ছিক।
- দ্বি-মুখী TLS-এর জন্য , আপনার একটি কীস্টোর প্রয়োজন এবং ক্লায়েন্টের শংসাপত্র এবং ঐচ্ছিকভাবে, শংসাপত্রের CA চেইন রাখার জন্য আপনার একটি ট্রাস্টস্টোর প্রয়োজন। শংসাপত্রটি একজন CA দ্বারা স্বাক্ষরিত হলেও আপনার ট্রাস্টস্টোর প্রয়োজন।
কীস্টোর এবং ট্রাস্টস্টোর তৈরির বিষয়ে আরও তথ্যের জন্য কীস্টোর এবং ট্রাস্টস্টোর দেখুন।
TLS-এর জন্য ভার্চুয়াল হোস্ট কনফিগারেশন
একটি ভার্চুয়াল হোস্ট তৈরি করতে, একটি XML অবজেক্ট তৈরি করুন যা ভার্চুয়াল হোস্টকে সংজ্ঞায়িত করে। নিম্নলিখিত XML অবজেক্টটি HTTPS-এর উপর একমুখী TLS কনফিগারেশনের জন্য ভার্চুয়াল হোস্টকে সংজ্ঞায়িত করতে <SSLInfo>
উপাদান ব্যবহার করে:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9006</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>
এই উদাহরণে, একমুখী TLS সক্ষম করতে <Enabled>
উপাদানটি সত্যে সেট করা হয়েছে, এবং <KeyStore>
এবং < KeyAlias>
উপাদানগুলি TLS সংযোগ দ্বারা ব্যবহৃত কীস্টোর এবং কী নির্দিষ্ট করে।
দ্বি-মুখী TLS সক্ষম করতে, <ClientAuthEnabled>
উপাদানটিকে true
এ সেট করুন এবং <TrustStore>
উপাদান ব্যবহার করে একটি ট্রাস্টস্টোর নির্দিষ্ট করুন। ট্রাস্টস্টোর ক্লায়েন্টের শংসাপত্র এবং ঐচ্ছিকভাবে, শংসাপত্রের CA চেইন ধারণ করে।
ভার্চুয়াল হোস্টে কীস্টোর এবং ট্রাস্টস্টোর নাম কীভাবে নির্দিষ্ট করবেন তা নির্ধারণ করা হচ্ছে
উপরের ভার্চুয়াল হোস্ট উদাহরণে, আপনি একটি রেফারেন্স ব্যবহার করে কীস্টোরটি নির্দিষ্ট করেছেন। একটি রেফারেন্স হল একটি ভেরিয়েবল যা কীস্টোরের নাম ধারণ করে, সরাসরি কীস্টোর নাম উল্লেখ না করে।
একটি রেফারেন্স ব্যবহার করার সুবিধা হল যে আপনি ভার্চুয়াল হোস্ট দ্বারা ব্যবহৃত কীস্টোর পরিবর্তন করতে রেফারেন্সের মান পরিবর্তন করতে পারেন, সাধারণত বর্তমান কীস্টোরের শংসাপত্রটি নিকট ভবিষ্যতে মেয়াদ শেষ হয়ে যাচ্ছে। রেফারেন্সের মান পরিবর্তন করার জন্য আপনাকে এজ রাউটার পুনরায় চালু করতে হবে না।
বিকল্পভাবে, আপনি ভার্চুয়াল হোস্টে একটি আক্ষরিক কীস্টোর নাম ব্যবহার করতে পারেন। যাইহোক, যদি আপনি কিস্টোর নাম পরিবর্তন করতে ভার্চুয়াল হোস্ট পরিবর্তন করেন, তাহলে আপনাকে এজ রাউটারগুলি পুনরায় চালু করতে হবে।
কীস্টোর এবং ট্রাস্টস্টোরের রেফারেন্স ব্যবহারে বিধিনিষেধ
কীস্টোর এবং ট্রাস্টস্টোরের রেফারেন্স ব্যবহার করার সময় আপনাকে অবশ্যই নিম্নলিখিত সীমাবদ্ধতাগুলি বিবেচনা করতে হবে:
- আপনি শুধুমাত্র ভার্চুয়াল হোস্টে কীস্টোর এবং ট্রাস্টস্টোর রেফারেন্স ব্যবহার করতে পারেন যদি আপনি SNI সমর্থন করেন এবং আপনি Apigee রাউটারে SSL বন্ধ করেন।
- যদি আপনার Apigee রাউটারের সামনে একটি লোড ব্যালেন্সার থাকে এবং আপনি লোড ব্যালেন্সারে TLS বন্ধ করে দেন, তাহলে আপনি ভার্চুয়াল হোস্টে কীস্টোর এবং ট্রাস্টস্টোর রেফারেন্স ব্যবহার করতে পারবেন না।
কীস্টোর এবং ট্রাস্টস্টোরের রেফারেন্স ব্যবহার করতে একটি বিদ্যমান ভার্চুয়াল হোস্ট পরিবর্তন করা হচ্ছে
Apigee দৃঢ়ভাবে সুপারিশ করে যে ভার্চুয়াল হোস্টগুলি কীস্টোর এবং ট্রাস্টস্টোরের রেফারেন্স ব্যবহার করে। রেফারেন্সগুলি আপনাকে এজ রাউটারগুলি পুনরায় চালু না করেই ভার্চুয়াল হোস্ট দ্বারা ব্যবহৃত কীস্টোর এবং ট্রাস্টস্টোর পরিবর্তন করতে দেয়।
যদি আপনার ভার্চুয়াল হোস্টগুলি বর্তমানে কীস্টোর বা ট্রাস্টস্টোরের আক্ষরিক নাম ব্যবহার করার জন্য কনফিগার করা থাকে, তাহলে আপনি রেফারেন্স ব্যবহার করতে তাদের রূপান্তর করতে পারেন। এটি করতে, রেফারেন্স ব্যবহার করতে ভার্চুয়াল হোস্ট আপডেট করুন এবং তারপর এজ রাউটারগুলি পুনরায় চালু করুন।
এজ 4.15.07 এবং তার আগের জন্য TLS সাইফার এবং প্রোটোকল সেট করা হচ্ছে
আপনি যদি এজ সংস্করণ 4.15.07 এবং তার আগের ব্যবহার করে থাকেন, তাহলে আপনি <SSLInfo>
ট্যাগের <Ciphers>
এবং <Protocols>
চাইল্ড ট্যাগ ব্যবহার করে ভার্চুয়াল হোস্টের দ্বারা ব্যবহৃত TLS প্রোটোকল এবং সাইফার সেট করুন। এই ট্যাগগুলি নীচের টেবিলে বর্ণনা করা হয়েছে।
যেমন:
<SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>myTestKeystore</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>myTestKeystore</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <Ciphers> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher> <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher> </Ciphers> <Protocols> <Protocol>TLSv1.2</Protocol> </Protocols> </SSLInfo> </SSLInfo>
<Cipher>
ট্যাগ সাইফারের Java এবং JSSE নাম ব্যবহার করে। উদাহরণস্বরূপ, জাভা 8-এর জন্য http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites দেখুন।
এজ 4.16.01 থেকে 4.16.09 পর্যন্ত TLS সাইফার এবং প্রোটোকল নির্দিষ্ট করা
এজ 4.16.01 থেকে 4.16.09 পর্যন্ত, আপনি রাউটারে বিশ্বব্যাপী ভার্চুয়াল হোস্টের জন্য ডিফল্ট সাইফার এবং প্রোটোকল সেট করেছেন। এই ডিফল্টগুলি সমস্ত ভার্চুয়াল হোস্টে প্রযোজ্য।
ডিফল্ট প্রোটোকল এবং সাইফার নির্দিষ্ট করতে টোকেন ব্যবহার করুন:
- ডিফল্ট প্রোটোকল নির্দিষ্ট করতে,
conf_load_balancing_load.balancing.driver.server.ssl.protocols
টোকেন ব্যবহার করুন - রাউটারের জন্য ডিফল্ট সাইফারগুলি নির্দিষ্ট করতে,
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
টোকেন ব্যবহার করুন
conf_load_balancing_load.balancing.driver.server.ssl.protocols
টোকেনের ডিফল্ট মান হল:
conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
এই সেটিংটি নির্দিষ্ট করে যে রাউটার TLS সংস্করণ 1.0, 1.1 এবং 1.2 সমর্থন করে। টোকেনে মানগুলির একটি স্থান সীমাবদ্ধ তালিকা নির্দিষ্ট করুন।
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
টোকেনের ডিফল্ট মান হল:
conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES
এই সেটিং নির্দিষ্ট করে:
- কী দৈর্ঘ্য 128 বিট বা তার বেশি প্রয়োজন (
HIGH
)। - কোন প্রমাণীকরণ ছাড়া সাইফার বাদ দিন (
!aNULL
) - MD5 (
!MD5
) ব্যবহার করে সাইফার স্যুটগুলি বাদ দিন - DH ব্যবহার করে সাইফার স্যুটগুলি বাদ দিন (বেনামী DH, ক্ষণস্থায়ী DH এবং স্থির DH সহ) এবং ট্রিপল DES (
!DH+3DES
) - RSA কী বিনিময় এবং ট্রিপল DES (
!RSA+3DES
) ব্যবহার করে সাইফার স্যুটগুলি বাদ দিন
এই টোকেন দ্বারা অনুমোদিত সিনট্যাক্স এবং মান সম্পর্কে তথ্যের জন্য, OpenSSL সাইফার দেখুন। মনে রাখবেন যে এই টোকেনটি OpenSSL সাইফার নামগুলি ব্যবহার করে, যেমন AES128-SHA256, এবং Java/JSSE সাইফার নামগুলি নয়, যেমন TLS_RSA_WITH_AES_128_CBC_SHA256৷
রাউটারের জন্য টোকেন সেট করতে:
-
/opt/apigee/customer/application/router.properties
ফাইলটি সম্পাদনা করুন। যদি সেই ফাইলটি বিদ্যমান না থাকে তবে এটি তৈরি করুন। -
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
টোকেন সেট করুন। উদাহরণস্বরূপ, শুধুমাত্র TLSv1.2 নির্দিষ্ট করতে এবং পূর্ব-ভাগ করা কী ব্যবহার করে সাইফার স্যুটগুলি বাদ দিতে, যোগ করুন!PSK
:conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2 conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES:!PSK
- নিশ্চিত করুন যে
router.properties
ফাইলটি apigee-এর মালিকানাধীন:chown apigee:apigee /opt/apigee/customer/application/router.properties
- এজ রাউটার পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- টোকেনের মান পরীক্ষা করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
এজ সংস্করণ 4.17.01 এবং পরবর্তী সংস্করণের জন্য TLS ভার্চুয়াল হোস্ট প্যারামিটার সেট করা হচ্ছে
আপনি যদি এজ সংস্করণ 4.17.01 এবং পরবর্তী সংস্করণ ব্যবহার করেন, তাহলে আপনি <VirtualHost>
ট্যাগের <Properties>
চাইল্ড ট্যাগ ব্যবহার করে একটি পৃথক ভার্চুয়াল হোস্ট যেমন TLS প্রোটোকল এবং সাইফারের জন্য কিছু TLS বৈশিষ্ট্য সেট করতে পারেন। এই ট্যাগগুলি ভার্চুয়াল হোস্ট সম্পত্তি রেফারেন্সে বর্ণনা করা হয়েছে।
যেমন:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9006</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://myTestKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> <Properties> <Property name="proxy_read_timeout">50</Property> <Property name="keepalive_timeout">300</Property> <Property name="proxy_request_buffering">off</Property> <Property name="proxy_buffering">off</Property> <Property name="ssl_protocols">TLSv1.2 TLSv1.1</Property> <Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH</Property> </Properties> </VirtualHost>
ssl_ciphers
টোকেন দ্বারা অনুমোদিত সিনট্যাক্স এবং মান সম্পর্কে তথ্যের জন্য, OpenSSL সাইফার দেখুন। মনে রাখবেন যে এই টোকেনটি OpenSSL সাইফার নামগুলি ব্যবহার করে, যেমন AES128-SHA256, এবং Java/JSSE সাইফার নামগুলি নয়, যেমন TLS_RSA_WITH_AES_128_CBC_SHA256৷
একটি ভার্চুয়াল হোস্ট তৈরি করা যা HTTPS ব্যবহার করে
এই উদাহরণটি একটি রেফারেন্স ব্যবহার করে ভার্চুয়াল হোস্টের কীস্টোরটি নির্দিষ্ট করে। একটি রেফারেন্স ব্যবহার করে আপনি রাউটার পুনরায় চালু না করেই কীস্টোর পরিবর্তন করতে পারবেন।
ভার্চুয়াল হোস্ট তৈরি করতে নিম্নলিখিত পদ্ধতি ব্যবহার করুন:
- এখানে বর্ণিত পদ্ধতি ব্যবহার করে myTestKeystore নামে একটি কীস্টোর তৈরি এবং কনফিগার করুন: Keystores এবং Truststores । নিশ্চিত করুন যে কীস্টোরটি শংসাপত্র এবং ব্যক্তিগত কী-এর জন্য myKeyAlias- এর একটি উপনাম নাম ব্যবহার করে।
আপনি উপরে তৈরি করা কীস্টোরে keystoreref নামের রেফারেন্স তৈরি করতে নিম্নলিখিত POST API কলটি ব্যবহার করুন:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="keystoreref"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password
রেফারেন্সটি কীস্টোরের নাম এবং
KeyStore
হিসাবে রেফারেন্স টাইপ নির্দিষ্ট করে।রেফারেন্স দেখতে নিম্নলিখিত GET API কল ব্যবহার করুন:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password
একটি ভার্চুয়াল হোস্ট API তৈরি করুন ব্যবহার করে ভার্চুয়াল হোস্ট তৈরি করুন, যেখানে
<ms-IP>
হল ম্যানেজমেন্ট সার্ভার নোডের IP ঠিকানা বা ডোমেন নাম।সঠিক কীস্টোর রেফারেন্স এবং কী উপনাম নির্দিষ্ট করা নিশ্চিত করুন:
curl -X POST -H "Content-Type:application/xml" \ http://<ms-IP>:8080/v1/o/{org_name}/environments/{env_name}/virtualhosts \ -d '<VirtualHost name="newTLSTrustStore2"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://keystoreref</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>' \ -u email:password
- ভার্চুয়াল হোস্টের জন্য একটি DNS রেকর্ড তৈরি করুন যা হোস্ট উপনামের সাথে মেলে।
আপনার যদি কোনো বিদ্যমান API প্রক্সি থাকে, তাহলে ProxyEndpoint এ
<HTTPConnection>
উপাদানটিতে ভার্চুয়াল হোস্ট যোগ করুন। ভার্চুয়াল হোস্ট সমস্ত নতুন API প্রক্সিতে স্বয়ংক্রিয়ভাবে যুক্ত হয়।ভার্চুয়াল হোস্ট সম্পর্কে একটি ভার্চুয়াল হোস্ট তৈরি করার পরে একটি API প্রক্সি আপডেট করা দেখুন।
ভার্চুয়াল হোস্ট ব্যবহার করার জন্য একটি API প্রক্সি আপডেট করার পরে এবং হোস্ট উপনামের জন্য DNS রেকর্ড তৈরি করার পরে, আপনি নীচে দেখানো হিসাবে API প্রক্সি অ্যাক্সেস করতে পারেন:
https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}
যেমন:
https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282
একটি কীস্টোর বা ট্রাস্টস্টোরের রেফারেন্স তৈরি এবং পরিবর্তন করা
আপনি বিকল্পভাবে কীস্টোর বা ট্রাস্টস্টোরের রেফারেন্স ব্যবহার করতে ভার্চুয়াল হোস্ট কনফিগার করতে পারেন। একটি রেফারেন্স ব্যবহার করার সুবিধা হল যে আপনি একটি রাউটার পুনরায় চালু না করেই TLS শংসাপত্র আপডেট করতে একটি ভিন্ন কীস্টোর বা ট্রাস্টস্টোরে নির্দেশ করতে রেফারেন্স আপডেট করতে পারেন।
উদাহরণস্বরূপ, নীচে দেখানো একটি ভার্চুয়াল হোস্ট যা কীস্টোরের একটি রেফারেন্স ব্যবহার করে:
<VirtualHost name="myTLSVHost"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9006</Port> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://keystoreref</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>
keystoreref নামের রেফারেন্স তৈরি করতে নিম্নলিখিত POST API কলটি ব্যবহার করুন:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="keystoreref"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password
রেফারেন্সটি কীস্টোরের নাম এবং এর ধরন নির্দিষ্ট করে।
রেফারেন্স দেখতে নিম্নলিখিত GET API কল ব্যবহার করুন:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password
পরবর্তীতে একটি ভিন্ন কীস্টোরে নির্দেশ করার জন্য রেফারেন্স পরিবর্তন করতে, উপনামের একই নাম রয়েছে তা নিশ্চিত করতে, নিম্নলিখিত PUT কলটি ব্যবহার করুন:
curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \ -d '<ResourceReference name="keystoreref"> <Refers>myNewKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password