मैनेजमेंट एपीआई के लिए 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 के लिए टीएलएस ऐक्सेस कॉन्फ़िगर करने के लिए:

  1. अपने TLS सर्टिफ़िकेशन और निजी कुंजी वाली कीस्टोर JKS फ़ाइल जनरेट करें. ज़्यादा जानकारी के लिए, ऑन-प्राइमिस Edge के लिए टीएलएस/एसएसएल कॉन्फ़िगर करना लेख पढ़ें.
  2. पासकोड वाली JKS फ़ाइल को मैनेजमेंट सर्वर नोड की किसी डायरेक्ट्री में कॉपी करें, जैसे कि /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 मैनेजमेंट सर्वर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Edge यूज़र इंटरफ़ेस (यूआई) के लिए, यह प्रॉपर्टी सेट करने के लिए /opt/apigee/customer/application/ui.properties में बदलाव करें:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

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

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

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

    ऐसा न करने पर, Edge यूज़र इंटरफ़ेस (यूआई) खुद हस्ताक्षर किए गए सर्टिफ़िकेट को अस्वीकार कर देगा.

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

FIPS की सुविधा वाले ऑपरेटिंग सिस्टम के लिए PKCS12 कीस्टोर का इस्तेमाल करना

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

conf/webserver.properties+keystore.type=PKCS12

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

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

नीचे दी गई टेबल में उन सभी TLS/एसएसएल प्रॉपर्टी की सूची दी गई है जिन्हें 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

https के साथ-साथ http को चालू/बंद करने के लिए. अगर आपको सिर्फ़ एचटीटीपीएस का इस्तेमाल करना है, तो डिफ़ॉल्ट वैल्यू को 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/एसएसएल सेशन कितने समय तक चल सकते हैं (मिलीसेकंड में).