यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं
Apigee X दस्तावेज़. info
इस दस्तावेज़ में, Edge for the Private Cloud के वर्शन 4.17.09 और इससे पहले के वर्शन के लिए, कीस्टोर और ट्रस्टस्टोर बनाने, उनमें बदलाव करने, और उन्हें मिटाने का तरीका बताया गया है.
कीस्टोर और ट्रस्टस्टोर के बारे में जानकारी
कीस्टोर और ट्रस्टस्टोर, TLS एन्क्रिप्शन के लिए इस्तेमाल किए जाने वाले सुरक्षा सर्टिफ़िकेट के रिपॉज़िटरी तय करते हैं. इन दोनों के बीच मुख्य अंतर यह है कि TLS हैंडशेकिंग की प्रोसेस में इनका इस्तेमाल कहां किया जाता है:
- एक कीस्टोर में, TLS सर्टिफ़िकेट और निजी पासकोड होता है. इसका इस्तेमाल, TLS हैंडशेकिंग के दौरान इकाई की पहचान करने के लिए किया जाता है.
वन-वे TLS में, जब कोई क्लाइंट सर्वर पर TLS एंडपॉइंट से कनेक्ट होता है, तो सर्वर का कीस्टोर क्लाइंट को सर्वर का सर्टिफ़िकेट (पब्लिक सर्ट) दिखाता है. इसके बाद, क्लाइंट उस सर्टिफ़िकेट की पुष्टि, सर्टिफ़िकेट अथॉरिटी (सीए) से करता है. जैसे, Symantec या VeriSign.
टू-वे TLS में, क्लाइंट और सर्वर, दोनों ही अपने सर्टिफ़िकेट और निजी पासकोड के साथ कीस्टोर बनाए रखते हैं. इनका इस्तेमाल, एक-दूसरे की पुष्टि करने के लिए किया जाता है. - एक truststore में, उन सर्टिफ़िकेट को शामिल किया जाता है जिनका इस्तेमाल, TLS हैंडशेकिंग के दौरान मिले सर्टिफ़िकेट की पुष्टि करने के लिए किया जाता है.
वन-वे TLS में, अगर सर्टिफ़िकेट पर किसी मान्य सीए के हस्ताक्षर हैं, तो ट्रस्टस्टोर की ज़रूरत नहीं होती. अगर TLS क्लाइंट को मिला सर्टिफ़िकेट, किसी मान्य सीए से साइन किया गया है, तो क्लाइंट उस सर्टिफ़िकेट की पुष्टि करने के लिए सीए से अनुरोध करता है. TLS क्लाइंट आम तौर पर, TLS सर्वर से मिले, खुद से साइन किए गए सर्टिफ़िकेट या उन सर्टिफ़िकेट की पुष्टि करने के लिए ट्रस्टस्टोर का इस्तेमाल करता है जिन पर किसी भरोसेमंद सीए के हस्ताक्षर नहीं होते. इस मामले में, क्लाइंट अपने ट्रस्टस्टोर में उन सर्टिफ़िकेट को शामिल करता है जिन पर उसे भरोसा होता है. इसके बाद, जब क्लाइंट को सर्वर सर्टिफ़िकेट मिलता है, तो आने वाले सर्टिफ़िकेट की पुष्टि, उसके ट्रस्टस्टोर में मौजूद सर्टिफ़िकेट के हिसाब से की जाती है.
उदाहरण के लिए, कोई TLS क्लाइंट, TLS सर्वर से कनेक्ट होता है. इस सर्वर पर, खुद से साइन किया गया सर्टिफ़िकेट इस्तेमाल किया जाता है. यह खुद से साइन किया गया सर्टिफ़िकेट है, इसलिए क्लाइंट इसकी पुष्टि सीए से नहीं कर सकता. इसके बजाय, क्लाइंट सर्वर के खुद से साइन किए गए सर्टिफ़िकेट को अपने ट्रस्टस्टोर में पहले से लोड कर लेता है. इसके बाद, जब क्लाइंट सर्वर से कनेक्ट करने की कोशिश करता है, तो वह सर्वर से मिले सर्टिफ़िकेट की पुष्टि करने के लिए अपने ट्रस्टस्टोर का इस्तेमाल करता है.
टू-वे TLS के लिए, TLS क्लाइंट और TLS सर्वर, दोनों ही ट्रस्टस्टोर का इस्तेमाल कर सकते हैं. जब Edge, TLS सर्वर के तौर पर काम करता है, तब टू-वे TLS करने के लिए ट्रस्टस्टोर की ज़रूरत होती है.
सर्टिफ़िकेट, सर्टिफ़िकेट अथॉरिटी (सीए) जारी कर सकती है. इसके अलावा, आपके जनरेट किए गए निजी पासकोड से, खुद से साइन किए गए सर्टिफ़िकेट भी बनाए जा सकते हैं. अगर आपके पास सीए का ऐक्सेस है, तो पासकोड जनरेट करने और सर्टिफ़िकेट जारी करने के लिए, अपने सीए के दिए गए निर्देशों का पालन करें. अगर आपके पास सीए का ऐक्सेस नहीं है, तो खुद से साइन किया गया सर्टिफ़िकेट जनरेट करने के लिए, सार्वजनिक तौर पर उपलब्ध कई मुफ़्त टूल में से किसी एक का इस्तेमाल किया जा सकता है. जैसे, openssl.
Edge पर कीस्टोर और ट्रस्टस्टोर लागू करना
Edge पर, कीस्टोर में एक या उससे ज़्यादा JAR फ़ाइलें होती हैं. इनमें से हर JAR फ़ाइल में ये चीज़ें शामिल होती हैं:
- PEM फ़ाइल के तौर पर TLS सर्टिफ़िकेट. यह सर्टिफ़िकेट, सर्टिफ़िकेट अथॉरिटी (सीए) से साइन किया गया हो सकता है. इसके अलावा, यह सर्टिफ़िकेट की चेन भी हो सकती है, जिसमें आखिरी सर्टिफ़िकेट पर सीए के हस्ताक्षर हों. साथ ही, यह खुद से साइन किया गया सर्टिफ़िकेट भी हो सकता है.
- PEM फ़ाइल के तौर पर निजी पासकोड. Edge, 2048 बिट तक के पासकोड साइज़ के साथ काम करता है. लंबे पासवर्ड इस्तेमाल करना ज़रूरी नहीं होता.
ट्रस्टस्टोर, कीस्टोर की तरह ही होता है. हालांकि, इसमें सिर्फ़ PEM फ़ाइल के तौर पर सर्टिफ़िकेट शामिल होते हैं. इसमें निजी पासकोड शामिल नहीं होते .
अगर सर्टिफ़िकेट, चेन का हिस्सा है, तो कीस्टोर/ट्रस्टस्टोर में चेन के सभी सर्टिफ़िकेट शामिल होने चाहिए. ये सर्टिफ़िकेट, अलग-अलग PEM फ़ाइल के तौर पर या एक ही फ़ाइल के तौर पर शामिल किए जा सकते हैं. अगर एक ही फ़ाइल का इस्तेमाल किया जाता है, तो सर्टिफ़िकेट इस क्रम में होने चाहिए. फ़ाइल में पहला सर्टिफ़िकेट, TLS के लिए इस्तेमाल किया जाने वाला सर्टिफ़िकेट होना चाहिए. इसके बाद, सीए सर्टिफ़िकेट तक सर्टिफ़िकेट की चेन क्रम से होनी चाहिए. आपको फ़ाइल में हर सर्टिफ़िकेट के बीच एक खाली लाइन जोड़नी होगी.
Edge, एक एपीआई उपलब्ध कराता है. इसका इस्तेमाल, कीस्टोर और ट्रस्टस्टोर बनाने के लिए किया जाता है. ये दोनों एपीआई एक ही हैं. इनमें अंतर यह है कि कीस्टोर बनाते समय, आपको एक JAR फ़ाइल पास करनी होती है. इसमें सर्टिफ़िकेट और निजी पासकोड शामिल होता है. ट्रस्टस्टोर बनाते समय, आपको सिर्फ़ PEM फ़ाइल के तौर पर सर्टिफ़िकेट पास करना होता है.
सर्टिफ़िकेट और पासकोड फ़ाइलों के फ़ॉर्मैट के बारे में जानकारी
इस दस्तावेज़ में दिए गए उदाहरणों में, TLS सर्टिफ़िकेट और पासकोड को PEM फ़ाइलों के तौर पर दिखाया गया है. ये X.509 फ़ॉर्मैट के मुताबिक हैं. अगर आपका सर्टिफ़िकेट या निजी पासकोड, PEM फ़ाइल के तौर पर नहीं है, तो openssl जैसी यूटिलिटी का इस्तेमाल करके, इसे PEM फ़ाइल में बदला जा सकता है.
हालांकि, कई .crt फ़ाइलें और .key फ़ाइलें पहले से ही PEM फ़ॉर्मैट में होती हैं. अगर ये फ़ाइलें टेक्स्ट फ़ाइलें हैं और इन्हें इनमें शामिल किया गया है:
-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
या:
-----BEGIN ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY-----
तो ये फ़ाइलें, PEM फ़ॉर्मैट के साथ काम करती हैं. इन्हें PEM फ़ाइल में बदले बिना, कीस्टोर या ट्रस्टस्टोर में इस्तेमाल किया जा सकता है.
अगर आपके पास सर्टिफ़िकेट चेन है और आपको उस चेन का इस्तेमाल कीस्टोर या ट्रस्टस्टोर में करना है, तो सभी सर्टिफ़िकेट को एक ही PEM फ़ाइल में जोड़ा जा सकता है. इसके लिए, हर सर्टिफ़िकेट के बीच एक नई लाइन जोड़ें. सर्टिफ़िकेट क्रम से होने चाहिए. साथ ही, आखिरी सर्टिफ़िकेट, रूट सर्टिफ़िकेट या रूट सर्टिफ़िकेट से साइन किया गया इंटरमीडिएट सर्टिफ़िकेट होना चाहिए:
-----BEGIN CERTIFICATE----- (Your Primary TLS certificate) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Intermediate certificate) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Root certificate or intermediate certificate signed by a root certificate) -----END CERTIFICATE-----
मौजूदा कीस्टोर के बारे में जानकारी पाना
List Keystores और Truststores API का इस्तेमाल करके, अपने एनवायरमेंट में मौजूद कीस्टोर देखें:
curl -X GET \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-u email:password
क्लाउड के ग्राहकों के लिए, टेस्ट और प्रॉड एनवायरमेंट, दोनों में मुफ़्त में आज़माने वाले संगठनों के लिए, डिफ़ॉल्ट कीस्टोर उपलब्ध कराया जाता है. दोनों एनवायरमेंट के लिए, आपको इस कॉल के लिए ये नतीजे दिखेंगे:
[ "freetrial" ]
इस डिफ़ॉल्ट कीस्टोर का इस्तेमाल, अपने एपीआई की जांच करने और उन्हें प्रोडक्शन में पुश करने के लिए किया जा सकता है. हालांकि, आम तौर पर प्रोडक्शन में डिप्लॉय करने से पहले, अपना कीस्टोर बनाया जाता है. इसमें आपका सर्टिफ़िकेट और पासकोड शामिल होता है.
Private Cloud के ग्राहकों के लिए, जब तक पहला कीस्टोर नहीं बनाया जाता, तब तक दिखाई गई कलेक्शन खाली होती है.
Get a Keystore or Truststore API का इस्तेमाल करके, कीस्टोर का कॉन्टेंट देखें. क्लाउड के ग्राहक के लिए, आपको एक ही सर्वर TLS सर्टिफ़िकेट दिखेगा. यह डिफ़ॉल्ट सर्टिफ़िकेट है, जो Apigee Edge, मुफ़्त में आज़माने वाले खातों के लिए उपलब्ध कराता है.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \
-u email:passwordजवाब इस तरह दिखना चाहिए:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में भी यह जानकारी देखी जा सकती है:
- Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में, https://enterprise.apigee.com (क्लाउड) या
http://<ms-ip>:9000(ऑन-प्रिमाइसेस) पर लॉगिन करें. यहां<ms-ip>मैनेजमेंट सर्वर नोड का आईपी पता है. - Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के मेन्यू में, एडमिन > TLS सर्टिफ़िकेट चुनें.
TLS सर्टिफ़िकेट की जानकारी पाना
कीस्टोर में मौजूद टीएलएस सर्टिफ़िकेट के बारे में जानकारी देखने के लिए, Get Cert Details from a Keystore or Truststore API का इस्तेमाल किया जा सकता है. जैसे, सर्टिफ़िकेट की खत्म होने की तारीख और जारी करने वाली कंपनी. सबसे पहले, उस सर्टिफ़िकेट का नाम हासिल करें जिसके बारे में आपको जानकारी चाहिए. इस उदाहरण में, "freetrial" नाम के कीस्टोर की जानकारी फ़ेच की गई है.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \
-u email:passwordजवाब का उदाहरण:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
इसके बाद, सर्टिफ़िकेट की जानकारी पाने के लिए, certs प्रॉपर्टी की वैल्यू का इस्तेमाल करें:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial/certs/wildcard.apigee.net.crt \
-u email:password
जवाब का उदाहरण:
{ "certInfo" : [ { "expiryDate" : "Wed, 23 Apr 2014 20:50:02 UTC", "isValid" : "Yes", "issuer" : "CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US", "subject" : CN=*.example.apigee.net, OU=Domain Control Validated", "subjectAlternativeNames" : ["*.example.apigee.net","*.example.apigee.net" ], "validFrom" : "Tue, 15 Apr 2014 09:17:03 UTC", "version" : 3 } ], "name" : "example.apigee.net.crt" }
Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में भी यह जानकारी देखी जा सकती है:
- Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में, https://enterprise.apigee.com (क्लाउड) या
http://<ms-ip>:9000(ऑन-प्रिमाइसेस) पर लॉगिन करें. यहां<ms-ip>मैनेजमेंट सर्वर नोड का आईपी पता है. - Edge के मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) के मेन्यू में, एडमिन > TLS सर्टिफ़िकेट चुनें.
Edge के यूज़र इंटरफ़ेस (यूआई) में, यह तय किया जा सकता है कि Edge, सर्टिफ़िकेट की समयसीमा खत्म होने से कितने दिन पहले यह जानकारी दिखाए. डिफ़ॉल्ट रूप से, यूज़र इंटरफ़ेस (यूआई) उन सभी सर्टिफ़िकेट को हाइलाइट करता है जिनकी समयसीमा अगले 10 दिनों में खत्म होने वाली है.
कीस्टोर बनाना
कीस्टोर, आपके संगठन के किसी एनवायरमेंट के लिए खास होता है. जैसे, टेस्ट या प्रॉड एनवायरमेंट. इसलिए, अगर आपको प्रोडक्शन एनवायरमेंट में डिप्लॉय करने से पहले, टेस्ट एनवायरमेंट में कीस्टोर की जांच करनी है, तो आपको दोनों एनवायरमेंट में कीस्टोर बनाना होगा.
कीस्टोर बनाने की प्रोसेस में दो चरण शामिल हैं:
- अपने सर्टिफ़िकेट और निजी पासकोड वाली JAR फ़ाइल बनाएं.
- कीस्टोर बनाएं और JAR फ़ाइल अपलोड करें.
अपने सर्टिफ़िकेट और निजी पासकोड वाली JAR फ़ाइल बनाना
अपने निजी पासकोड, सर्टिफ़िकेट, और मेनिफ़ेस्ट के साथ JAR फ़ाइल बनाएं. JAR फ़ाइल में ये फ़ाइलें और डायरेक्ट्री शामिल होनी चाहिए:
/META-INF/descriptor.properties myCert.pem myKey.pem
जिस डायरेक्ट्री में आपका पासकोड पेयर और सर्टिफ़िकेट मौजूद है उसमें डायरेक्ट्री बनाएं
/META-INF. इसके बाद, /META-INF में descriptor.properties नाम की फ़ाइल बनाएं. इसमें यह कॉन्टेंट शामिल करें:
certFile={myCertificate}.pem keyFile={myKey}.pem
अपना पासकोड पेयर और सर्टिफ़िकेट शामिल करने वाली JAR फ़ाइल जनरेट करें:
jar -cf myKeystore.jar myCert.pem myKey.pem
अपनी JAR फ़ाइल में descriptor.properties जोड़ें:
jar -uf myKeystore.jar META-INF/descriptor.properties
कीस्टोर बनाना और JAR फ़ाइल अपलोड करना
किसी एनवायरमेंट में कीस्टोर बनाने के लिए, आपको Create a Keystore or Truststore API को सिर्फ़ कीस्टोर का नाम बताना होगा. नाम में सिर्फ़ अल्फ़ान्यूमेरिक वर्ण शामिल किए जा सकते हैं:
curl -X POST -H "Content-Type: text/xml" \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-d '<KeyStore name="myKeystore"/>' -u email:password
जवाब का उदाहरण:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystore" }
किसी एनवायरमेंट में नाम वाला कीस्टोर बनाने के बाद, JAR फ़ाइलें अपलोड की जा सकती हैं. इनमें सर्टिफ़िकेट और निजी पासकोड शामिल होता है. इसके लिए, Upload a JAR file to a Keystore API का इस्तेमाल करें:
curl -X POST -H "Content-Type: multipart/form-data" \
-F file="@myKeystore.jar" -F password={key_pass} \ "https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/{myKeystore}/keys?alias={key_alias}" \
-u email:password
यहां -F विकल्प, JAR फ़ाइल का पाथ तय करता है.
इस कॉल में, आपको दो क्वेरी पैरामीटर तय करने होंगे:
alias- कीस्टोर में सर्टिफ़िकेट और पासकोड की पहचान करता है. वर्चुअल होस्ट बनाते समय, सर्टिफ़िकेट और पासकोड को उसके एलियास नाम से रेफ़र किया जाता है.password- निजी पासकोड का पासवर्ड. अगर निजी पासकोड का कोई पासवर्ड नहीं है, तो इस पैरामीटर को छोड़ दें.
पुष्टि करें कि आपका कीस्टोर सही तरीके से अपलोड हुआ है या नहीं:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystore \
-u email:password
जवाब का उदाहरण:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
ट्रस्टस्टोर बनाना
ट्रस्टस्टोर बनाने के लिए इस्तेमाल किए जाने वाले एपीआई, कीस्टोर बनाने के लिए इस्तेमाल किए जाने वाले एपीआई की तरह ही होते हैं. इनमें सिर्फ़ यह अंतर होता है कि आपको JAR फ़ाइल के बजाय, PEM फ़ाइल के तौर पर सर्टिफ़िकेट फ़ाइल पास करनी होती है.
अगर सर्टिफ़िकेट, चेन का हिस्सा है, तो आपको चेन के सभी सर्टिफ़िकेट को ट्रस्टस्टोर में अलग-अलग अपलोड करना होगा
. इसके अलावा, सभी सर्टिफ़िकेट वाली एक फ़ाइल बनाई जा सकती है. इस फ़ाइल में, हर सर्टिफ़िकेट के बीच एक नई लाइन शामिल करें
. आम तौर पर, आखिरी सर्टिफ़िकेट पर सर्टिफ़िकेट जारी करने वाली संस्था के हस्ताक्षर होते हैं. उदाहरण के लिए, ट्रस्टस्टोर में, क्लाइंट सर्टिफ़िकेट, client_cert_1 और क्लाइंट सर्टिफ़िकेट जारी करने वाली संस्था का सर्टिफ़िकेट, ca_cert अपलोड करें.
टू-वे TLS पुष्टि के दौरान, क्लाइंट की पुष्टि तब सफल होती है, जब सर्वर
client_cert_1 को क्लाइंट को
TLS हैंडशेकिंग की प्रोसेस के तहत भेजता है.
इसके अलावा, आपके पास दूसरा सर्टिफ़िकेट, client_cert_2 है. इस पर भी
ca_cert के हस्ताक्षर हैं. हालांकि, आपको
client_cert_2 को
ट्रस्टस्टोर में अपलोड नहीं करना है. ट्रस्टस्टोर में अब भी client_cert_1 और ca_cert मौजूद हैं.
जब सर्वर, TLS हैंडशेकिंग के तहत client_cert_2 पास करता है, तो अनुरोध सफल होता है. ऐसा इसलिए होता है, क्योंकि Edge, TLS की पुष्टि को तब सफल होने देता है, जब client_cert_2 ट्रस्टस्टोर में मौजूद न हो, लेकिन उस सर्टिफ़िकेट से साइन किया गया हो जो ट्रस्टस्टोर में मौजूद है. अगर ट्रस्टस्टोर से सीए
सर्टिफ़िकेट, ca_cert, हटा दिया जाता है, तो TLS की पुष्टि नहीं हो पाती.
एनवायरमेंट में खाली ट्रस्टस्टोर बनाने के लिए, Create a Keystore or Truststore का इस्तेमाल करें. यह वही एपीआई है जिसका इस्तेमाल कीस्टोर बनाने के लिए किया जाता है:
curl -X POST -H "Content-Type: text/xml" -d \
'<KeyStore name="myTruststore"/>' \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-u email:password
Upload a Certificate to a Truststore API का इस्तेमाल करके, सर्टिफ़िकेट को PEM फ़ाइल के तौर पर ट्रस्टस्टोर में अपलोड करें:
curl -X POST -H "Content-Type: multipart/form-data" -F file="@trust.pem" \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myTruststore/certs?alias=myTruststore \
-u email:password
यहां -F विकल्प,
PEM फ़ाइल का पाथ तय करता है.
कीस्टोर या ट्रस्टस्टोर मिटाना
Delete a Keystore or Truststore API का इस्तेमाल करके, कीस्टोर या ट्रस्टस्टोर मिटाया जा सकता है:
curl -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystoreName \
-u email:password
जवाब का उदाहरण:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystoreName" }
अगर कोई कीस्टोर या ट्रस्टस्टोर मिटाया जाता है और उसका इस्तेमाल वर्चुअल होस्ट या टारगेट एंडपॉइंट/टारगेट/सर्वर कर रहा है, तो वर्चुअल होस्ट या टारगेट एंडपॉइंट/टारगेट सर्वर के ज़रिए किए गए सभी एपीआई कॉल फ़ेल हो जाएंगे.