यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं
Apigee X दस्तावेज़. info
Edge पर मौजूद वर्चुअल होस्ट, उन डोमेन और पोर्ट के बारे में बताता है जिन पर एपीआई प्रॉक्सी को ऐक्सेस किया जा सकता है. इसके अलावा, यह उस यूआरएल के बारे में भी बताता है जिसका इस्तेमाल ऐप्लिकेशन, एपीआई प्रॉक्सी को ऐक्सेस करने के लिए करते हैं.
वर्चुअल होस्ट यह भी तय करता है कि एपीआई प्रॉक्सी को एचटीटीपी प्रोटोकॉल का इस्तेमाल करके ऐक्सेस किया जाए या एन्क्रिप्ट (सुरक्षित) किए गए एचटीटीपीएस प्रोटोकॉल का इस्तेमाल करके. एचटीटीपीएस प्रोटोकॉल, टीएलएस का इस्तेमाल करता है. एचटीटीपीएस और टीएलएस का इस्तेमाल करने के लिए, वर्चुअल होस्ट को कॉन्फ़िगर करते समय, Edge पर एक वर्चुअल होस्ट बनाया जाता है. इसके बाद, वर्चुअल होस्ट को कीस्टोर और ट्रस्टस्टोर का इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है.
ज़्यादा जानें:
- टीएलएस/एसएसएल के बारे में जानकारी
- Edge के साथ टीएलएस का इस्तेमाल करना
- वर्चुअल होस्ट के बारे में जानकारी
- प्राइवेट क्लाउड के लिए वर्चुअल होस्ट कॉन्फ़िगर करना
- वर्चुअल होस्ट की प्रॉपर्टी के रेफ़रंस के बारे में जानकारी
- कीस्टोर और ट्रस्टस्टोर
वर्चुअल होस्ट बनाने के लिए ज़रूरी चीज़ें
वर्चुअल होस्ट बनाने से पहले, आपके पास यह जानकारी होनी चाहिए:
- वर्चुअल होस्ट का सार्वजनिक तौर पर दिखने वाला डोमेन नेम. उदाहरण के लिए, आपको यह पता होना चाहिए कि सार्वजनिक तौर पर दिखने वाला नाम
api.myCompany.com,myapi.myCompany.comवगैरह है या नहीं. इस जानकारी का इस्तेमाल, वर्चुअल होस्ट बनाते समय और वर्चुअल होस्ट के लिए डीएनएस रिकॉर्ड बनाते समय किया जाता है. -
एकतरफ़ा टीएलएस के लिए, आपको एक कीस्टोर बनाना होगा. इसमें यह जानकारी शामिल होनी चाहिए:
- टीएलएस सर्टिफ़िकेट. यह सर्टिफ़िकेट अथॉरिटी (सीए) से साइन किया गया सर्टिफ़िकेट हो सकता है या सर्टिफ़िकेट की चेन हो सकती है. चेन में मौजूद आखिरी सर्टिफ़िकेट, सीए से साइन किया गया होना चाहिए.
- प्राइवेट की (निजी पासकोड). Edge, 2048 बिट तक के की साइज़ के साथ काम करता है. लंबे पासवर्ड इस्तेमाल करना ज़रूरी नहीं होता.
- दोतरफ़ा टीएलएस के लिए, आपको एक कीस्टोर और एक ट्रस्टस्टोर की ज़रूरत होगी. ट्रस्टस्टोर में, क्लाइंट का सर्टिफ़िकेट और चाहें तो सर्टिफ़िकेट की सीए चेन शामिल की जा सकती है. अगर सर्टिफ़िकेट, सीए से साइन किया गया है, तब भी आपको ट्रस्टस्टोर की ज़रूरत होगी.
कीस्टोर और ट्रस्टस्टोर बनाने के बारे में ज़्यादा जानकारी के लिए, कीस्टोर और ट्रस्टस्टोर लेख पढ़ें.
टीएलएस के लिए वर्चुअल होस्ट का कॉन्फ़िगरेशन
वर्चुअल होस्ट बनाने के लिए, एक एक्सएमएल ऑब्जेक्ट बनाएं. इसमें वर्चुअल होस्ट की जानकारी शामिल होनी चाहिए.
यहां दिए गए एक्सएमएल ऑब्जेक्ट में, <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>इस उदाहरण में, एकतरफ़ा टीएलएस को चालू करने के लिए, <Enabled> एलिमेंट को 'सही' पर सेट किया गया है. साथ ही, <KeyStore> और <KeyAlias> एलिमेंट में, टीएलएस कनेक्शन के लिए इस्तेमाल किए जाने वाले कीस्टोर और की की जानकारी दी गई है.
दोतरफ़ा टीएलएस को चालू करने के लिए, <ClientAuthEnabled> एलिमेंट को
true पर सेट करें. साथ ही, ट्रस्टस्टोर
को <TrustStore>
एलिमेंट का इस्तेमाल करके बताएं. ट्रस्टस्टोर में, क्लाइंट का सर्टिफ़िकेट और चाहें तो सर्टिफ़िकेट की सीए
चेन शामिल की जा सकती है.
वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर का नाम तय करने का तरीका
ऊपर दिए गए वर्चुअल होस्ट के उदाहरण में, रेफ़रंस का इस्तेमाल करके कीस्टोर की जानकारी दी गई है. रेफ़रंस एक ऐसा वैरिएबल है जिसमें कीस्टोर का नाम शामिल होता है. इसमें कीस्टोर का नाम सीधे तौर पर नहीं दिया जाता.
रेफ़रंस का इस्तेमाल करने का फ़ायदा यह है कि वर्चुअल होस्ट के लिए इस्तेमाल किए जाने वाले कीस्टोर को बदलने के लिए, रेफ़रंस की वैल्यू बदली जा सकती है. आम तौर पर, ऐसा इसलिए किया जाता है, क्योंकि मौजूदा कीस्टोर में मौजूद सर्टिफ़िकेट की समयसीमा जल्द ही खत्म होने वाली होती है. रेफ़रंस की वैल्यू बदलने के लिए, Edge राऊटर को रीस्टार्ट करने की ज़रूरत नहीं होती.
इसके अलावा, वर्चुअल होस्ट में कीस्टोर के नाम के लिए लिटरल वैल्यू का इस्तेमाल किया जा सकता है. हालांकि, कीस्टोर का नाम बदलने के लिए, वर्चुअल होस्ट में बदलाव करने पर, आपको Edge राऊटर को रीस्टार्ट करना होगा.
कीस्टोर और ट्रस्टस्टोर के लिए रेफ़रंस का इस्तेमाल करने से जुड़ी पाबंदियां
कीस्टोर और ट्रस्टस्टोर के लिए रेफ़रंस का इस्तेमाल करते समय, आपको इन पाबंदियों को ध्यान में रखना होगा:
- वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर के रेफ़रंस का इस्तेमाल सिर्फ़ तब किया जा सकता है, जब SNI के साथ काम करने की सुविधा चालू हो और Apigee राऊटर पर एसएसएल को खत्म किया गया हो.
- अगर Apigee राऊटर के सामने लोड बैलेंसर मौजूद है और लोड बैलेंसर पर टीएलएस को खत्म किया गया है, तो वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर के रेफ़रंस का इस्तेमाल नहीं किया जा सकता.
कीस्टोर और ट्रस्टस्टोर के लिए रेफ़रंस का इस्तेमाल करने के लिए, मौजूदा वर्चुअल होस्ट में बदलाव करना
Apigee का सुझाव है कि वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर के लिए रेफ़रंस का इस्तेमाल किया जाए. रेफ़रंस की मदद से, Edge राऊटर को रीस्टार्ट किए बिना वर्चुअल होस्ट के लिए इस्तेमाल किए जाने वाले कीस्टोर और ट्रस्टस्टोर को बदला जा सकता है.
अगर आपके वर्चुअल होस्ट, फ़िलहाल कीस्टोर या ट्रस्टस्टोर के लिटरल नाम का इस्तेमाल करने के लिए कॉन्फ़िगर किए गए हैं, तो उन्हें रेफ़रंस का इस्तेमाल करने के लिए बदला जा सकता है. इसके लिए, वर्चुअल होस्ट को रेफ़रंस का इस्तेमाल करने के लिए अपडेट करें. इसके बाद, Edge राऊटर को रीस्टार्ट करें.
Edge के वर्शन 4.15.07 और इससे पहले के वर्शन के लिए, टीएलएस साइफ़र और प्रोटोकॉल सेट करना
अगर Edge के वर्शन 4.15.07 और इससे पहले के वर्शन का इस्तेमाल किया जा रहा है, तो वर्चुअल होस्ट के लिए इस्तेमाल किए जाने वाले टीएलएस प्रोटोकॉल और साइफ़र
सेट करने के लिए, <Ciphers> और <Protocols> चाइल्ड टैग का इस्तेमाल करें
<SSLInfo> टैग. इन टैग
के बारे में, यहां दी गई टेबल में बताया गया है.
उदाहरण के लिए:
<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 नाम का इस्तेमाल किया जाता है. उदाहरण के लिए, Java 8 के लिए
http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites देखें.
Edge के वर्शन 4.16.01 से 4.16.09 के लिए, टीएलएस साइफ़र और प्रोटोकॉल तय करना
Edge के वर्शन 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) - एमडी5 (
!MD5) का इस्तेमाल करने वाले साइफ़र सुइट शामिल न किए जाएं - डीएच (जिसमें एनॉनिमस डीएच, इफ़ेमरल डीएच, और फ़िक्स्ड डीएच शामिल हैं) और
ट्रिपल डीईएस (
!DH+3DES) का इस्तेमाल करने वाले साइफ़र सुइट शामिल न किए जाएं - आरएसए की एक्सचेंज और ट्रिपल डीईएस (
!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
- Edge राऊटर को रीस्टार्ट करें:
/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
Edge के वर्शन 4.17.01 और इसके बाद के वर्शन के लिए, टीएलएस वर्चुअल होस्ट के पैरामीटर सेट करना
अगर Edge के वर्शन 4.17.01 और इसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो किसी वर्चुअल होस्ट के लिए, टीएलएस की कुछ प्रॉपर्टी सेट की जा सकती हैं. जैसे, टीएलएस प्रोटोकॉल और साइफ़र. इसके लिए, <Properties> टैग के चाइल्ड टैग <VirtualHost>
का इस्तेमाल करें. इन टैग के बारे में, वर्चुअल होस्ट की प्रॉपर्टी के रेफ़रंस में बताया गया है.
उदाहरण के लिए:
<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.
एचटीटीपीएस का इस्तेमाल करने वाला वर्चुअल होस्ट बनाना
इस उदाहरण में, रेफ़रंस का इस्तेमाल करके वर्चुअल होस्ट के लिए कीस्टोर की जानकारी दी गई है. रेफ़रंस का इस्तेमाल करने से, राऊटर को रीस्टार्ट किए बिना कीस्टोर को बदला जा सकता है.
वर्चुअल होस्ट बनाने के लिए, यह तरीका अपनाएं:
- यहां बताए गए तरीके का इस्तेमाल करके, myTestKeystore नाम का कीस्टोर बनाएं और उसे कॉन्फ़िगर करें: कीस्टोर और ट्रस्टस्टोर. पक्का करें कि कीस्टोर में, सर्टिफ़िकेट और प्राइवेट की (निजी पासकोड) के लिए myKeyAlias एलियास नाम का इस्तेमाल किया गया हो.
-
ऊपर बनाए गए कीस्टोर के लिए, keystoreref नाम का रेफ़रंस बनाने के लिए, यहां दिया गया POST एपीआई कॉल इस्तेमाल करें:
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 एपीआई कॉल इस्तेमाल करें:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password वर्चुअल होस्ट बनाने के लिए, वर्चुअल होस्ट बनाएं एपीआई का इस्तेमाल करें. इसमें
<ms-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- वर्चुअल होस्ट के लिए एक डीएनएस रिकॉर्ड बनाएं. यह रिकॉर्ड, होस्ट एलियास से मेल खाना चाहिए.
अगर आपके पास कोई मौजूदा एपीआई प्रॉक्सी है, तो ProxyEndpoint में मौजूद
<HTTPConnection>एलिमेंट में वर्चुअल होस्ट जोड़ें. सभी नई एपीआई प्रॉक्सी में, वर्चुअल होस्ट अपने-आप जुड़ जाता है.वर्चुअल होस्ट के बारे में जानकारी में, वर्चुअल होस्ट बनाने के बाद एपीआई प्रॉक्सी को अपडेट करना लेख पढ़ें.
वर्चुअल होस्ट का इस्तेमाल करने के लिए, एपीआई प्रॉक्सी को अपडेट करने और होस्ट एलियास के लिए डीएनएस रिकॉर्ड बनाने के बाद, एपीआई प्रॉक्सी को यहां दिखाए गए तरीके से ऐक्सेस किया जा सकता है:
https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}उदाहरण के लिए:
https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282
कीस्टोर या ट्रस्टस्टोर के लिए रेफ़रंस बनाना और उनमें बदलाव करना
वर्चुअल होस्ट को, कीस्टोर या ट्रस्टस्टोर के रेफ़रंस का इस्तेमाल करने के लिए भी कॉन्फ़िगर किया जा सकता है. रेफ़रंस का इस्तेमाल करने का फ़ायदा यह है कि टीएलएस सर्टिफ़िकेट को अपडेट करने के लिए, रेफ़रंस को किसी दूसरे कीस्टोर या ट्रस्टस्टोर पर पॉइंट करने के लिए अपडेट किया जा सकता है. इसके लिए, राऊटर को रीस्टार्ट करने की ज़रूरत नहीं होती.
उदाहरण के लिए, यहां एक ऐसा वर्चुअल होस्ट दिखाया गया है जो कीस्टोर के लिए रेफ़रंस का इस्तेमाल करता है:
<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 एपीआई कॉल इस्तेमाल करें:
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 एपीआई कॉल इस्तेमाल करें:
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