Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
सर्वर नेम इंडिकेशन (एसएनआई) की मदद से, एक ही आईपी पते और पोर्ट से कई एचटीटीपीएस टारगेट दिखाए जा सकते हैं. इसके लिए, टारगेट को एक ही टीएलएस सर्टिफ़िकेट का इस्तेमाल करने की ज़रूरत नहीं होती. जब किसी क्लाइंट पर एसएनआई चालू होता है, तो क्लाइंट शुरुआती टीएलएस हैंडशेक के हिस्से के तौर पर, टारगेट एंडपॉइंट का होस्टनेम पास करता है. इससे टीएलएस सर्वर यह तय कर पाता है कि अनुरोध की पुष्टि करने के लिए, किस टीएलएस सर्टिफ़िकेट का इस्तेमाल किया जाना चाहिए.
उदाहरण के लिए, अगर अनुरोध का टारगेट https://example.com/request/path
है, तो TLS क्लाइंट, TLS हैंडशेक अनुरोध में server_name
एक्सटेंशन जोड़ता है, जैसा कि यहां दिखाया गया है:
Edge इनके लिए SNI की सुविधा देता है:
- किसी क्लाइंट ऐप्लिकेशन से एपीआई प्रॉक्सी को किए गए अनुरोध. इस स्थिति में, Edge, TLS सर्वर के तौर पर काम करता है
- Edge से बैकएंड को किए गए अनुरोध. इस स्थिति में, Edge, टीएलएस क्लाइंट के तौर पर काम करता है.
एसएनआई के बारे में ज़्यादा जानकारी के लिए, यहां देखें:
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
Edge पर एपीआई प्रॉक्सी के अनुरोध के लिए, एसएनआई का इस्तेमाल करना
एपीआई प्रॉक्सी के अनुरोधों के लिए, SNI की सुविधा को होस्ट के उपनाम और वर्चुअल होस्ट से कंट्रोल किया जाता है.
वर्चुअल होस्ट और होस्ट के उपनाम के बारे में जानकारी
Edge में, वर्चुअल होस्ट, उस आईपी पते और पोर्ट या डीएनएस नेम और पोर्ट की जानकारी देता है जिस पर एपीआई प्रॉक्सी को एक्सपोज़ किया जाता है. साथ ही, यह उस यूआरएल की जानकारी भी देता है जिसका इस्तेमाल ऐप्लिकेशन, एपीआई प्रॉक्सी को ऐक्सेस करने के लिए करते हैं. आईपी पता/डीएनएस नेम, एज राऊटर से जुड़ा होता है. साथ ही, पोर्ट नंबर, राऊटर पर मौजूद एक ओपन पोर्ट होता है.
वर्चुअल होस्ट बनाते समय, आपको वर्चुअल होस्ट का होस्ट उपनाम भी बताना होगा.
आम तौर पर, यह वर्चुअल होस्ट का डीएनएस नेम होता है. अनुरोध को मैनेज करने वाली एपीआई प्रॉक्सी का पता लगाने के लिए, राउटर, आने वाले अनुरोध के Host
हेडर की तुलना, सभी वर्चुअल होस्ट के तय किए गए उपलब्ध होस्ट के उपनामों की सूची से करता है.
वर्चुअल होस्ट के लिए, होस्ट के उपनाम और पोर्ट नंबर का कॉम्बिनेशन, Edge इंस्टॉलेशन में मौजूद सभी वर्चुअल होस्ट के लिए यूनीक होना चाहिए. इसका मतलब है कि अगर एक से ज़्यादा वर्चुअल होस्ट के पास अलग-अलग होस्ट के उपनाम हैं, तो वे एक ही पोर्ट नंबर का इस्तेमाल कर सकते हैं.
वर्चुअल होस्ट यह भी तय करता है कि एपीआई प्रॉक्सी को एचटीटीपी प्रोटोकॉल का इस्तेमाल करके ऐक्सेस किया जाएगा या TLS का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) किए गए एचटीटीपीएस प्रोटोकॉल का इस्तेमाल करके. एचटीटीपीएस का इस्तेमाल करने के लिए वर्चुअल होस्ट को कॉन्फ़िगर करते समय, वर्चुअल होस्ट को उस पासकोड से जोड़ें जिसमें सर्टिफ़िकेट और निजी पासकोड हो. इनका इस्तेमाल, वर्चुअल होस्ट, टीएलएस हैंडशेक के दौरान करता है.
वर्चुअल होस्ट के बारे में ज़्यादा जानकारी के लिए, ये लेख पढ़ें:
- वर्चुअल होस्ट के बारे में जानकारी
- निजी क्लाउड के लिए, एपीआई का TLS ऐक्सेस कॉन्फ़िगर करना
- कीस्टोर और ट्रस्टस्टोर
होस्ट के उपनामों के साथ एसएनआई कैसे काम करता है
एसएनआई की मदद से, एक ही पोर्ट पर कई वर्चुअल होस्ट तय किए जा सकते हैं. हर वर्चुअल होस्ट के लिए, अलग-अलग
TLS सर्टिफ़िकेट और पासकोड इस्तेमाल किए जा सकते हैं. इसके बाद, Edge, वर्चुअल होस्ट और TLS के इस्तेमाल किए गए सर्टिफ़िकेट/कुंजी के जोड़े का पता लगाता है. यह पता लगाने के लिए, वह TLS हैंडशेक अनुरोध में मौजूद server_name
एक्सटेंशन का इस्तेमाल करता है.
एज राउटर, TLS हैंडशेक के अनुरोध में server_name
एक्सटेंशन को पढ़ता है. इसके बाद, सभी वर्चुअल होस्ट के होस्ट के उपनाम के हिसाब से खोजने के लिए इसका इस्तेमाल करता है. अगर राउटर को होस्ट के किसी उपनाम से मैच मिलता है, तो राउटर, होस्ट के उपनाम से जुड़े वर्चुअल होस्ट के TLS सर्टिफ़िकेट और पासकोड का इस्तेमाल करता है. अगर कोई मैच नहीं मिलता है, तो TLS हैंडशेक नहीं हो पाता.
TLS हैंडशेक के पूरा न होने के बजाय, अगले सेक्शन में बताए गए तरीके से डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी जोड़ी तय की जा सकती है.
Edge for the Cloud में डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी जोड़े को तय करना
Apigee, एचटीटीपीएस के साथ काम करने के लिए टीएलएस सर्टिफ़िकेट और निजी पासकोड उपलब्ध कराता है. कई ग्राहक, डिप्लॉयमेंट के समय अपने सर्टिफ़िकेट और निजी कुंजी का इस्तेमाल करना पसंद करते हैं. हालांकि, Apigee के सर्टिफ़िकेट और कुंजी का इस्तेमाल करके भी अपने एपीआई डिप्लॉय किए जा सकते हैं.
अगर Edge for the Cloud में, राउटर एसएनआई हेडर को होस्ट के किसी उपनाम से मैच नहीं कर पाता है या क्लाइंट में एसएनआई की सुविधा काम नहीं करती है, तो राउटर Apigee के दिए गए डिफ़ॉल्ट सर्टिफ़िकेट का इस्तेमाल करता है. यह सर्टिफ़िकेट *.apigee.net होता है.
Private Cloud के लिए Edge में डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी जोड़ा जा रहा है
अगर निजी क्लाउड के लिए Edge में, server_name
एक्सटेंशन और सभी वर्चुअल होस्ट के होस्ट के उपनाम के बीच कोई मैच नहीं मिलता है या अनुरोध करने वाला क्लाइंट एसएनआई के साथ काम नहीं करता है, तो पोर्ट पर डिफ़ॉल्ट वर्चुअल होस्ट से सर्टिफ़िकेट/कुंजी का इस्तेमाल करने के लिए, राउटर को कॉन्फ़िगर किया जा सकता है. डिफ़ॉल्ट वर्चुअल होस्ट को, संगठन के नाम, एनवायरमेंट के नाम, और वर्चुअल होस्ट के नाम के कॉम्बिनेशन से तय किया जाता है. यह कॉम्बिनेशन इस फ़ॉर्मैट में होता है:
orgName_envName_vhName
राउटर, orgName_envName_vhName के उस कॉम्बिनेशन के सर्टिफ़िकेट/कुंजी का इस्तेमाल करता है जो अंग्रेज़ी के वर्णमाला के क्रम में सबसे पहले आता है. उदाहरण के लिए, अनुरोध पोर्ट 443 पर आता है और prod
एनवायरमेंट में, संगठन example
के लिए दो वर्चुअल होस्ट तय किए गए हैं:
- वर्चुअल होस्ट नेम =
default
- वर्चुअल होस्ट नेम =
test
इस उदाहरण में, राउटर default
नाम वाले वर्चुअल होस्ट के सर्टिफ़िकेट/कुंजी का इस्तेमाल करता है
क्योंकि वर्णमाला के क्रम में 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. 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
में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.- डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी की जानकारी देने के लिए, फ़ाइल में ये प्रॉपर्टी जोड़ें:
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 से बैकएंड के लिए अनुरोधों के लिए, एसएनआई की सुविधा
Edge, Cloud और Private Cloud डिप्लॉयमेंट के लिए, Apigee Edge में एंडपॉइंट को टारगेट करने के लिए, मैसेज प्रोसेसर से एसएनआई का इस्तेमाल करता है. डिफ़ॉल्ट रूप से, क्लाउड के लिए एज मैसेज प्रोसेसर पर एसएनआई चालू होता है और निजी क्लाउड में बंद होता है.
प्राइवेट क्लाउड के लिए Edge में, बैकएंड के लिए एसएनआई का इस्तेमाल करना
प्राइवेट क्लाउड के लिए Edge, मौजूदा टारगेट बैकएंड के साथ काम करे, इसके लिए Apigee ने डिफ़ॉल्ट रूप से एसएनआई को बंद कर दिया है. अगर आपका टारगेट बैकएंड, एसएनआई के साथ काम करने के लिए कॉन्फ़िगर किया गया है, तो Edge के अपने वर्शन के लिए, नीचे बताए गए तरीके से इस सुविधा को चालू किया जा सकता है.
Edge के लिए, किसी अन्य कॉन्फ़िगरेशन की ज़रूरत नहीं है. अगर आपका टारगेट एनवायरमेंट, SNI के लिए कॉन्फ़िगर किया गया है, तो Edge पर यह सुविधा काम करती है. Edge, अनुरोध यूआरएल से होस्टनेम को अपने-आप निकालता है और उसे टीएलएस हैंडशेक अनुरोध में जोड़ता है.
Edge के 4.15.07.0x वर्शन के लिए, Edge और बैकएंड के बीच एसएनआई चालू करना
एसएनआई चालू करने के लिए, यह तरीका अपनाएं:
- पहले मैसेज प्रोसेसर नोड पर, एडिटर में फ़ाइल
/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 और बैकएंड के बीच एसएनआई चालू करना
एसएनआई चालू करने के लिए, यह तरीका अपनाएं:
- मैसेज प्रोसेसर के पहले नोड में,
/opt/apigee/customer/application/message-processor.properties
में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं. - फ़ाइल में यह प्रॉपर्टी जोड़ें:
conf_system_jsse.enableSNIExtension=true
- मैसेज प्रोसेसर को रीस्टार्ट करें:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- बाकी बचे सभी मैसेज प्रोसेसर पर यह तरीका दोहराएं.