मैनेजमेंट एपीआई के लिए TLS कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, मैनेजमेंट एपीआई के लिए TLS बंद रहता है. साथ ही, मैनेजमेंट सर्वर नोड के आईपी पते और पोर्ट 8080 का इस्तेमाल करके, एज मैनेजमेंट एपीआई को एचटीटीपी के ज़रिए ऐक्सेस किया जाता है. उदाहरण के लिए:

http://ms_IP:8080

इसके अलावा, मैनेजमेंट एपीआई के लिए TLS ऐक्सेस को कॉन्फ़िगर किया जा सकता है, ताकि इसे इस फ़ॉर्म में ऐक्सेस किया जा सके:

https://ms_IP:8443

इस उदाहरण में, पोर्ट 8443 का इस्तेमाल करने के लिए, टीएलएस ऐक्सेस को कॉन्फ़िगर किया गया है. हालांकि, Edge को उस पोर्ट नंबर की ज़रूरत नहीं है - मैनेजमेंट सर्वर को कॉन्फ़िगर करके, पोर्ट की अन्य वैल्यू का इस्तेमाल किया जा सकता है. सिर्फ़ शर्त यह है कि आपका फ़ायरवॉल, बताए गए पोर्ट पर ट्रैफ़िक की अनुमति देता हो.

अपने मैनेजमेंट एपीआई से आने और जाने वाले ट्रैफ़िक को एन्क्रिप्ट (सुरक्षित) करने के लिए, /opt/apigee/customer/application/management-server.properties फ़ाइल में सेटिंग कॉन्फ़िगर करें.

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

पक्का करें कि आपका TLS पोर्ट खुला हो

इस सेक्शन में दिया गया तरीका, मैनेजमेंट सर्वर पर पोर्ट 8443 का इस्तेमाल करने के लिए, TLS को कॉन्फ़िगर करता है. चाहे किसी भी पोर्ट का इस्तेमाल किया जा रहा हो, आपको यह पक्का करना होगा कि पोर्ट, मैनेजमेंट प्लैटफ़ॉर्म पर खुला हो सर्वर. उदाहरण के लिए, इसे खोलने के लिए, इस निर्देश का इस्तेमाल किया जा सकता है:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

TLS कॉन्फ़िगर करना

अपने मैनेजमेंट एपीआई से आने और जाने वाले ट्रैफ़िक पर, TLS के इस्तेमाल को कंट्रोल करने के लिए, /opt/apigee/customer/application/management-server.properties फ़ाइल में बदलाव करें. अगर यह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.

Management API में TLS का ऐक्सेस कॉन्फ़िगर करने के लिए:

  1. TLS सर्टिफ़िकेट और निजी पासकोड वाली कीस्टोर JKS फ़ाइल जनरेट करें. ज़्यादा जानकारी के लिए, ऑन-प्राइमिस Edge के लिए टीएलएस/एसएसएल कॉन्फ़िगर करना लेख पढ़ें.
  2. कीस्टोर JKS फ़ाइल को Management Server नोड पर किसी डायरेक्ट्री में कॉपी करें, जैसे /opt/apigee/customer/application के तौर पर.
  3. JKS फ़ाइल का मालिकाना हक, "apigee" उपयोगकर्ता को दें:
    chown apigee:apigee keystore.jks

    यहां keystore.jks, आपकी पासकोड फ़ाइल का नाम है.

  4. /opt/apigee/customer/application/management-server.properties में बदलाव करें नीचे दी गई प्रॉपर्टी को सेट करने के लिए. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    जहां keyStore.jks आपकी कीस्टोर फ़ाइल है, और obfuscatedPassword आपका उलझा हुआ कीस्टोर पासवर्ड है. गुप्त पासवर्ड जनरेट करने के बारे में जानकारी पाने के लिए, Edge On Premises के लिए टीएलएस/एसएसएल कॉन्फ़िगर करना देखें.

  5. इस कमांड का इस्तेमाल करके, Edge Management Server को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

मैनेजमेंट एपीआई अब TLS पर ऐक्सेस करने की सुविधा देता है.

Edge एपीआई को ऐक्सेस करने के लिए, TLS का इस्तेमाल करने के लिए Edge यूज़र इंटरफ़ेस (यूआई) को कॉन्फ़िगर करना

ऊपर दिए गए तरीके में, Apigee ने conf_webserver_http.turn.off=false को छोड़ने का सुझाव दिया है, ताकि Edge यूज़र इंटरफ़ेस (यूआई), एचटीटीपी के ज़रिए Edge API कॉल करना जारी रख सके.

