निजी क्लाउड के लिए एपीआई का TLS ऐक्सेस कॉन्फ़िगर करना

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

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

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

ज़्यादा जानें:

वर्चुअल होस्ट बनाने के लिए ज़रूरी चीज़ें

वर्चुअल होस्ट बनाने से पहले, आपके पास यह जानकारी होनी चाहिए:

  • वर्चुअल होस्ट का सार्वजनिक तौर पर दिखने वाला डोमेन नेम. उदाहरण के लिए, आपको यह पता होना चाहिए कि सार्वजनिक रूप से दिखने वाला नाम api.myCompany.com, myapi.myCompany.com वगैरह है. वह जानकारी का इस्तेमाल वर्चुअल होस्ट बनाते समय किया जाता है. साथ ही, इसका इस्तेमाल तब भी किया जाता है, जब आप वर्चुअल होस्ट.
  • एकतरफ़ा TLS के लिए, आपको एक कीस्टोर बनाना होगा जहां कीस्टोर में शामिल हो निम्न:
    • TLS सर्टिफ़िकेट - सर्टिफ़िकेट देने वाली संस्था (CA) से हस्ताक्षर किया गया सर्टिफ़िकेट या सर्टिफ़िकेट की एक चेन, जहां आखिरी सर्टिफ़िकेट पर सीए का हस्ताक्षर होता है.
    • निजी पासकोड - Edge, 2048 बिट तक की कुंजी के साइज़ के साथ काम करता है. लंबा पासवर्ड इस्तेमाल करना ज़रूरी नहीं है.
  • टू-वे TLS के लिए, आपको एक कीस्टोर की ज़रूरत होगी. साथ ही, क्लाइंट का प्रमाणपत्र और वैकल्पिक रूप से, प्रमाणपत्र की CA चेन भी शामिल होती है. आपको Truststore की ज़रूरत है, भले ही सर्टिफ़िकेट पर किसी सीए ने हस्ताक्षर किया हो.

कीस्टोर और Truststores से संपर्क कर सकते हैं.

TLS के लिए वर्चुअल होस्ट कॉन्फ़िगरेशन

वर्चुअल होस्ट बनाने के लिए, एक ऐसा एक्सएमएल ऑब्जेक्ट बनाएं जो वर्चुअल होस्ट को परिभाषित करता हो. यह एक्सएमएल ऑब्जेक्ट, वर्चुअल को तय करने के लिए <SSLInfo> एलिमेंट का इस्तेमाल करता है एचटीटीपीएस पर एकतरफ़ा TLS कॉन्फ़िगरेशन के लिए होस्ट करें:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>apiTLS.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9006</Port>
    <OCSPStapling>off</OCSPStapling>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

इस उदाहरण में, <Enabled> एलिमेंट को 'सही' पर सेट किया गया है एकतरफ़ा TLS चालू करें और <KeyStore> और <KeyAlias> एलिमेंट की मदद से कीस्टोर तय किया जा सके और कुंजी का इस्तेमाल करें.

टू-वे TLS चालू करने के लिए, <ClientAuthEnabled> एलिमेंट को true और ट्रस्टस्टोर तय करें <TrustStore> का इस्तेमाल करके एलिमेंट. ट्रस्टस्टोर में क्लाइंट का सर्टिफ़िकेट और वैकल्पिक रूप से सर्टिफ़िकेट का सीए (सर्टिफ़िकेट देने वाली संस्था) होता है चेन.

वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर का नाम तय करने का तरीका तय करना

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

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

इसके अलावा, वर्चुअल होस्ट में लिटरल कीस्टोर नाम का इस्तेमाल किया जा सकता है. हालांकि, अगर आपको कभी कीस्टोर का नाम बदलने के लिए, वर्चुअल होस्ट में बदलाव करें, इसके बाद आपको Edge राऊटर को रीस्टार्ट करना होगा.

कीस्टोर और ट्रस्टस्टोर के रेफ़रंस इस्तेमाल करने से जुड़ी पाबंदियां

कीस्टोर और ट्रस्टस्टोर:

  • आप वर्चुअल होस्ट में कीस्टोर और ट्रस्टस्टोर रेफ़रंस का इस्तेमाल सिर्फ़ तब कर सकते हैं, जब SNI और तो आपने Apigee राऊटर पर एसएसएल को बंद कर दिया है.
  • अगर आपके पास Apigee राऊटर के लिए लोड बैलेंसर है और आपने लोड बैलेंसर को लोड करने के लिए, फिर आप वर्चुअल में कीस्टोर और ट्रस्टस्टोर संदर्भ का इस्तेमाल नहीं कर सकते होस्ट.

कीस्टोर और ट्रस्टस्टोर के रेफ़रंस का इस्तेमाल करने के लिए, मौजूदा वर्चुअल होस्ट में बदलाव करना

Apigee का सुझाव है कि वर्चुअल होस्ट, कीस्टोर और ट्रस्टस्टोर के रेफ़रंस का इस्तेमाल करें. रेफ़रंस की मदद से, वर्चुअल होस्ट की ओर से इस्तेमाल किए जाने वाले कीस्टोर और ट्रस्टस्टोर को बदला जा सकता है एज राऊटर को रीस्टार्ट करना होगा.

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

Edge 4.15.07 और इससे पहले के वर्शन के लिए, TLS साइफ़र और प्रोटोकॉल सेट करना

अगर Edge के 4.15.07 और इससे पहले के वर्शन का इस्तेमाल किया जा रहा है, तो TLS प्रोटोकॉल और साइफ़र सेट करने होंगे का <Ciphers> और <Protocols> चाइल्ड टैग का उपयोग करके वर्चुअल होस्ट <SSLInfo> टैग के साथ किया जा सकता है. ये टैग नीचे दी गई टेबल में इनके बारे में बताया गया है.

उदाहरण के लिए:

    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>myTestKeystore</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>false</ClientAuthEnabled>
            <KeyStore>myTestKeystore</KeyStore>
            <KeyAlias>myKeyAlias</KeyAlias>
            <Ciphers>
                <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
                <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
            </Ciphers>
            <Protocols>
                <Protocol>TLSv1.2</Protocol>
            </Protocols>
        </SSLInfo>
   </SSLInfo>

<Cipher> टैग, साइफ़र का Java और JSSE नाम. उदाहरण के लिए, Java 8 के लिए http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites.

Edge 4.16.01 से 4.16.09 के लिए, TLS साइफ़र और प्रोटोकॉल तय करना

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

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

  • डिफ़ॉल्ट प्रोटोकॉल तय करने के लिए, conf_load_balancing_load.balancing.driver.server.ssl.protocols टोकन का इस्तेमाल करें
  • राऊटर के लिए डिफ़ॉल्ट साइफ़र तय करने के लिए, conf_load_balancing_load.balancing.driver.server.ssl.ciphers टोकन का इस्तेमाल करें

conf_load_balancing_load.balancing.driver.server.ssl.protocols टोकन की डिफ़ॉल्ट वैल्यू यह है:

conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2

इस सेटिंग से पता चलता है कि राऊटर पर TLS के 1.0, 1.1, और 1.2 वर्शन काम करते हैं. तय करें कि टोकन के लिए मानों की स्पेस सीमांकित सूची.

conf_load_balancing_load.balancing.driver.server.ssl.ciphers टोकन की डिफ़ॉल्ट वैल्यू यह है:

conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES

यह सेटिंग बताती है:

  • कुंजी की लंबाई, 128 बिट या उससे ज़्यादा होनी चाहिए (HIGH).
  • बिना पुष्टि वाले साइफ़र हटाएं (!aNULL)
  • MD5 (!MD5) का इस्तेमाल करके साइफ़र सुइट शामिल न करें
  • DH का इस्तेमाल करके साइफ़र सुइट शामिल न करें (इसमें अनाम DH, इफ़ेमरल DH और तय DH शामिल हैं) और ट्रिपल डीईएस (!DH+3DES)
  • आरएसए कुंजी एक्सचेंज और ट्रिपल डीईएस (!RSA+3DES) का इस्तेमाल करके साइफ़र सुइट शामिल न करें

इस टोकन से मंज़ूर किए गए सिंटैक्स और वैल्यू के बारे में जानकारी पाने के लिए, OpenSSL साइफ़र देखें. ध्यान दें कि यह टोकन, Java/JSSE साइफ़र नाम, जैसे कि TLS_RSA_WITH_AES_128_CBC_SHA256.

राऊटर के लिए टोकन सेट करने के लिए:

  1. /opt/apigee/customer/application/router.properties में बदलाव करें फ़ाइल से लिए जाते हैं. अगर वह फ़ाइल मौजूद नहीं है, तो उसे बनाएं.
  2. conf_load_balancing_load.balancing.driver.server.ssl.ciphers को सेट करें टोकन. उदाहरण के लिए, सिर्फ़ TLSv1.2 के बारे में बताने और पहले से शेयर की गई कुंजियों का इस्तेमाल करके साइफ़र सुइट को बाहर रखने के लिए, जोड़ें!PSK:
    conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2
    conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES:!PSK
  3. पक्का करें कि router.properties फ़ाइल का मालिकाना हक एपीआईजी:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Edge राऊटर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  5. टोकन की वैल्यू देखें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

सेटिंग Edge के 4.17.01 और इसके बाद के वर्शन के लिए, TLS वर्चुअल होस्ट पैरामीटर

अगर Edge वर्शन 4.17.01 और इसके बाद के वर्शन का इस्तेमाल किया जा रहा है, तो व्यक्तिगत वर्चुअल होस्ट, जैसे कि TLS प्रोटोकॉल और साइफ़र<Properties> <VirtualHost> टैग के साथ जोड़ा जा सकता है. इन टैग के बारे में वर्चुअल होस्ट प्रॉपर्टी के रेफ़रंस में बताया गया है.

उदाहरण के लिए:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>apiTLS.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9006</Port>
    <OCSPStapling>off</OCSPStapling>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">50</Property>
        <Property name="keepalive_timeout">300</Property>
        <Property name="proxy_request_buffering">off</Property>
        <Property name="proxy_buffering">off</Property>
        <Property name="ssl_protocols">TLSv1.2 TLSv1.1</Property>
        <Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH</Property>
    </Properties>
</VirtualHost>

ssl_ciphers टोकन से मंज़ूर किए गए सिंटैक्स और वैल्यू के बारे में जानकारी के लिए, OpenSSL साइफ़र देखें. ध्यान दें कि यह टोकन, OpenSSL साइफ़र नाम का इस्तेमाल करता है, जैसे कि AES128-SHA256 Java/JSSE साइफ़र नाम, जैसे कि TLS_RSA_WITH_AES_128_CBC_SHA256.

एचटीटीपीएस का इस्तेमाल करने वाला वर्चुअल होस्ट बनाना

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

वर्चुअल होस्ट बनाने के लिए, नीचे दी गई प्रक्रिया का इस्तेमाल करें:

  1. myTestKeystore नाम का एक कीस्टोर बनाएं और कॉन्फ़िगर करें. प्रक्रिया यहां बताई गई है: कीस्टोर और ट्रस्टस्टोर. पक्का करें कि कीस्टोर किसी उपनाम का इस्तेमाल करता हो प्रमाणपत्र और निजी कुंजी के लिए myKeyAlias का इस्तेमाल करें.
  2. रेफ़रंस बनाने के लिए, नीचे दिए गए POST API कॉल का इस्तेमाल करें आपके द्वारा ऊपर बनाए गए कीस्टोर के लिए keystoreref नाम:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="keystoreref">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>'
      -u email:password
    

    रेफ़रंस, कीस्टोर का नाम और रेफ़रंस टाइप KeyStore के तौर पर बताता है.

    रेफ़रंस फ़ाइल देखने के लिए, इस जीईटी एपीआई कॉल का इस्तेमाल करें:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password
    
  3. किसी एक उपयोगकर्ता के, वर्चुअल होस्ट एपीआई, जहां <ms-IP> आईपी पता है या प्रबंधन सर्वर नोड के डोमेन नाम से मेल खाने चाहिए.

    पक्का करें कि सही कीस्टोर रेफ़रंस और दूसरा कुंजी उपनाम मौजूद हो:

    curl -X POST -H "Content-Type:application/xml" \
      http://<ms-IP>:8080/v1/o/{org_name}/environments/{env_name}/virtualhosts \
      -d '<VirtualHost  name="newTLSTrustStore2">
        <HostAliases>
          <HostAlias>apiTLS.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
        <OCSPStapling>off</OCSPStapling>
        <SSLInfo>
          <Enabled>true</Enabled>
          <ClientAuthEnabled>false</ClientAuthEnabled>
          <KeyStore>ref://keystoreref</KeyStore>
          <KeyAlias>myKeyAlias</KeyAlias>
        </SSLInfo>
      </VirtualHost>' \
      -u email:password
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  4. वर्चुअल होस्ट के लिए ऐसा डीएनएस रिकॉर्ड बनाएं जो होस्ट के उपनाम से मेल खाता हो.
  5. अगर आपके पास कोई मौजूदा एपीआई प्रॉक्सी है, तो इसमें वर्चुअल होस्ट को <HTTPConnection> एलिमेंट में जोड़ें ProxyEndpoint. वर्चुअल होस्ट को सभी नई एपीआई प्रॉक्सी में अपने-आप जोड़ दिया जाता है.

    इसमें वर्चुअल होस्ट बनाने के बाद, एपीआई प्रॉक्सी अपडेट करना लेख पढ़ें वर्चुअल होस्ट के बारे में जानकारी.

वर्चुअल होस्ट का इस्तेमाल करने के लिए एपीआई प्रॉक्सी को अपडेट करने और होस्ट के लिए डीएनएस रिकॉर्ड बनाने के बाद इसी तरह, एपीआई प्रॉक्सी को ऐक्सेस किया जा सकता है, जैसा कि नीचे दिखाया गया है:

https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}

उदाहरण के लिए:

https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282

रेफ़रंस बनाना और उनमें बदलाव करना कीस्टोर या ट्रस्टस्टोर

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

उदाहरण के लिए, नीचे एक वर्चुअल होस्ट दिखाया गया है, जो कीस्टोर के रेफ़रंस का इस्तेमाल करता है:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>apiTLS.myCompany.com</HostAlias>
    </HostAliases>
    <Interfaces/>
    <Port>9006</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://keystoreref</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>

keystoreref नाम का रेफ़रंस बनाने के लिए, नीचे दिए गए POST API कॉल का इस्तेमाल करें:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
  -d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
  </ResourceReference>'
  -u email:password

रेफ़रंस, कीस्टोर का नाम और उसके टाइप के बारे में बताता है.

रेफ़रंस फ़ाइल देखने के लिए, इस जीईटी एपीआई कॉल का इस्तेमाल करें:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

किसी दूसरे कीस्टोर पर ले जाने के लिए, बाद में रेफ़रंस बदलने के लिए, पक्का करें कि उपनाम में समान नाम, निम्न PUT कॉल का उपयोग करें:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
  -d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
  </ResourceReference>'
  -u email:password