Edge के साथ SNI का इस्तेमाल करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

सर्वर नेम इंंडिकेशन (एसएनआई) की मदद से, एक ही आईपी पते और पोर्ट पर कई एचटीटीपीएस टारगेट दिखाए जा सकते हैं. इसके लिए, उन टारगेट को एक ही TLS सर्टिफ़िकेट का इस्तेमाल करने की ज़रूरत नहीं होती. जब किसी क्लाइंट पर SNI चालू होता है, तो क्लाइंट शुरुआती TLS हैंडशेक के हिस्से के तौर पर टारगेट एंडपॉइंट का होस्टनेम पास करता है. इससे TLS सर्वर को यह तय करने में मदद मिलती है कि अनुरोध की पुष्टि करने के लिए, किस TLS सर्टिफ़िकेट का इस्तेमाल किया जाना चाहिए.

उदाहरण के लिए, अगर अनुरोध का टारगेट https://example.com/request/path है, तो TLS क्लाइंट, TLS हैंडशेक के अनुरोध में server_name एक्सटेंशन जोड़ देता है जैसा कि यहां दिखाया गया है:

Edge, SNI के साथ इन चीज़ों के साथ काम करता है:

  • क्लाइंट ऐप्लिकेशन से एपीआई प्रॉक्सी को किए जाने वाले अनुरोध. इस स्थिति में, Edge TLS सर्वर के तौर पर काम करता है
  • Edge से बैकएंड तक अनुरोध. इस स्थिति में, Edge TLS क्लाइंट के तौर पर काम करता है.

SNI पर अतिरिक्त जानकारी के लिए, देखें:

Edge पर एपीआई प्रॉक्सी से जुड़े अनुरोध के लिए SNI के साथ काम करता है

एपीआई प्रॉक्सी के अनुरोधों के लिए SNI सहायता को होस्ट उपनाम और वर्चुअल होस्ट से कंट्रोल किया जाता है.

वर्चुअल होस्ट और होस्ट के उपनाम के बारे में जानकारी

Edge के साथ, वर्चुअल होस्ट आईपी पता और पोर्ट या डीएनएस नाम और पोर्ट के बारे में बताता है, जिस पर एपीआई प्रॉक्सी दिखाई देता है. साथ ही, एक्सटेंशन वह यूआरएल होता है जिसका इस्तेमाल ऐप्लिकेशन, एपीआई प्रॉक्सी को ऐक्सेस करने के लिए करते हैं. आईपी पता/डीएनएस नाम किसी Edge राऊटर से जुड़ा होता है और पोर्ट नंबर, राऊटर पर एक ओपन पोर्ट होता है.

वर्चुअल होस्ट बनाते समय, आप वर्चुअल होस्ट का उपनाम भी तय करते हैं. आम तौर पर, यह वर्चुअल होस्ट का डीएनएस नाम होता है. अनुरोध को हैंडल करने वाले एपीआई प्रॉक्सी का पता लगाने के लिए, राऊटर Host हेडर की तुलना सभी वर्चुअल होस्ट की ओर से तय किए गए उपलब्ध होस्ट उपनाम की सूची से करता है.

वर्चुअल होस्ट के लिए होस्ट का उपनाम और पोर्ट नंबर, Edge इंस्टॉलेशन से जुड़े सभी वर्चुअल होस्ट के लिए यूनीक होना चाहिए. इसका मतलब है कि अगर कई वर्चुअल होस्ट के अलग-अलग होस्ट उपनाम हैं, तो वे एक ही पोर्ट नंबर का इस्तेमाल कर सकते हैं.

वर्चुअल होस्ट यह भी तय करता है कि एपीआई प्रॉक्सी को एचटीटीपी प्रोटोकॉल की मदद से ऐक्सेस किया जा सकता है या TLS का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) किए गए एचटीटीपीएस प्रोटोकॉल से. किसी वर्चुअल होस्ट को एचटीटीपीएस इस्तेमाल करने के लिए कॉन्फ़िगर करते समय, वर्चुअल होस्ट को कीस्टोर से जोड़ें. इस कीस्टोर में वह सर्टिफ़िकेट और निजी कुंजी होती है जिसका इस्तेमाल TLS हैंडशेकिंग के दौरान वर्चुअल होस्ट करता है.

वर्चुअल होस्ट के बारे में ज़्यादा जानकारी के लिए, देखें:

SNI, होस्ट के उपनामों के साथ कैसे काम करता है

SNI, आपको एक ही पोर्ट पर कई वर्चुअल होस्ट तय करने की अनुमति देता है. हर होस्ट के लिए, अलग-अलग TLS सर्टिफ़िकेट और पासकोड होते हैं. इसके बाद Edge, वर्चुअल होस्ट और TLS हैंडशेक के अनुरोध में server_name एक्सटेंशन के आधार पर इस्तेमाल किए जाने वाले सर्टिफ़िकेट/की पेयर को तय करता है.

Edge राऊटर, TLS हैंडशेक के अनुरोध में server_name एक्सटेंशन को पढ़ता है. इसके बाद, इसका इस्तेमाल सभी वर्चुअल होस्ट के होस्ट के उपनाम को खोजने के लिए करता है. अगर राऊटर, होस्ट उपनाम से मैच होने का पता लगाता है, तो राऊटर, होस्ट के उपनाम से जुड़े वर्चुअल होस्ट के TLS सर्टिफ़िकेट और कुंजी का इस्तेमाल करता है. अगर कोई मिलान नहीं मिलता, तो TLS हैंडशेकिंग नहीं हो पाता.

जैसा कि अगले सेक्शन में बताया गया है, टीएलएस हैंडशेक की सुविधा काम नहीं करती और डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी का जोड़ा तय किया जा सकता है.

Cloud के लिए Edge में डिफ़ॉल्ट सर्टिफ़िकेट/की का जोड़ा तय करना

एचटीटीपीएस पर काम करने के लिए, Apigee एक TLS सर्टिफ़िकेट और निजी कुंजी उपलब्ध कराता है. हालांकि, कई ग्राहक डिप्लॉयमेंट के समय अपने निजी सर्टिफ़िकेट और निजी पासकोड का इस्तेमाल करना चाहते हैं, लेकिन आपके पास एपीआई को डिप्लॉय करने का विकल्प है. इसके लिए, Apigee सर्टिफ़िकेट और कुंजी का इस्तेमाल किया जा सकता है.

EDGE में Cloud, अगर राऊटर, SNI हेडर से किसी होस्ट उपनाम से मैच नहीं कर पाता या क्लाइंट, SNI के साथ काम नहीं करता, तो राऊटर, Apigee से मिले डिफ़ॉल्ट सर्टिफ़िकेट का इस्तेमाल करता है, जो कि *.apigee.net है.

प्राइवेट क्लाउड के लिए Edge में डिफ़ॉल्ट सर्टिफ़िकेट/की पेयर को तय करना

ED for the Private Cloud में, अगर server_name एक्सटेंशन और सभी वर्चुअल होस्ट के होस्ट उपनाम के बीच कोई मिलान नहीं मिलता है या अनुरोध करने वाला क्लाइंट, SNI के साथ काम नहीं करता है, तो राऊटर को कॉन्फ़िगर करके, पोर्ट पर किसी डिफ़ॉल्ट वर्चुअल होस्ट से सर्टिफ़िकेट/कुंजी का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट वर्चुअल होस्ट को संगठन का नाम, एनवायरमेंट का नाम, और वर्चुअल होस्ट नेम के आधार पर इस फ़ॉर्म में तय किया जाता है:

orgName_envName_vhName

राऊटर, orgName_envName_vhName के कॉम्बिनेशन से मिले सर्टिफ़िकेट/कुंजी का इस्तेमाल करता है, जो वर्णमाला के क्रम में पहले आता है. उदाहरण के लिए, अनुरोध पोर्ट 443 पर आता है और prod एनवायरमेंट में, example संगठन के लिए दो वर्चुअल होस्ट तय किए जाते हैं:

  • वर्चुअल होस्ट नेम = default
  • वर्चुअल होस्ट नेम = test

इस उदाहरण में, राऊटर, default नाम के वर्चुअल होस्ट के सर्टिफ़िकेट/कुंजी का इस्तेमाल करता है, क्योंकि example_prod_default अंग्रेज़ी वर्णमाला के क्रम में example_prod_test से पहले आता है.

डिफ़ॉल्ट वर्चुअल होस्ट को चालू करने के लिए:

  1. पहले राऊटर नोड पर, /opt/apigee/customer/application/router.properties में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  2. फ़ाइल में नीचे दी गई प्रॉपर्टी जोड़ें, ताकि आप डिफ़ॉल्ट वर्चुअल होस्ट तय कर सकें:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. राऊटर रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. इन सभी राऊटर पर यही तरीका दोहराएं.

