Edge मैसेज प्रोसेसर और बैकएंड सर्वर के बीच, SNI को कॉन्फ़िगर किया जा रहा है

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

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

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

इस दस्तावेज़ में, ये काम करने का तरीका बताया गया है:

शुरू करने से पहले

SNI की सुविधा वाले सर्वर की पहचान करना

इस सेक्शन में, यह पता लगाने का तरीका बताया गया है कि बैकएंड सर्वर पर एसएनआई की सुविधा चालू है या नहीं.

  1. openssl कमांड चलाएं और सर्वर के काम के होस्टनेम (एज राउटर या बैकएंड सर्वर) से कनेक्ट करने की कोशिश करें. इसके लिए, सर्वर का नाम न डालें. ऐसा नीचे दिए गए तरीके से करें:
    openssl s_client -connect hostname:port
  2. आपको सर्टिफ़िकेट मिल सकते हैं. हालांकि, कभी-कभी आपको openssl कमांड में हैंडशेक फ़ेल होने की समस्या दिख सकती है. जैसा कि यहां दिखाया गया है:
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
  3. openssl कमांड चलाएं और नीचे दिए गए तरीके से, सर्वर का नाम पास करके, Edge राउटर या बैकएंड सर्वर जैसे काम के सर्वर होस्टनेम से कनेक्ट करने की कोशिश करें:
    openssl s_client -connect hostname:port -servername hostname
  4. अगर आपको पहले चरण में हैंडशेक की गड़बड़ी मिलती है या पहले और दूसरे चरण में अलग-अलग सर्टिफ़िकेट मिलते हैं, तो इसका मतलब है कि बताए गए सर्वर पर एसएनआई की सुविधा चालू है.
  5. अगर आपको एक से ज़्यादा बैकएंड सर्वर के लिए इसकी पुष्टि करनी है, तो आपको हर बैकएंड सर्वर के लिए ऊपर दिए गए चरणों को दोहराना होगा.

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

Edge Message Processor और बैकएंड सर्वर के बीच एसएनआई चालू करें

इस सेक्शन में, Edge Message Processor और बैकएंड सर्वर के बीच SNI चालू करने का तरीका बताया गया है. एसएनआई को, मैसेज प्रोसेसर कॉम्पोनेंट पर मौजूद प्रॉपर्टी jsse.enableSNIExtension के ज़रिए चालू किया जा सकता है. मैसेज प्रोसेसर पर किसी भी प्रॉपर्टी को कॉन्फ़िगर करने के लिए, Edge को कॉन्फ़िगर करने का तरीका में बताए गए सिंटैक्स के मुताबिक टोकन का इस्तेमाल करें.

मैसेज प्रोसेसर पर SNI चालू करने के लिए, यह तरीका अपनाएं:

  1. jsse.enableSNIExtension प्रॉपर्टी के लिए टोकन ढूंढना
  2. मैसेज प्रोसेसर पर SNI चालू करना

jsse.enableSNIExtension प्रॉपर्टी के लिए टोकन ढूंढना

jsse.enableSNIExtension प्रॉपर्टी के लिए टोकन ढूंढने का तरीका यहां बताया गया है:

  1. नीचे दिए गए निर्देश का इस्तेमाल करके, Message Processor के सोर्स डायरेक्ट्री /opt/apigee/edge-message-processor/source में jsse.enableSNIExtension प्रॉपर्टी खोजें:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. इस कमांड का आउटपुट, मैसेज प्रोसेसर की प्रॉपर्टी jsse.enableSNIExtension के लिए टोकन दिखाता है. यह इस तरह दिखता है:
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    यहां {T}{/T} टैग के बीच की स्ट्रिंग, उस टोकन का नाम है जिसे Message Processor की .properties फ़ाइल में सेट किया जा सकता है.

    इसलिए, jsse.enableSNIExtension प्रॉपर्टी के लिए टोकन यह है:

    conf_system_jsse.enableSNIExtension

मैसेज प्रोसेसर पर SNI चालू करें

Apigee Message Processor कॉम्पोनेंट पर SNI चालू करने का तरीका यहां बताया गया है.

  1. मैसेज प्रोसेसर मशीन पर, एडिटर में यह फ़ाइल खोलें. अगर यह पहले से मौजूद नहीं है, तो इसे बनाएं.
    /opt/apigee/customer/application/message-processor.properties

    उदाहरण के लिए, vi का इस्तेमाल करके फ़ाइल खोलने के लिए, यह कमांड डालें:

    vi /opt/apigee/customer/application/message-processor.properties
  2. प्रॉपर्टी फ़ाइल में, इस फ़ॉर्मैट में एक लाइन जोड़ें:
    conf_system_jsse.enableSNIExtension=true
  3. बदलावों को सेव करें.
  4. पक्का करें कि इस प्रॉपर्टी फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. इसके बारे में यहां बताया गया है:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. पुष्टि करें कि मैसेज प्रोसेसर पर एसएनआई कॉन्फ़िगरेशन अपडेट हो गया है.
  7. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.

