استكشاف أخطاء شهادات SSL وServBay CA وإصلاحها
تستعرض هذه الوثيقة أبرز المشاكل وحلول استكشاف الأخطاء المتعلقة بشهادات SSL وServBay CA في بيئة تطوير ServBay المحلية.
لماذا تظهر رسالة "شهادة SSL غير موثوقة" عند فتح الموقع في المتصفح؟
عندما تحاول الوصول إلى موقع محلي مستضاف عبر ServBay من خلال المتصفح، إذا ظهرت تحذيرات مثل التالية، فهذا غالباً دليل على وجود مشكلة في إعداد شهادة SSL:
- Chrome / Edge:
اتصالك غير خاص
(Your connection is not private)- رمز الخطأ:
NET::ERR_CERT_AUTHORITY_INVALID
- رمز الخطأ:
NET::ERR_CERT_COMMON_NAME_INVALID
(يظهر أحياناً إذا لم تتطابق الشهادة مع اسم النطاق)
- Firefox:
تحذير: قد توجد مخاطر أمنية محتملة في المستقبل
(Warning: Potential Security Risk Ahead)- بعد الضغط على "المزيد"، قد ترى الرمز:
SEC_ERROR_UNKNOWN_ISSUER
- رمز الخطأ:
SSL_ERROR_BAD_CERT_DOMAIN
(عند عدم تطابق الشهادة ونطاق الموقع)
- Safari:
هذا الاتصال غير خاص
(This Connection Is Not Private)Safari لا يستطيع التحقق من هوية الموقع "your-domain.test"
(Safari can't verify the identity of the website "your-domain.test")
أبرز سبب لهذه المشكلة هو عدم تثبيت أو الثقة بـServBay User CA
أو ServBay Public CA
بشكل صحيح. وقد يرجع ذلك إلى:
- عدم إضافة شهادة الجذر الخاصة بـServBay إلى قائمة الشهادات الموثوقة في النظام.
- استخدام نفس النطاق سابقاً (مثل
myapp.test
) في أدوات تطوير محلية أخرى (Kمثل MAMP أو Laravel Herd)، مما سبب تضارباً في شهادات SSL أو احتفاظ المتصفح بشهادة غير صحيحة أو غير موثوقة.
الحل
اتبع الخطوات التالية:
- افتح تطبيق ServBay
- انتقل إلى الإعدادات، وابحث عن قسم ServBay Root CA.
- اضغط على إعادة تثبيت ServBay Root CA. سيقوم ServBay بمحاولة إصلاح شهادة الجذر وتحديث الثقة تلقائياً.
- أغلق جميع نوافذ المتصفح تماماً وأعد فتحه مجدداً للتأكد من مسح حالة SSL المؤقتة.
- أعد زيارة موقعك. من المفترض أن تختفي أخطاء شهادة SSL الآن.
إذا استمرت المشكلة:
غالباً ما يشير هذا إلى وجود شهادات قديمة أو متضاربة في النظام، خاصة إذا سبق لك إصدار شهادات لنفس النطاق من برامج أخرى (مثل MAMP أو Herd).
- افتح أداة إدارة الشهادات في نظامك:
- macOS: افتح تطبيق Keychain Access (يمكنك العثور عليه في "التطبيقات" > "الأدوات").
- Windows: اضغط Win+R وأدخل
certmgr.msc
ثم اضغط Enter لفتح مدير الشهادات.
- في مربع البحث العلوي، أدخل اسم النطاق الذي تظهر فيه المشكلة (مثل
myapp.test
). إذا لم تكن متأكداً، جرب البحث باستخدام كلمات مثلmamp
أوherd
للعثور على الشهادات المرتبطة. - اختر نوع البحث شهادات (Certificates).
- ابحث ضمن النتائج عن جميع شهادات SSL المرتبطة بالنطاق الذي أدخلته، مع التأكد من التحقق من الجهة المصدرة (Issuer) ما إذا كانت
ServBay User CA
، أوMAMP Development CA
أوLaravel Herd CA
أو أسماء مشابهة. - قم بتحديد جميع الشهادات المشبوهة أو التي ليست صادرة عن
ServBay User CA
، ثم اضغط على زرDelete
لحذفها. قد يتم طلب كلمة مرور النظام للتأكيد. يرجى الحذر عند الحذف، واحرص على إزالة الشهادات المتعلقة فقط بالنطاقات المحلية الخاصة بك. - (اختياري لكن يُنصح به) ابحث مجدداً عن
ServBay User CA
وServBay Public CA
في Keychain، وتأكد من وجود الشهادة دون علامة "x" باللون الأحمر (تشير إلى عدم الثقة). إذا لم تكن موثوقة، انقر نقرًا مزدوجًا على الشهادة، وافتح قسم "الثقة"، واضبط "عند استخدام هذه الشهادة" على "الثقة دائمًا". - ارجع إلى تطبيق ServBay.
- انتقل إلى الإعدادات -> ServBay Root CA.
- قم بالضغط على إعادة إنشاء جميع شهادات مستخدمي ServBay. سيُعاد إنشاء شهادات SSL جديدة لجميع المواقع التي يديرها ServBay تلقائياً.
- أعد تشغيل جهازك. سيساعد ذلك على تحميل التغييرات الجديدة في الشهادات والثقة ضمن النظام وخدماته المختلفة.
- افتح المتصفح من جديد وجرب الوصول إلى موقعك مرة أخرى.
من خلال ذكر هذه الرسائل الشائعة للأخطاء، سيتمكن المستخدم من تحديد إذا كانت المشكلة من صلاحية وثوق شهادة SSL والانتقال مباشرة للحل المناسب.
ماذا أفعل إذا فقدت شهادة SSL؟
خلال تطوير المواقع المحلية بواسطة ServBay، قد تواجه أحياناً فقدان ملفات شهادة SSL الخاصة بموقعك المحلي. هذا يؤدي إلى عجز خوادم الويب (مثل Nginx أو Caddy أو Apache) عن التشغيل أو تحميل الموقع بشكل صحيح، مع ظهور رسائل خطأ تتعلق بالشهادة.
وصف المشكلة
فقدان ملفات شهادة SSL (.crt
و .key
) التي يصدرها ServBay تلقائياً لموقعك المحلي ستؤدي غالباً إلى ظهور رسائل خطأ في سجلات الخادم، تدل على أن الملف المطلوب للشهادة غير موجود أو لم يتم الوصول إليه.
أمثلة لبعض رسائل الخطأ الشائعة:
رسائل خطأ Nginx:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
1
2
2
رسائل خطأ Caddy:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
1
رسائل خطأ Apache:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
1
2
2
جميع هذه الرسائل تشير إلى جوهر المشكلة: مسار ملفات شهادات SSL غير صالح لأن الملف مفقود أو غير متوفر.
الحل
توفر ServBay آلية تلقائية للكشف وإعادة إصدار شهادات SSL المفقودة بسهولة للمواقع المحلية.
اتبع الخطوات التالية:
- شغّل تطبيق ServBay: تأكد من أن التطبيق يعمل.
- انتقل إلى قائمة المواقع: اضغط على قسم المواقع في القائمة الجانبية اليسرى.
- اختر الموقع المتضرر: ابحث ضمن القائمة عن الموقع المحلي الذي يعاني من فقدان شهادة SSL، ثم اضغط عليه.
- الكشف التلقائي وإصدار شهادة جديدة: عند تحميل إعدادات الموقع، يتحقق ServBay تلقائياً من وجود ملفات شهادة SSL المطلوبة. إذا اكتشف غياب ملفات
.crt
أو.key
، سيصدر تلقائياً شهادة جديدة ويوزعها في المسار الصحيح (/Applications/ServBay/ssl/private/tls-certs/اسم-النطاق-الخاص-بك/
). - أعد تشغيل خادم الويب: بمجرد إصدار الشهادة بنجاح، أعد تشغيل برنامج خادم الويب (Nginx أو Caddy أو Apache)، لضمان قراءة الشهادة الجديدة. افتح صفحة البرمجيات في القائمة الجانبية وابحث عن برنامج الخادم الخاص بك واضغط زر إعادة التشغيل (عادة على شكل سهم دائري).
- تحقق من حل المشكلة: بعد نجاح إعادة تشغيل الخادم، جرب فتح موقعك المحلي عبر HTTPS (مثل
https://اسم-النطاق-الخاص-بك
). يجب أن يعمل الموقع بشكل طبيعي ويقبل الاتصال الآمن.
ملاحظات هامة
- ينطبق هذا الحل على شهادات SSL التي يصدرها ServBay تلقائياً للمواقع المحلية. إذا كنت تستخدم شهادات مخصصة أو مستوردة، لن يعيد ServBay إصدارها تلقائياً، وستحتاج لاستعادتها يدوياً أو استيراد ملف شهادة جديد بنفسك.
- تستخدم ServBay شهادة أرضية داخلية (ServBay User CA) لتوقيع شهادات المواقع المحلية، مما يتيح دعم HTTPS في بيئة التطوير. إذا واجهت تحذيرات "شهادة غير موثوقة" رغم كل ذلك، راجع مستند ServBay حول الثقة في ServBay CA لإعداد الثقة بالنظام والمتصفح بشكل صحيح.
- تقدم ServBay ميزة النسخ الاحتياطي لبيانات المواقع بما في ذلك شهادات SSL. من الأفضل عمل نسخ احتياطية منتظمة لاستعادة الملفات بسرعة في حال الفقدان غير المتوقع.
أسئلة شائعة (FAQ)
س: لماذا يصدر ServBay شهادات SSL تلقائية للمواقع المحلية؟
ج: يهدف ServBay لتقديم بيئة تطوير كاملة محلياً تحاكي بيئة الإنتاج، وتسهّل اختبار تطبيقات HTTPS، ولهذا يستخدم ServBay CA لإصدار شهادات SSL تلقائية لكل موقع محلي تخلقه، ما يتيح لك تجربة الاتصال الآمن أثناء التطوير.
س: هل يمكنني استخدام شهادة SSL الخاصة بي؟
ج: نعم، ServBay يدعم استيراد واستخدام شهادات SSL الخاصة بك (بما في ذلك شهادات ACME / Let's Encrypt). تعليمات هذا الدليل خاصة بالشهادات المصدرة تلقائياً من ServBay فقط.
س: هل إعادة إصدار الشهادة آمن؟
ج: نعم، في بيئة التطوير المحلية، يصدر ServBay شهادة SSL موقعة من ServBay User CA، وتُستخدم فقط ضمن بيئتك المحلية للاختبار. لن يؤثر ذلك على أمان موقعك على الإنترنت للعامة.
ملخص
توفر ServBay آليات عملية لإدارة شهادات SSL في بيئة التطوير المحلية. عندما تفقد شهادات SSL الصادرة تلقائياً للمواقع المحلية، يمكنك بخطوات بسيطة الاستفادة من خاصية ServBay للكشف وإعادة إصدار الشهادة تلقائياً، ما يساعدك في استعادة وظيفة الاتصال الآمن HTTPS بسرعة على موقعك المحلي.