डिफ़ॉल्ट वर्चुअल होस्ट के सर्टिफ़िकेट/की का इस्तेमाल करने के बजाय, राऊटर पर साफ़ तौर पर डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी तय की जा सकती है. साफ़ तौर पर डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी का जोड़ा तय करने के लिए, नीचे दी गई प्रक्रिया का इस्तेमाल करें:

  1. पहले राऊटर नोड पर, सर्टिफ़िकेट और निजी कुंजी को राऊटर नोड पर किसी ऐसी जगह कॉपी करें जिसे apigee उपयोगकर्ता ऐक्सेस कर सके. उदाहरण के लिए, /opt/apigee/customer/application.
  2. फ़ाइलों का मालिकाना हक 'apigee. उपयोगकर्ता' को बदलें:
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. /opt/apigee/customer/application/router.properties में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  4. फ़ाइल में इन प्रॉपर्टी को जोड़ें, ताकि आप डिफ़ॉल्ट सर्टिफ़िकेट/कुंजी तय कर सकें:
    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
  5. सर्टिफ़िकेट और पासकोड की जगह बताने के लिए, 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
  6. राऊटर रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. इन सभी राऊटर पर यही तरीका दोहराएं.

Edge से बैकएंड में किए गए अनुरोधों के लिए, SNI के साथ काम करना

Edge, Cloud और निजी क्लाउड डिप्लॉयमेंट के लिए Apigee Edge में एंडपॉइंट को टारगेट करने के लिए, Message प्रोसेसर से SNI के इस्तेमाल की सुविधा देता है. डिफ़ॉल्ट रूप से, SNI, Edge के मैसेज प्रोसेसर पर क्लाउड के लिए चालू रहता है और प्राइवेट क्लाउड में बंद रहता है.

प्राइवेट क्लाउड के लिए, Edge में SNI का इस्तेमाल करके बैकएंड में

Edge for the Private Cloud के लिए, Apigee ने डिफ़ॉल्ट रूप से SNI बंद कर दिया है, ताकि वह मौजूदा टारगेट बैकएंड के साथ पुराने सिस्टम के साथ काम कर सके. अगर आपके टारगेट बैकएंड को एसएनआई के साथ काम करने के लिए कॉन्फ़िगर किया गया है, तो आपके पास इस सुविधा को अपने EDGE वर्शन के लिए नीचे बताए गए तरीके से चालू करने का विकल्प है.

किसी अन्य Edge के लिए खास कॉन्फ़िगरेशन की ज़रूरत नहीं है. अगर आपके टारगेट एनवायरमेंट को SNI के लिए कॉन्फ़िगर किया गया है, तो Edge उसके साथ काम करता है. Edge, अनुरोध के यूआरएल से अपने-आप होस्टनेम निकालता है और उसे TLS हैंडशेक के अनुरोध में जोड़ देता है.

Edge और 4.15.07.0x वर्शन के लिए बैकएंड के बीच SNI चालू करें

SNI को सक्षम करने के लिए निम्न प्रक्रिया का उपयोग करें:

  1. पहले मैसेज प्रोसेसर नोड पर, फ़ाइल /opt/apigee4/conf/apigee/message-processor/system.properties को किसी एडिटर में खोलें.
  2. system.properties में, इस प्रॉपर्टी को 'सही' पर सेट करें:
    jsse.enableSNIExtension=true
  3. मैसेज प्रोसेसर को रीस्टार्ट करें:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. ये चरण बाकी सभी मैसेज प्रोसेसर पर दोहराएं.

Edge 4.16.01 और उसके बाद के वर्शन के लिए, Edge और बैकएंड के बीच SNI चालू करें

SNI को सक्षम करने के लिए निम्न प्रक्रिया का उपयोग करें:

  1. पहले मैसेज प्रोसेसर नोड पर, /opt/apigee/customer/application/message-processor.properties में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  2. फ़ाइल में, यह प्रॉपर्टी जोड़ें:
    conf_system_jsse.enableSNIExtension=true
  3. मैसेज प्रोसेसर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. ये चरण बाकी सभी मैसेज प्रोसेसर पर दोहराएं.