
في عالم SSL/TLS، يعد الخطأ "تعذر الحصول على شهادة المُصدر المحلي" حجر عثرة شائع يواجهه المطورون ومسؤولو النظام عند العمل مع الاتصالات الآمنة. ينشأ هذا الخطأ عادةً عندما لا يمكن التحقق من صحة سلسلة الشهادات بشكل كامل، مما يعني أن النظام غير قادر على التحقق من صحة الشهادة لأنه لا يتعرف على مُصدرها. يعد فهم هذا الخطأ أمرًا بالغ الأهمية لضمان الاتصال الآمن في تطبيقات الويب والخوادم والأنظمة الأخرى التي تعتمد على SSL/TLS.
ما هو SSL/TLS؟
SSL (طبقة المقابس الآمنة) وخليفتها، TLS (أمان طبقة النقل)، عبارة عن بروتوكولات تشفير مصممة لتوفير اتصال آمن عبر شبكة الكمبيوتر. يتم استخدامها على نطاق واسع لتأمين حركة مرور الويب والبريد الإلكتروني وأشكال الاتصال الأخرى. الغرض الأساسي من SSL/TLS هو ضمان الخصوصية وسلامة البيانات والمصادقة بين الأطراف في جلسة الاتصال.
يعتمد SSL/TLS على الشهادات لبناء الثقة. يتم إصدار هذه الشهادات من قبل كيانات موثوقة تُعرف باسم المراجع المصدقة (CAs). عند إنشاء اتصال آمن، يقدم الخادم شهادته إلى العميل، ويتحقق العميل من هذه الشهادة مقابل قائمة المراجع المصدقة الموثوقة. إذا كانت الشهادة صالحة والمرجع المصدق موثوقًا به، فستتم متابعة الاتصال. إذا لم يكن الأمر كذلك، يمكن أن تحدث أخطاء مثل "تعذر الحصول على شهادة المُصدر المحلي".
تشريح سلسلة الشهادات
سلسلة الشهادات، والمعروفة أيضًا باسم مسار الشهادات، هي سلسلة من الشهادات، حيث يتم توقيع كل شهادة في السلسلة بواسطة الشهادة اللاحقة. تبدأ السلسلة بشهادة المستخدم النهائي وتنتقل إلى شهادة الجذر، والتي يتم توقيعها ذاتيًا بواسطة CA. يتضمن الهيكل النموذجي لسلسلة الشهادات ما يلي:
- شهادة المستخدم النهائي: هذه هي شهادة موقع الويب أو الخدمة المعنية.
- الشهادات المتوسطة: تعمل هذه الشهادات على سد الفجوة بين شهادة المستخدم النهائي والشهادة الجذرية. يتم إصدارها من قبل CA ويجب أن يثق بها العميل.
- شهادة الجذر: شهادة الجذر هي أعلى شهادة في السلسلة ويتم توقيعها ذاتيًا بواسطة CA. عادةً ما يتم تثبيته مسبقًا في مخزن شهادات النظام.
لكي يتم الوثوق بالشهادة، يجب أن تكون السلسلة بأكملها من شهادة المستخدم النهائي إلى الشهادة الجذرية صالحة ومعترف بها من قبل النظام. إذا كان أي رابط في هذه السلسلة مفقودًا أو لم يتم التعرف عليه، فستحدث أخطاء.
ما الذي يسبب الخطأ "تعذر الحصول على شهادة المُصدر المحلي"؟
يحدث الخطأ "تعذر الحصول على شهادة المُصدر المحلي" عندما لا يمكن التحقق من صحة الشهادة المقدمة من الخادم لأن العميل غير قادر على تحديد موقع الشهادة المتوسطة أو الشهادة الجذرية في مخزن الثقة الخاص به. يمكن أن تؤدي عدة عوامل إلى هذا الخطأ:
- الشهادات المتوسطة المفقودة:
o إذا فشل الخادم في توفير سلسلة الشهادات الكاملة، فقد لا يتمكن العميل من التحقق من الشهادة. يعد هذا أمرًا شائعًا عندما يرسل الخادم شهادة المستخدم النهائي فقط دون تضمين الشهادات المتوسطة.
- مخزن الشهادات قديم أو غير مكتمل:
o قد لا يحتوي مخزن شهادات العميل على الشهادات المتوسطة أو الجذرية المطلوبة. يمكن أن يحدث هذا إذا كان مخزن شهادات النظام قديمًا أو إذا لم يتم تثبيت الشهادة الضرورية.
- الشهادات الموقعة ذاتيًا:
o إذا تم استخدام شهادة موقعة ذاتيًا ولم يثق العميل بهذه الشهادة، فسيفشل الاتصال بسبب هذا الخطأ. يظهر هذا غالبًا في بيئات التطوير حيث يتم استخدام الشهادات الموقعة ذاتيًا لأغراض الاختبار.
- التكوين غير الصحيح:
o في بعض الأحيان، يمكن أن تؤدي التكوينات الخاطئة على الخادم، مثل المسارات غير الصحيحة لملفات الشهادات، إلى قيام الخادم بإرسال سلسلة شهادات غير كاملة أو غير صحيحة.
- الشهادات منتهية الصلاحية:
o إذا انتهت صلاحية أي شهادة في السلسلة، فقد يفشل العميل في التحقق من صحة السلسلة، مما يؤدي إلى هذا الخطأ.
استكشاف الأخطاء وإصلاحها وحل الخطأ
لحل الخطأ "تعذر الحصول على شهادة المُصدر المحلي"، يمكن اتخاذ عدة خطوات اعتمادًا على السبب الجذري:
- تأكد من إرسال سلسلة الشهادات الكاملة:
o يجب تكوين الخادم لإرسال سلسلة الشهادات الكاملة، بما في ذلك شهادة المستخدم النهائي وجميع الشهادات المتوسطة. يتم ذلك عادةً عن طريق تجميع الشهادات في ملف واحد أو التأكد من تكوين برنامج الخادم للإشارة إلى كافة الشهادات الضرورية.
- تحديث مخزن شهادات العميل:
o إذا كان مخزن شهادات العميل قديمًا، فيجب تحديثه بأحدث الشهادات. في معظم أنظمة التشغيل، يمكن القيام بذلك من خلال مديري الحزم أو تحديثات النظام. على سبيل المثال، في نظام التشغيل Linux، يمكن أن يؤدي تحديث حزمة الشهادات CA إلى تحديث مخزن الشهادات.
- إضافة الشهادات المفقودة يدويًا:
o في حالة فقدان شهادات وسيطة أو جذر معينة، يمكن إضافتها يدويًا إلى مخزن شهادات العميل. ويتم ذلك عن طريق الحصول على الشهادات المفقودة من موقع CA على الويب وتثبيتها في المتجر الموثوق.
- التحقق من الشهادات منتهية الصلاحية:
o استخدم أدوات مثل OpenSSL للتحقق من صحة الشهادات في السلسلة. في حالة انتهاء صلاحية أي شهادات، يجب تجديدها أو استبدالها.
- استخدم التكوين الصحيح للخادم:
o تأكد من تكوين الخادم بشكل صحيح للإشارة إلى ملفات الشهادات الصحيحة. تحقق من تكوين SSL/TLS للخادم للتحقق من إعداد مسارات الشهادة بشكل صحيح وأنه يمكن الوصول إلى الملفات.
- التبديل إلى مرجع مصدق موثوق به:
o إذا كانت الشهادات الموقعة ذاتيًا هي سبب المشكلة، ففكر في التبديل إلى الشهادات الصادرة عن مرجع مصدق موثوق به. تقدم العديد من الخدمات الآن شهادات SSL/TLS مجانية (مثل Let’s Encrypt)، والتي يمكن تثبيتها والتعرف عليها بسهولة من قبل معظم العملاء.
أدوات لتشخيص الخطأ
يمكن أن تساعد العديد من الأدوات في تشخيص الخطأ "تعذر الحصول على شهادة المُصدر المحلي" وإصلاحه:
- OpenSSL:
o OpenSSL هي أداة مستخدمة على نطاق واسع لإدارة شهادات SSL/TLS واستكشاف الأخطاء وإصلاحها. يمكن استخدام أوامر مثل opensl s_client -connect لفحص سلسلة الشهادات المقدمة بواسطة الخادم.
- اختبار SSL لمختبرات SSL:
o اختبار SSL Labs SSL عبارة عن خدمة عبر الإنترنت تعمل على تحليل تكوين SSL/TLS للخادم وتوفر معلومات مفصلة حول سلسلة الشهادات والمشكلات المحتملة.
- حليقة مع خيار مطول:
o يمكن لأداة سطر الأوامر Curl، عند استخدامها مع الخيار -v، أن توفر نظرة ثاقبة لعملية تأكيد اتصال SSL/TLS وتحديد مكان فشل التحقق من الشهادة.
- أدوات مطور المتصفح:
o تأتي متصفحات الويب الحديثة مزودة بأدوات المطورين التي تتضمن لوحات الأمان. يمكن استخدامها لفحص سلسلة الشهادات لأي موقع ويب وتحديد الشهادات المفقودة أو غير الموثوقة.
خاتمة
يعد الخطأ "تعذر الحصول على شهادة جهة الإصدار المحلية" مشكلة شائعة تنشأ عند العمل باستخدام SSL/TLS، خاصة في البيئات التي يكون فيها الاتصال الآمن أمرًا بالغ الأهمية. من خلال فهم بنية سلاسل الشهادات والعوامل التي يمكن أن تؤدي إلى هذا الخطأ، يمكنك تشخيص المشكلة وحلها بشكل فعال. سواء كان الأمر يتعلق بتحديث مخزن شهادات العميل، أو ضمان إرسال سلسلة الشهادات الكاملة، أو التبديل إلى مرجع مصدق موثوق به، هناك العديد من الاستراتيجيات المتاحة للتخفيف من هذه المشكلة وضمان اتصال آمن وموثوق.