Edge यूज़र इंटरफ़ेस (यूआई) को सिर्फ़ एचटीटीपीएस पर कॉल करने के लिए कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. ऊपर बताए गए तरीके से, मैनेजमेंट एपीआई के लिए TLS ऐक्सेस कॉन्फ़िगर करें.
  2. यह पुष्टि करने के बाद कि TLS, मैनेजमेंट एपीआई के लिए काम कर रहा है, नीचे दी गई प्रॉपर्टी को सेट करने के लिए /opt/apigee/customer/application/management-server.properties में बदलाव करें:
    conf_webserver_http.turn.off=true
  3. यह कमांड चलाकर, Edge Management Server को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. /opt/apigee/customer/application/ui.properties में बदलाव करें एज यूज़र इंटरफ़ेस (यूआई) के लिए नीचे दी गई प्रॉपर्टी सेट करने के लिए:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    यहां FQ_domain_name, मैनेजमेंट सर्वर के सर्टिफ़िकेट के पते के हिसाब से, डोमेन का पूरा नाम है और port, ऊपर बताए गए conf_webserver_ssl.port पोर्ट है.

    अगर ui.properties मौजूद नहीं है, तो उसे बनाएं.

  5. सिर्फ़ तब, जब आपने खुद हस्ताक्षर किए हुए सर्टिफ़िकेट का इस्तेमाल किया हो (प्रोडक्शन में इसका सुझाव नहीं दिया जाता) एनवायरमेंट) में, ऊपर दिए गए मैनेजमेंट एपीआई के लिए TLS के ऐक्सेस को कॉन्फ़िगर करते समय, प्रॉपर्टी को ui.properties के लिए अपडेट किया जा रहा है:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    ऐसा न करने पर, Edge UI, खुद हस्ताक्षर किए हुए सर्टिफ़िकेट को अस्वीकार कर देगा.

  6. नीचे दिए गए निर्देश को लागू करके, Edge यूज़र इंटरफ़ेस (यूआई) को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

एफ़आईपीएस की सुविधा वाले ऑपरेटिंग सिस्टम के लिए, PKCS12 पासकोड स्टोर का इस्तेमाल करना

अगर एफ़आईपीएस की सुविधा वाले ऑपरेटिंग सिस्टम पर प्राइवेट क्लाउड के लिए Edge इस्तेमाल किया जा रहा है, तो आपको PKCS12 कीस्टोर का इस्तेमाल करना होगा. एफ़आईपीएस के मानकों का पालन करने के लिए यह ज़रूरी है. इस लेख में बताए गए अन्य स्टैंडर्ड कॉन्फ़िगरेशन के अलावा, अपनी management-server.properties फ़ाइल में ये कॉन्फ़िगरेशन जोड़ें:

conf/webserver.properties+keystore.type=PKCS12

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

मैनेजमेंट सर्वर के लिए TLS प्रॉपर्टी

नीचे दी गई टेबल में, उन सभी TLS/SSL प्रॉपर्टी की सूची दी गई है जिन्हें management-server.properties में सेट किया जा सकता है:

प्रॉपर्टी ब्यौरा

conf_webserver_http.port=8080

डिफ़ॉल्ट संख्या 8080 है.

conf_webserver_ssl.enabled=false

TLS/SSL को चालू/बंद करने के लिए. TLS/SSL चालू (सही) होने पर, आपको ssl.port और keystore.path प्रॉपर्टी भी सेट करनी होंगी.

conf_webserver_http.turn.off=true

एचटीटीपीएस के साथ-साथ एचटीटीपी को चालू/बंद करने के लिए. अगर आपको सिर्फ़ एचटीटीपीएस का इस्तेमाल करना है, तो डिफ़ॉल्ट वैल्यू को true पर सेट करें.

conf_webserver_ssl.port=8443

TLS/SSL पोर्ट.

TLS/एसएसएल चालू होने पर ज़रूरी है (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

आपकी पासकोड फ़ाइल का पाथ.

TLS/एसएसएल चालू होने पर (conf_webserver_ssl.enabled=true) ज़रूरी है.

conf_webserver_keystore.password=password

इस फ़ॉर्मैट में अस्पष्ट पासवर्ड का इस्तेमाल करें: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

पासकोड के तौर पर इस्तेमाल होने वाले पासवर्ड का वैकल्पिक नाम

conf_webserver_keymanager.password=password

अगर आपके पासवर्ड मैनेजर में पासवर्ड है, तो इस फ़ॉर्मैट में पासवर्ड का बदला हुआ वर्शन डालें:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

अपने ट्रस्ट स्टोर की सेटिंग कॉन्फ़िगर करें. तय करें कि क्या आप सभी TLS/एसएसएल सर्टिफ़िकेट का इस्तेमाल करना. उदाहरण के लिए, नॉन-स्टैंडर्ड टाइप स्वीकार करने के लिए. डिफ़ॉल्ट रूप से, यह वैल्यू false होती है. अपने ट्रस्ट स्टोर का पाथ डालें और इस फ़ॉर्मैट में ट्रस्ट स्टोर का पासवर्ड डालें:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

आपको जिन सिफर सुइट को शामिल या बाहर करना है उन्हें चुनें. उदाहरण के लिए, अगर आपको किसी सिफर में कमज़ोरी का पता चलता है, तो उसे यहां शामिल न करें. एक से ज़्यादा साइफ़र को अलग करना कॉमा लगेगा.

ब्लैकलिस्ट की मदद से हटाए गए सभी सिफर, व्हाइटलिस्ट की मदद से शामिल किए गए सभी सिफर से ज़्यादा प्राथमिकता पाएंगे.

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

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

हालांकि, अगर आपने ब्लैकलिस्ट तय की है, तो यह फ़िल्टर बदल दिया जाता है. साथ ही, आपको सभी सिफर को अलग-अलग ब्लैकलिस्ट करना होगा.

साइफ़र सुइट और क्रिप्टोग्राफ़ी आर्किटेक्चर के बारे में जानने के लिए, यहां देखें JDK 8 के लिए, Java क्रिप्टोग्राफ़ी आर्किटेक्चर ओरेकल प्रोवाइडर दस्तावेज़.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

पूर्णांक, जो इन बातों को तय करते हैं:

  • कई क्लाइंट के लिए सेशन की जानकारी सेव करने के लिए, TLS/SSL सेशन कैश मेमोरी का साइज़ (बाइट में).
  • TLS/एसएसएल सेशन के खत्म होने से पहले इतना समय मिलीसेकंड).