Edge Message Processors और बैकएंड सर्वर के बीच एसएनआई बंद करें

आम तौर पर, SNI चालू करने के बाद आपको कोई समस्या नहीं दिखनी चाहिए. हालांकि, अगर एसएनआई चालू करने के बाद, आपको Edge Message Processor और बैकएंड सर्वर के बीच कनेक्टिविटी से जुड़ी कोई समस्या दिखती है, तो एसएनआई को कभी भी बंद किया जा सकता है. इसके लिए, यह तरीका अपनाएं.

SNI को बंद करने के लिए, Message Processor कॉम्पोनेंट पर jsse.enableSNIExtension प्रॉपर्टी को वापस false पर सेट करें.

मैसेज प्रोसेसर पर SNI बंद करना

Apigee Message Processors पर SNI को बंद करने का तरीका यहां बताया गया है.

  1. मैसेज प्रोसेसर मशीन पर, इस फ़ाइल को किसी एडिटर में खोलें. अगर यह पहले से मौजूद नहीं है, तो इसे बनाएं.
    /opt/apigee/customer/application/message-processor.properties

    उदाहरण के लिए, vi का इस्तेमाल करके फ़ाइल खोलने के लिए, यह कमांड डालें:

    vi /opt/apigee/customer/application/message-processor.properties
  2. अगर conf_system_jsse.enableSNIExtension=true लाइन /opt/apigee/customer/application/message-processor.properties में मौजूद है, तो इसमें इस तरह बदलाव करें:
    conf_system_jsse.enableSNIExtension=false
  3. बदलावों को सेव करें.
  4. पक्का करें कि इस प्रॉपर्टी फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. इसके बारे में यहां बताया गया है:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. पुष्टि करें कि मैसेज प्रोसेसर पर एसएनआई कॉन्फ़िगरेशन अपडेट हो गया है.
  7. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.

मैसेज प्रोसेसर पर एसएनआई कॉन्फ़िगरेशन की पुष्टि करना

इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि मैसेज प्रोसेसर पर SNI कॉन्फ़िगरेशन अपडेट हो गया है.

आपने मैसेज प्रोसेसर पर एसएनआई को कॉन्फ़िगर करने के लिए, टोकन conf_system_jsse.enableSNIExtension का इस्तेमाल किया है. हालांकि, आपको यह पुष्टि करनी होगी कि नई वैल्यू के साथ असली प्रॉपर्टी jsse.enableSNIExtension सेट की गई है.

  1. Message Processor मशीन पर, /opt/apigee/edge-message-processor/conf डायरेक्ट्री में jsse.enableSNIExtension प्रॉपर्टी खोजें. इसके बाद, देखें कि इसे नीचे दिखाए गए तरीके से नई वैल्यू के साथ सेट किया गया है या नहीं:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. अगर मैसेज प्रोसेसर पर एसएनआई कॉन्फ़िगरेशन को अपडेट कर दिया जाता है, तो ऊपर दिया गया कमांड, system.properties फ़ाइल में नई वैल्यू दिखाता है.

    मैसेज प्रोसेसर पर एसएनआई चालू करने के बाद, ऊपर दिए गए निर्देश का सैंपल नतीजा यहां दिया गया है:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    इसी तरह, मैसेज प्रोसेसर पर एसएनआई बंद करने के बाद, ऊपर दिए गए निर्देश का सैंपल नतीजा यहां दिया गया है:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    ऊपर दिए गए उदाहरण के आउटपुट में ध्यान दें कि प्रॉपर्टी jsse.enableSNIExtension को system.properties में नई वैल्यू true या false के तौर पर अपडेट किया गया है. इससे पता चलता है कि मैसेज प्रोसेसर पर SNI चालू या बंद हो गया है.

  3. अगर आपको अब भी प्रॉपर्टी jsse.enableSNIExtension के लिए पुरानी वैल्यू दिख रही है, तो पुष्टि करें कि आपने एसएनआई को सही तरीके से चालू या बंद करने के लिए, सही सेक्शन में बताए गए सभी चरणों का पालन किया हो. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को फिर से सही तरीके से दोहराएं.
  4. अगर अब भी एसएनआई चालू/बंद नहीं हो पा रहा है , तो Apigee Edge की सहायता टीम से संपर्क करें.