मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के लिए TLS कॉन्फ़िगर करना

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

http://ms_IP:9000

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

https://ms_IP:9443

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

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

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

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

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

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

  1. अपना TLS सर्टिफ़िकेट और निजी पासकोड वाली पासकोस्ट JKS फ़ाइल जनरेट करें और उसे मैनेजमेंट सर्वर नोड पर कॉपी करें. ज़्यादा जानकारी के लिए, प्रिंसिपल पर Edge के लिए TLS/एसएसएल को कॉन्फ़िगर करना देखें.
  2. TLS को कॉन्फ़िगर करने के लिए, यह कमांड चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. एचटीटीपीएस पोर्ट नंबर डालें. उदाहरण के लिए, 9443.
  4. बताएं कि क्या आपको मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के लिए एचटीटीपी ऐक्सेस को बंद करना है. डिफ़ॉल्ट रूप से, मैनेजमेंट यूआई को पोर्ट 9000 पर एचटीटीपी से ऐक्सेस किया जा सकता है.
  5. पासकोड का एल्गोरिदम डालें. डिफ़ॉल्ट रूप से, JKS का इस्तेमाल किया जाता है.
  6. कीस्टोर JKS फ़ाइल का ऐब्सलूट पाथ डालें.

    स्क्रिप्ट, फ़ाइल को मैनेजमेंट सर्वर नोड पर /opt/apigee/customer/conf डायरेक्ट्री में कॉपी करती है और फ़ाइल का मालिकाना हक "apigee" में बदल देती है.

  7. साफ़ टेक्स्ट कीस्टोर पासवर्ड डालें.
  8. इसके बाद, स्क्रिप्ट Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) को रीस्टार्ट कर देती है. रीस्टार्ट करने के बाद, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) को, TLS के ज़रिए ऐक्सेस किया जा सकता है.

    /opt/apigee/etc/edge-ui.d/SSL.sh में जाकर, ये सेटिंग देखी जा सकती हैं.

TLS को कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करना

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

कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करने के लिए, नई फ़ाइल बनाएं और ये प्रॉपर्टी जोड़ें:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

फ़ाइल को अपने मनपसंद नाम से लोकल डायरेक्ट्री में सेव करें. इसके बाद, TLS को कॉन्फ़िगर करने के लिए, इस निर्देश का इस्तेमाल करें:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

यहां configFile, सेव की गई फ़ाइल का पूरा पाथ है.

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

अगर FIPS की सुविधा वाले ऑपरेटिंग सिस्टम पर, Edge for Private Cloud का इस्तेमाल किया जा रहा है, तो आपको PKCS12 पासकोड स्टोर का इस्तेमाल करना चाहिए. स्टैंडर्ड OpenSSL कमांड का इस्तेमाल करके, PKCS12 पासकोड स्टोर जनरेट किया जा सकता है. PKCS12 पासकोड स्टोर का इस्तेमाल करते समय, कॉन्फ़िगरेशन फ़ाइल में KEY_ALGO=PKCS12 सेट करें.

जब लोड बैलेंसर पर TLS बंद हो, तब Edge यूज़र इंटरफ़ेस (यूआई) कॉन्फ़िगर करना

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

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

लोड बैलेंसर को कॉन्फ़िगर करने के लिए, पक्का करें कि वह Edge यूज़र इंटरफ़ेस (यूआई) पर भेजे गए अनुरोधों पर, यह हेडर सेट करता हो:

X-Forwarded-Proto: https

Edge यूज़र इंटरफ़ेस (यूआई) को कॉन्फ़िगर करने के लिए:

  1. /opt/apigee/customer/application/ui.properties फ़ाइल को किसी एडिटर में खोलें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं:
    vi /opt/apigee/customer/application/ui.properties
  2. ui.properties में यह प्रॉपर्टी सेट करें:
    conf/application.conf+trustxforwarded=true
  3. ui.properties पर अपने बदलाव सेव करें.
  4. Edge के यूज़र इंटरफ़ेस को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

ज़रूरी नहीं TLS प्रॉपर्टी सेट करना

Edge के यूज़र इंटरफ़ेस (यूआई) में, TLS कॉन्फ़िगरेशन की वैकल्पिक प्रॉपर्टी काम करती हैं. इनका इस्तेमाल करके, ये सेट किए जा सकते हैं:

  • डिफ़ॉल्ट TLS प्रोटोकॉल
  • साथ काम करने वाले TLS प्रोटोकॉल की सूची
  • काम करने वाले TLS एल्गोरिदम
  • काम करने वाले TLS सिफ़र

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

