يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
المشكلة
يتلقّى تطبيق العميل رمز استجابة HTTP لـ 502
مع الرسالة
Bad Gateway
كاستجابة لطلبات واجهة برمجة التطبيقات في Edge Microgateway.
بدلاً من ذلك، ستظهر للمشرف رسالة الخطأ 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 Microgateway لأول مرة، سيتم الاتصال بـ Apigee Edge عبر بروتوكول أمان طبقة النقل (TLS) لبدء التشغيل. إذا قدّم 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) مناسبة وموقّعة من مرجع تصديق (CA) موثوق به.
إذا لم يكن ذلك ممكنًا، يمكنك تجربة أحد الخيارات التالية للسماح بالشهادات الموقَّعة ذاتيًا في Edge Microgateway.
الخيار 1: ضبط خاصية نظام للسماح لبرنامج Edge Microgateway بالوثوق في جميع الشهادات
- في حال استخدام Docker، راجِع استخدام مرجع تصديق غير موثوق به في Node.js
ويمكنك بدلاً من ذلك تصدير متغيّر بيئة يُسمى
NODE_EXTRA_CA_CERTS
للإشارة إلى ملف CA الجذري.وقد تم توثيق ذلك على موقع Node.js الرسمي.
الخيار 2: ضبط ملف إعداد 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) الأحادي الاتجاه وثنائي الاتجاه لبروتوكول أمان طبقة النقل (TLS) باتجاه الجنوب. راجِع ضبط طبقة المقابس الآمنة على خادم Edge Microgateway للحصول على مزيد من المعلومات.
في حال استمرار المشكلة، انتقِل إلى ضرورة جمع معلومات التشخيص.
السبب: يستخدم خادم إدارة Apigee Edge شهادة موقَّعة ذاتيًا
عند إعداد Edge Microgateway لأول مرة، سيكون أحد الأوامر التي ستحتاج إلى تشغيلها هو edgemicro configure
أو edgemicro private configure
. سيؤدي هذا الأمر إلى بدء تشغيل المجموعة، وسيتصل بخدمة Apigee Edge لتنزيل المعلومات المطلوبة.
بالنسبة إلى Edge Private Cloud، يتم تحديد عنوان URL لخادم الإدارة من خلال الوسيطة -m
.
في حال تفعيل بروتوكول أمان طبقة النقل (TLS) لخادم الإدارة، سيحاول Edge Microgateway التحقُّق من الشهادة التي يقدّمها خادم الإدارة.
إليك مثال على أمر edgemicro configure
لـ Edge Private Cloud على النحو التالي:
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
- إذا كان خادم الإدارة يتضمّن شهادة موقَّعة ذاتيًا، يكون السبب في هذه المشكلة.
درجة الدقّة
- يمكنك التعاون مع الفريق الذي يملك الخادم الهدف لشراء شهادة بروتوكول أمان طبقة النقل (TLS) مناسبة وموقّعة من مرجع تصديق (CA) موثوق به.
إذا لم يكن ذلك ممكنًا، اتّبِع الخطوات التالية للسماح بالشهادات الموقَّعة ذاتيًا في 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
في مجلد Edge Microgateway التلقائي،
$HOME/.edgemicro
. هناك ملف إعداد تلقائي باسمdefault.yaml
، ثم ملف واحد لكل بيئة ORG-ENV-config.yaml
. يمكنك تحميل هذا الملف بالكامل للمؤسسات والبيئة المتأثرة.المستندات المرجعية
ضبط واجهة مستخدم Edge لاستخدام بروتوكول أمان طبقة النقل (TLS) للوصول إلى واجهة برمجة تطبيقات Edge