استكشاف مشاكل شهادات SSL وCA لخدمة ServBay
تتناول هذه الوثيقة أبرز المشكلات المتعلقة بشهادات SSL و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 can't verify the identity of the website "your-domain.test"
(سفاري لا يستطيع التحقق من هوية الموقع "[النطاق الخاص بك].test")
السبب الرئيسي لهذه المشكلة هو أن شهادتي ServBay User CA
وServBay Public CA
لم يتم تثبيتهما أو توثيقهما بشكل صحيح في النظام. وقد يحدث ذلك للأسباب التالية:
- لم تتم إضافة شهادة الجذر لـ ServBay لقائمة الشهادات الموثوقة في النظام.
- ربما استخدمت نفس اسم النطاق (مثل
myapp.test
) في أدوات تطوير محلية أخرى (مثل MAMP أو Laravel Herd)، وحدث تعارض بين شهادات هذه الأدوات وشهادات ServBay، أو تم تخزين بيانات خاطئة تتعلق بالشهادة في المتصفح نتيجة لذلك.
الحل
الرجاء اتباع الخطوات التالية:
- افتح تطبيق ServBay
- انتقل إلى الإعدادات (Settings) وابحث عن قسم ServBay Root CA.
- اضغط على إعادة تثبيت ServBay Root CA (Reinstall ServBay Root CA). سيحاول التطبيق تلقائيًا إصلاح تثبيت الشهادة الجذرية وضبط توثيقها.
- أغلق جميع نوافذ المتصفح ثم أعد فتحه تمامًا (للتأكد من مسح حالة SSL المؤقتة المخزنة).
- أعد زيارة موقعك. ينبغي أن تختفي رسالة الخطأ الخاصة بالشهادة.
إذا استمرت المشكلة:
غالباً يكون في النظام شهادات قديمة أو متعارضة أو غير صالحة، خاصة إذا كنت قد أنشأت شهادات لاسم النطاق ذاته باستخدام أدوات تطوير أخرى مثل MAMP أو Herd.
- افتح تطبيق Keychain Access في macOS (تجده ضمن "التطبيقات">"الأدوات المساعدة").
- في مربع البحث أعلى يمين النافذة، أدخل اسم النطاق المتضرر (مثل
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
وتأكد أن الشهادات موجودة وليست عليها علامة "x" حمراء (تعني "غير موثوقة"). إذا كانت غير موثوقة، انقر مرتين على الشهادة، وضمن "الثقة (Trust)"، اختر "الثقة دائماً (Always Trust)". - عد إلى تطبيق ServBay.
- انتقل إلى الإعدادات (Settings) -> ServBay Root CA.
- اضغط على إعادة إنشاء جميع شهادات مستخدم ServBay (Recreate All ServBay User Certificates) لإعادة إصدار شهادات SSL جديدة لكل المواقع المُدارة بالبرنامج.
- أعد تشغيل جهاز Mac الخاص بك لضمان تحميل الإعدادات والشهادات الجديدة بشكل كامل.
- أعد فتح المتصفح وجرب زيارة موقعك مرة أخرى.
توضيح رسائل الأخطاء الأكثر شيوعًا يساعدك على تحديد ما إذا كانت المشكلة لها علاقة بعدم الثقة في شهادة SSL، ويتيح لك الوصول السريع إلى الحل الأنسب.
ماذا أفعل إذا فقدت شهادة SSL؟
قد يحدث أحياناً أثناء استخدامك لخدمة ServBay في تطوير المواقع المحلية أن يتم فقدان ملفات شهادة SSL (سواء .crt
أو .key
). حدوث هذه المشكلة يؤدي عادةً إلى توقف خوادم الويب مثل Nginx أو Caddy أو Apache عن العمل أو ظهور أخطاء في تشغيل المواقع، مع تسجيل رسائل خطأ مرتبطة بالشهادة المفقودة في سجلات الخدمات.
وصف المشكلة
إذا فقدت الشهادات التي يصدرها ServBay تلقائياً لموقعك المحلي (ملفات .crt
و .key
)، سترى غالبًا رسائل خطأ في سجل خادم الويب تشير إلى أن المسار الخاص بملفات الشهادة غير متوفر أو يتعذر قراءته.
فيما يلي بعض أمثلة رسائل الخطأ الشائعة:
رسائل خطأ Nginx:
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
2
رسائل خطأ Caddy:
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
رسائل خطأ Apache:
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
2
تشير جميع هذه الرسائل إلى نفس جوهر المشكلة: ملف الشهادة المطلوب من قبل الخادم غير موجود أو يتعذر الوصول إليه.
الحل
عند فقدان شهادة SSL التي يمت إصدارها تلقائياً عبر ServBay، يوفر البرنامج آلية سهلة لاكتشاف المشكلة والإصدار التلقائي لشهادات جديدة.
اتبع الخطوات التالية:
- قم بتشغيل ServBay: تأكد أن تطبيق ServBay يعمل.
- انتقل إلى قائمة المواقع: من القائمة الجانبية للتطبيق، اضغط على المواقع.
- اختر الموقع المتأثر: حدد اسم الموقع الذي تواجه فيه مشكلة فقدان الشهادة من القائمة.
- آلية الفحص والإصدار التلقائي: ServBay، عند تحميل إعدادات الموقع، يتحقق تلقائياً من توفر ملفات الشهادة. إذا اكتشف فقدان ملف الشهادة (
.crt
أو.key
)، سيقوم تلقائياً بإعادة إصدار شهادة جديدة ووضعها في المسار الصحيح (/Applications/ServBay/ssl/private/tls-certs/اسم-النطاق/
). - أعد تشغيل خادم الويب: بعد إعادة إصدار الشهادة بنجاح، من الضروري إعادة تشغيل حزمة خادم الويب ذات الصلة (Nginx أو Caddy أو Apache) ليتم تحميل الشهادة الجديدة. من الواجهة الجانبية، انتقل إلى صفحة الحزم البرمجية، وابحث عن الخادم المطلوب، واضغط على زر إعادة التشغيل بجانبه (غالبًا يظهر على شكل سهم دائري).
- تحقق من حل المشكلة: بعد إعادة تشغيل الخادم بنجاح، جرب الوصول إلى موقعك عبر المتصفح باستخدام بروتوكول HTTPS (مثل
https://اسم-نطاقك
). إذا اكتملت الخطوات بشكل صحيح، سيعمل الموقع بشكل آمن من خلال HTTPS.
ملاحظات هامة
- الحل أعلاه خاص بالشهادات التي يصدرها ServBay تلقائياً. إذا كنت تستخدم شهادة ثابتة من توفيرك (أي قمت باستيرادها يدوياً)، فستحتاج إلى استرجاعها أو إعادة إصدارها بنفسك حيث لا يقوم ServBay بإعادة إصدار مثل هذه الشهادات تلقائياً.
- ServBay يستخدم CA داخلية (
ServBay User CA
) لإصدار شهادات المواقع المحلية. إذا ظهرت لك رسالة تحذير حول عدم الوثوق في شهادة HTTPS لموقعك المحلي، فقد يكون سبب ذلك عدم توثيقServBay User CA
من النظام أو المتصفح. راجع دليل توثيق ServBay CA للمزيد. - يوفر ServBay إمكانية النسخ الاحتياطي لبيانات الموقع والشهادات. يُفضل دائما إجراء نسخ احتياطي منتظم كي تتمكن من استعادة بياناتك بسرعة في حال حدوث أي طارئ.
الأسئلة الشائعة (FAQ)
س: لماذا يصدر ServBay شهادات SSL للمواقع المحلية تلقائيًا؟
ج: الهدف من ServBay هو تقديم بيئة تطوير محلية متكاملة تُحاكي بيئة الإنتاج الحقيقية وتسهّل اختبار تطبيقات HTTPS، لذا يصدر شهادات SSL تلقائيًا لكل موقع برمجي محلي تنشئه عبر CA داخلية خاصة به.
س: هل يمكنني استخدام شهادة SSL خاصة بي؟
ج: نعم، يدعم ServBay استيراد أي شهادة SSL من اختيارك (بما فيها شهادات ACME/Let's Encrypt). ينطبق هذا الدليل فقط على شهادات ServBay المُولدة تلقائياً.
س: هل إعادة إصدار الشهادة آمنة؟
ج: نعم، لأن شهادات ServBay تُستخدم فقط في بيئة التطوير المحلي عبر CA محلية، ولا تؤثر على أمن موقعك على الإنترنت الخارجي.
الخلاصة
يقدم ServBay آليات فعالة لإدارة شهادات SSL في بيئة التطوير المحلية. وفي حال فقدان الشهادات الصادرة تلقائياً، تستطيع عبر خطوات بسيطة تفعيل فحص وإعادة إصدار الشهادات الجديدة، لتستعيد تشغيل موقعك واختبار بروتوكول HTTPS بأمان.