TLS_CONFIGURE=y

नीचे दी गई टेबल में इन प्रॉपर्टी के बारे में बताया गया है:

प्रॉपर्टी ब्यौरा
TLS_PROTOCOL Edge यूज़र इंटरफ़ेस (यूआई) के लिए, डिफ़ॉल्ट TLS प्रोटोकॉल तय करता है. डिफ़ॉल्ट रूप से, यह TLS 1.2 है. मान्य वैल्यू, TLSv1.2, TLSv1.1, TLSv1 हैं.
TLS_ENABLED_PROTOCOL

चालू किए गए प्रोटोकॉल की सूची को कॉमा लगाकर अलग किए गए कलेक्शन के तौर पर दिखाता है. उदाहरण के लिए:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

ध्यान दें कि आपको " वर्ण को एस्केप करना होगा.

डिफ़ॉल्ट रूप से, सभी प्रोटोकॉल चालू होते हैं.

TLS_DISABLED_ALGO

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

TLS_DISABLED_ALGO को दी गई वैल्यू, jdk.tls.disabledAlgorithms के लिए अनुमति वाली वैल्यू से मेल खाती हैं, जैसा कि यहां बताया गया है. हालांकि, TLS_DISABLED_ALGO सेट करते समय आपको स्पेस वाले वर्णों को एस्केप करना होगा:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

यह नीति, उपलब्ध TLS साइफ़र की सूची को, कॉमा लगाकर अलग किए गए अरे के तौर पर तय करती है. उदाहरण के लिए:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

ध्यान दें कि आपको " वर्ण छोड़ देना है.

चालू किए गए सिफर की डिफ़ॉल्ट सूची यह है:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

उपलब्ध साइफ़र की सूची यहां देखें.

TLS प्रोटोकॉल बंद करना

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

  1. कॉन्फ़िगरेशन फ़ाइल को एडिटर में खोलें.
  2. किसी एक TLS प्रोटोकॉल को बंद करने के लिए—जैसे, TLSv1.0—कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    एक से ज़्यादा प्रोटोकॉल बंद करने के लिए, उदाहरण के लिए, TLSv1.0 और TLSv1.1— कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. कॉन्फ़िगरेशन फ़ाइल में किए गए बदलावों को सेव करें.
  4. TLS को कॉन्फ़िगर करने के लिए, यह कमांड चलाएं:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    यहां configFile, कॉन्फ़िगरेशन फ़ाइल का पूरा पाथ है.

  5. Edge के यूज़र इंटरफ़ेस को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

सुरक्षित कुकी का इस्तेमाल करना

Private Cloud के लिए Apigee Edge, Edge यूज़र इंटरफ़ेस (यूआई) से मिले जवाबों के लिए, Set-Cookie हेडर में secure फ़्लैग जोड़ने की सुविधा देता है. अगर यह फ़्लैग मौजूद है, तो कुकी सिर्फ़ उन चैनलों पर भेजी जा सकती है जिन पर tls चालू है. अगर यह मौजूद नहीं है, तो कुकी को किसी भी चैनल पर भेजा जा सकता है, चाहे वह सुरक्षित हो या नहीं.

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

Edge यूज़र इंटरफ़ेस (यूआई) कुकी के लिए secure फ़्लैग सेट करने के लिए:

  1. टेक्स्ट एडिटर में यह फ़ाइल खोलें:
    /opt/apigee/customer/application/ui.properties

    अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.

  2. ui.properties फ़ाइल में, conf_application_session.secure प्रॉपर्टी को true पर सेट करें, जैसा कि इस उदाहरण में दिखाया गया है:
    conf_application_session.secure=true
  3. बदलावों को सेव करें.
  4. apigee-serice यूटिलिटी का इस्तेमाल करके, Edge यूज़र इंटरफ़ेस को रीस्टार्ट करें, जैसा कि इस उदाहरण में दिखाया गया है:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

यह पुष्टि करने के लिए कि बदलाव काम कर रहा है या नहीं, curl जैसी किसी सुविधा का इस्तेमाल करके, Edge के यूज़र इंटरफ़ेस (यूआई) से रिस्पॉन्स हेडर देखें. उदाहरण के लिए:

curl -i -v https://edge_UI_URL

हेडर में एक लाइन होनी चाहिए, जो इस तरह दिखती है:

Set-Cookie: secure; ...

Edge यूज़र इंटरफ़ेस (यूआई) पर TLS को बंद करें

Edge के यूज़र इंटरफ़ेस (यूआई) पर TLS को बंद करने के लिए, यह कमांड इस्तेमाल करें:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl