यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं
Apigee X दस्तावेज़. info
समस्या का ब्यौरा
Edge Microgateway में एपीआई कॉल के जवाब के तौर पर, क्लाइंट ऐप्लिकेशन को 502 एचटीटीपी रिस्पॉन्स कोड मिलता है. इसके साथ, मैसेज
Bad Gateway भी मिलता है.
इसके अलावा, कमांड चलाने पर, एडमिन को self signed certificate in certificate
chain गड़बड़ी का मैसेज मिलेगा.
edgemicro configure
गड़बड़ी का मैसेज
क्लाइंट को यह जवाब दिखेगा:
HTTP/1.1 502 Bad Gateway
गड़बड़ी के जवाब के दो सामान्य उदाहरण यहां दिए गए हैं:
{"message":"self signed certificate in certificate chain","code":"SELF_SIGNED_CERT_IN_CHAIN"}{"message":"self signed certificate","code":"DEPTH_ZERO_SELF_SIGNED_CERT"}
इसके अलावा, edgemicro configure कमांड चलाने पर भी यह गड़बड़ी हो सकती है:
{ Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34)
at TLSSocket.emit (events.js:189:13)
at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }संभावित कारण
| वजह | ब्यौरा | समस्या हल करने के निर्देश, इनके लिए लागू होते हैं |
|---|---|---|
| टारगेट सर्वर, सेल्फ़-साइन किया गया सर्टिफ़िकेट दिखाता है | Edge Microgateway, टारगेट सर्वर के सर्टिफ़िकेट की पुष्टि करेगा. अगर यह भरोसेमंद नहीं है, तो रनटाइम में गड़बड़ी होगी. | Edge Public और Private Cloud के उपयोगकर्ता |
| Apigee Edge Management Server, सेल्फ़-साइन किया गया सर्टिफ़िकेट इस्तेमाल करता है | Edge Microgateway को पहली बार कॉन्फ़िगर करते समय, यह बूटस्ट्रैप करने के लिए TLS के ज़रिए Apigee Edge से कनेक्ट होगा. अगर Edge, सेल्फ़-साइन किया गया सर्टिफ़िकेट दिखाता है, तो यह प्रोसेस पूरी नहीं हो पाएगी. | Edge Private Cloud के उपयोगकर्ता |
वजह: टारगेट सर्वर, सेल्फ़-साइन किया गया सर्टिफ़िकेट दिखाता है
अगर सेल्फ़-साइन किया गया सर्टिफ़िकेट साउथबाउंड कनेक्शन पर, टारगेट सर्वर दिखाता है, तो Edge Microgateway डिफ़ॉल्ट रूप से यह गड़बड़ी दिखाएगा. ऐसा इसलिए, क्योंकि यह सेल्फ़-साइन किए गए सर्टिफ़िकेट पर भरोसा नहीं करता.
संक्रमण की जांच
आपको लॉग (/var/tmp/edgemicro-`hostname`-
*.log) में यह गड़बड़ी दिख सकती है:
2021-05-18T10:52:46.425Z [error][0:8000][1][gsc][test][edgemicro_badtargethost][][][2db53f80- b7c7-11eb-9abe-05b6297863f1][microgateway-core][][GET][502][self signed certificate in certificate chain][SELF_SIGNED_CERT_IN_CHAIN][]
गड़बड़ी का कोड SELF_SIGNED_CERT_IN_CHAIN बताता है कि Edge Microgateway को टारगेट सर्वर से, सेल्फ़-साइन किया गया सर्टिफ़िकेट मिला है. इसकी पुष्टि करने के लिए, यह तरीका अपनाएं:
- टारगेट सर्वर की सर्टिफ़िकेट चेन की पुष्टि करने के लिए, यह
opensslकमांड चलाएं:echo | openssl s_client -connect TARGET_SERVER_HOSTNAME:PORT -servername TARGET_SERVER_HOSTNAME | openssl x509 -noout
-
अगर टारगेट सर्वर की सर्टिफ़िकेट चेन वाकई में सेल्फ़-साइन की गई है, तो यह समस्या की वजह है
यहां दिए गए उदाहरण में, ध्यान दें कि टारगेट सर्वर, सेल्फ़-साइन किया गया सर्टिफ़िकेट दिखाता है:
echo | openssl s_client -connect untrusted-root.badssl.com:443 -servername untrusted-root.badssl.com | openssl x509 -noout
depth=1 C = US, ST = California, L = San Francisco, O = BadSSL, CN = BadSSL Untrusted Root Certificate Authority verify error:num=19:self signed certificate in certificate chain verify return:0 DONE
रिज़ॉल्यूशन
- टारगेट सर्वर को मैनेज करने वाली टीम के साथ मिलकर काम करें, ताकि भरोसेमंद सर्टिफ़िकेट अथॉरिटी (सीए) से साइन किया गया सही TLS सर्टिफ़िकेट हासिल किया जा सके.
अगर ऐसा नहीं किया जा सकता, तो Edge Microgateway में सेल्फ़-साइन किए गए सर्टिफ़िकेट की अनुमति देने के लिए, इनमें से कोई एक विकल्प चुनें.
पहला विकल्प: Edge Microgateway को सभी सर्टिफ़िकेट पर भरोसा करने की अनुमति देने के लिए, सिस्टम प्रॉपर्टी सेट करना
- अगर डॉकर का इस्तेमाल किया जा रहा है, तो ऐसे सीए का इस्तेमाल करना लेख पढ़ें जिस पर Node.js को भरोसा नहीं है
इसके अलावा,
NODE_EXTRA_CA_CERTSनाम का एनवायरमेंट वैरिएबल एक्सपोर्ट करें. यह वैरिएबल, रूट सीए फ़ाइल की ओर इशारा करता है.इस बारे में, Node.js की आधिकारिक Node.js पर बताया गया है.
दूसरा विकल्प: Edge Microgateway की YAML कॉन्फ़िगरेशन फ़ाइल को कॉन्फ़िगर करना, ताकि वह टारगेट सर्वर के लिए उस खास सर्टिफ़िकेट पर भरोसा करे
- पक्का करें कि आपके पास टारगेट सर्वर का सर्टिफ़िकेट (या चेन) PEM फ़ॉर्मैट में हो. सर्टिफ़िकेट के अन्य फ़ॉर्मैट को PEM में बदलने के लिए, सर्टिफ़िकेट को काम करने वाले फ़ॉर्मैट में बदलना लेख में दिए गए निर्देशों का पालन करें.
अगर सर्टिफ़िकेट चेन है, तो पक्का करें कि सर्टिफ़िकेट सही क्रम में हों. लीफ़ सर्टिफ़िकेट हमेशा पहले, उसके बाद इंटरमीडिएट सर्टिफ़िकेट, और फिर रूट सर्टिफ़िकेट होना चाहिए. इस बारे में ज़्यादा जानकारी के लिए, सर्टिफ़िकेट चेन की पुष्टि करना लेख पढ़ें.
यहां दिए गए उदाहरण में, हमने भरोसेमंद सीए फ़ाइल को कॉन्फ़िगर किया है
untrusted-root.badssl.com.edgemicro: ... targets: - host: 'untrusted-root.badssl.com' ssl: client ca: /opt/apigee/certs/untrusted-root.pem
इसे कॉन्फ़िगर करने के निर्देश, Edge Microgateway मॉड्यूल - एकतरफ़ा और दोतरफ़ा साउथबाउंड TLS को कॉन्फ़िगर करना वीडियो में भी दिए गए हैं. ज़्यादा जानकारी के लिए, Edge Microgateway सर्वर पर एसएसएल कॉन्फ़िगर करना लेख पढ़ें.
अगर समस्या अब भी बनी रहती है, तो गड़बड़ी की जानकारी इकट्ठा करना लेख पढ़ें.
वजह: Apigee Edge Management Server, सेल्फ़-साइन किया गया सर्टिफ़िकेट इस्तेमाल करता है
Edge Microgateway को पहली बार सेट अप करते समय, आपको
कमांड चलाने होंगे edgemicro configure या edgemicro private configure. इस कमांड से क्लस्टर बूटस्ट्रैप होगा. साथ ही, ज़रूरी जानकारी डाउनलोड करने के लिए, यह Apigee Edge से संपर्क करेगा.
Edge Private Cloud के लिए, Management Server का यूआरएल, -m आर्ग्युमेंट से तय होता है.
अगर आपने Management Server के लिए TLS चालू किया है, तो Edge Microgateway, Management Server के दिखाए गए सर्टिफ़िकेट की पुष्टि करने की कोशिश करेगा.
Edge Private Cloud के लिए, edgemicro configure कमांड का उदाहरण यहां दिया गया है:
edgemicro private configure -u <username> -p <password> -o apigee -e dev -v secure -r https://apigee-dev.net -m https://management.apigee-dev.net:8443
अगर Management Server को सेल्फ़-साइन किए गए सर्टिफ़िकेट के साथ कॉन्फ़िगर किया गया है, तो आपको कंसोल के आउटपुट में यह गड़बड़ी दिखेगी.
{ Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34)
at TLSSocket.emit (events.js:189:13)
at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }संक्रमण की जांच
- इस मामले में, हो सकता है कि Management Server
(
management.apigee-dev.net) सेल्फ़-साइन किया गया TLS सर्टिफ़िकेट दिखा रहा हो. - ऐसा हो सकता है कि आपके Apigee Edge के सिस्टम एडमिन ने सर्टिफ़िकेट दिया हो और उसके पास इसकी एक कॉपी हो.
- इसके अलावा, सर्टिफ़िकेट के बारे में जानकारी पाने के लिए, यह कमांड चलाएं:
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
- अगर Management Server के पास सेल्फ़-साइन किया गया सर्टिफ़िकेट है, तो यह समस्या की वजह है
रिज़ॉल्यूशन
- टारगेट सर्वर को मैनेज करने वाली टीम के साथ मिलकर काम करें, ताकि भरोसेमंद सर्टिफ़िकेट अथॉरिटी (सीए) से साइन किया गया सही TLS सर्टिफ़िकेट हासिल किया जा सके.
अगर ऐसा नहीं किया जा सकता, तो Edge Microgateway में सेल्फ़-साइन किए गए सर्टिफ़िकेट की अनुमति देने के लिए, यह तरीका अपनाएं.
- Edge Microgateway को सभी सर्टिफ़िकेट पर भरोसा करने की अनुमति देने के लिए, सिस्टम प्रॉपर्टी सेट करें.
- अगर डॉकर का इस्तेमाल किया जा रहा है, तो ऐसे सीए का इस्तेमाल करना लेख पढ़ें जिस पर Node.js को भरोसा नहीं है.
- इसके अलावा,
NODE_EXTRA_CA_CERTSनाम का एनवायरमेंट वैरिएबल एक्सपोर्ट करें. यह वैरिएबल, रूट सीए फ़ाइल की ओर इशारा करता है. इस बारे में, Node.js की आधिकारिक वेबसाइट पर बताया गया है.
गड़बड़ी की जानकारी इकट्ठा करना
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो गड़बड़ी की यह जानकारी इकट्ठा करें . इसके बाद, Apigee Edge की सहायता टीम से संपर्क करें:
- लॉग फ़ाइलें: डिफ़ॉल्ट फ़ोल्डर
/var/tmpहै. हालांकि, इसे मुख्यconfig.yamlफ़ाइल (logging > dir parameter) में बदला जा सकता है. हमारा सुझाव है कि Apigee Edge की सहायता टीम को लॉग फ़ाइलें देने से पहले,log > levelकोinfoपर सेट करें. - कॉन्फ़िगरेशन फ़ाइल: Edge Microgateway का मुख्य कॉन्फ़िगरेशन, डिफ़ॉल्ट Edge Microgateway फ़ोल्डर,
$HOME/.edgemicroमें मौजूद YAML फ़ाइल में होता है. एक डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल होती है जिसका नामdefault.yamlहै और फिर हर एनवायरमेंट के लिए एक फ़ाइल होती है जिसका नाम ORG-ENV-config.yamlहै. गड़बड़ी वाले संगठन और एनवायरमेंट के लिए, इस फ़ाइल को पूरी तरह से अपलोड करें.रेफ़रंस के लिए दस्तावेज़