आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को इस मैसेज के साथ 502
का एचटीटीपी रिस्पॉन्स कोड मिलता है
Edge Microgateway में एपीआई कॉल के रिस्पॉन्स के तौर पर 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 के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
Apigee Edge मैनेजमेंट सर्वर, खुद हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल करता है | Edge माइक्रोगेटवे को पहली बार कॉन्फ़िगर करने पर, यह Apigee Edge से कनेक्ट हो जाएगा बूटस्ट्रैप करने के लिए TLS. अगर Edge खुद हस्ताक्षर किया गया सर्टिफ़िकेट दिखाता है, तो ऐसा नहीं होगा. | Edge के प्राइवेट क्लाउड के उपयोगकर्ता |
वजह: टारगेट सर्वर, खुद हस्ताक्षर किया गया सर्टिफ़िकेट दिखाता है
यदि खुद हस्ताक्षर किया हुआ प्रमाणपत्र टारगेट सर्वर के ज़रिए साउथबाउंड कनेक्शन पर टाइप किया है, तो Edge माइक्रोगेटवे डिफ़ॉल्ट रूप से यह गड़बड़ी दिखाएगा, क्योंकि यह खुद हस्ताक्षर किए हुए सर्टिफ़िकेट पर भरोसा नहीं करता.
संक्रमण की जांच
आपको लॉग में यह गड़बड़ी दिख सकती है (/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
रिज़ॉल्यूशन
- टारगेट सर्वर के मालिकाना हक वाली टीम के साथ काम करके, उस टीम के साथ काम करें जिस पर भरोसेमंद सर्टिफ़िकेट अथॉरिटी (सीए) के साथ शेयर करें.
अगर ऐसा करना मुमकिन नहीं है, तो नीचे दिए गए विकल्पों में से किसी एक पर, खुद हस्ताक्षर करने की अनुमति दें Edge Microgateway में सर्टिफ़िकेट.
पहला विकल्प: एक सिस्टम प्रॉपर्टी सेट करें, ताकि Edge Microgateway को सभी पर भरोसा करने की अनुमति मिल सके सर्टिफ़िकेट
- अगर आप Docker इस्तेमाल कर रहे हैं, तो ऐसे सीए का इस्तेमाल करना जिस पर Node.js के लिए भरोसा नहीं है
अगर ऐसा नहीं है, तो
NODE_EXTRA_CA_CERTS
नाम का एनवायरमेंट वैरिएबल एक्सपोर्ट करें. रूट सीए फ़ाइल पर ले जाता है.यह आधिकारिक अखबार 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 मॉड्यूल - 1-वे और 2-वे साउथबाउंड TLS वीडियो कॉन्फ़िगर करें. इससे संदर्भ लें ज़्यादा जानकारी के लिए, Edge Microgateway सर्वर पर एसएसएल कॉन्फ़िगर करना.
अगर इसके बाद भी समस्या बनी रहती है, तो यहां जाएं गड़बड़ी की जानकारी इकट्ठा करना ज़रूरी है.
वजह: Apigee Edge मैनेजमेंट सर्वर, खुद हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल करता है
Edge Microgateway को पहली बार सेट अप किए जाने पर, आपको इनमें से कोई एक निर्देश देना होगा
edgemicro configure
या edgemicro private configure
है. इस निर्देश से
क्लस्टर को बूटस्ट्रैप करें. इसके बाद, ज़रूरी जानकारी डाउनलोड करने के लिए, यह Apigee Edge से संपर्क करेगा.
Edge के प्राइवेट क्लाउड के लिए, मैनेजमेंट सर्वर का यूआरएल -m
आर्ग्युमेंट के हिसाब से तय किया जाता है.
अगर आपने मैनेजमेंट सर्वर के लिए TLS की सुविधा चालू की है, तो Edge माइक्रोगेटवे पुष्टि करने की कोशिश करेगा
मैनेजमेंट सर्वर से मिला सर्टिफ़िकेट.
एज प्राइवेट क्लाउड के लिए 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
अगर मैनेजमेंट सर्वर को खुद हस्ताक्षर किए गए सर्टिफ़िकेट के साथ कॉन्फ़िगर किया गया है, तो आपको कंसोल आउटपुट में गड़बड़ी का मैसेज दिखाया जाता है.
{ 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.apigee-dev.net
) शायद खुद हस्ताक्षर किया हुआ TLS सर्टिफ़िकेट दिखाए. - ऐसा हो सकता है कि आपके Apigee Edge के सिस्टम एडमिन ने सर्टिफ़िकेट उपलब्ध कराया हो और उसकी एक कॉपी होगी.
- या फिर, सर्टिफ़िकेट के बारे में जानकारी पाने के लिए नीचे दिया गया कमांड चलाएं:
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - अगर मैनेजमेंट सर्वर के पास खुद हस्ताक्षर किया गया सर्टिफ़िकेट है, तो इसकी वजह यह है समस्या.
रिज़ॉल्यूशन
- टारगेट सर्वर के मालिकाना हक वाली टीम के साथ काम करके, उस टीम के साथ काम करें जिस पर भरोसेमंद सर्टिफ़िकेट अथॉरिटी (सीए) के साथ शेयर करें.
अगर ऐसा नहीं किया जा सकता, तो खुद हस्ताक्षर करने की अनुमति देने के लिए, नीचे दिया गया तरीका अपनाएं Edge Microgateway में सर्टिफ़िकेट.
- Edge Microgateway को सभी सर्टिफ़िकेट पर भरोसा करने की अनुमति देने के लिए, सिस्टम प्रॉपर्टी सेट करें.
- अगर आप Docker इस्तेमाल कर रहे हैं, तो ऐसे सीए का इस्तेमाल करना जिस पर Node.js के लिए भरोसा नहीं है.
- अगर ऐसा नहीं है, तो
NODE_EXTRA_CA_CERTS
नाम का एनवायरमेंट वैरिएबल एक्सपोर्ट करें. रूट CA फ़ाइल की ओर इशारा करता है.यह जिसे आधिकारिक तौर पर Node.js वेबसाइट.
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है
अगर ऊपर दिए गए निर्देशों का पालन करने के बाद भी समस्या बनी रहती है, तो यह जानकारी इकट्ठा करें और फिर Apigee Edge की सहायता टीम से संपर्क करें:
- लॉग फ़ाइलें: डिफ़ॉल्ट फ़ोल्डर
/var/tmp
है, लेकिन इसे बदला जा सकता है मुख्यconfig.yaml
फ़ाइल (logging > dir parameter
). हां यह जानकारी देने से पहलेlog > level
कोinfo
में बदलने का सुझाव दिया जाता है लॉग फ़ाइलें Apigee Edge सहायता पर भेजें. - कॉन्फ़िगरेशन फ़ाइल: Edge Microgateway का मुख्य कॉन्फ़िगरेशन YAML में होता है
फ़ाइल को डिफ़ॉल्ट एज माइक्रोगेटवे फ़ोल्डर
$HOME/.edgemicro
में सेव किया जाएगा. कई डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल, जिसेdefault.yaml
कहा जाता है. इसके बाद, हर एनवायरमेंट के लिए एक फ़ाइल बनाई जाती है ORG-ENV-config.yaml
. यह फ़ाइल अपलोड करें संगठन और एनवायरमेंट की पूरी जानकारी के लिए.पहचान वाले दस्तावेज़