Golang HTTP x509: خطأ فيما يتعلق بسلطة غير معروفة للشهادات
في الماضي القريب، واجه الأفراد تحديات عند محاولة الوصول إلى أنظمتهم الخلفية باستخدام Golang 1.9.2 على نظام التشغيل Windows XP. على الرغم من العمل بشكل لا تشوبه شائبة على أنظمة التشغيل الحديثة مثل Windows وLinux، واجه المستخدمون الذين يقومون بتشغيل التعليمات البرمجية الخاصة بهم على نظام التشغيل Windows XP الخطأ التالي: "x509: شهادة موقعة من سلطة غير معروفة."
الاختبارات المستندة إلى المتصفح باستخدام Firefox ESR و كشفت متصفحات Chromium أن هذه المتصفحات لم تثير أي مشكلات متعلقة بالشهادة عند الوصول إلى نفس عنوان URL من نفس بيئة Windows XP. والجدير بالذكر أن شهادة SSL المتأثرة تظل صالحة وموقعة من قبل مرجع مصدق موثوق به.
حاول بعض الأفراد حل هذه المشكلة عن طريق تجاوز التحقق من صحة TLS باستخدام معلمة InsecureSkipVerify:
import ("net/http"; "crypto/tls") tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } client := &http.Client{Transport: tr} resp, err := client.Get("https://someurl:443/")
ومع ذلك، فقد أثبتت هذه الطريقة عدم فعاليتها. من المهم ملاحظة أنه يجب التعامل مع تجاوز التحقق من صحة TLS بحذر لأنه يعرض التطبيق لتهديدات محتملة مثل هجمات الرجل في الوسط.
إذا كنت تواجه نفس المشكلة، فتأكد من أنك قمت بتعيين المعلمة InsecureSkipVerify بشكل صحيح. ربما قمت عن غير قصد بتعيينه على "InsecureSkyVerify". فيما يلي مقتطف الكود الصحيح:
// NewAPIClient - creates a new API client func NewAPIClient() Client { c := &APIClient{} tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } c.client = &http.Client{Transport: tr} return c }
تذكر أن تجاوز التحقق من صحة TLS يجب أن يؤخذ في الاعتبار فقط لأغراض الاختبار أو بالتزامن مع إجراءات التحقق المخصصة الصارمة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3