كيفية حل خطأ Let's Encrypt SSL Renewal على خادم Linux؟
دليل أخطاء تجديد Certbot ومشكلات التحقق من المجال وشهادات SSL منتهية الصلاحية.
عندما تنتهي صلاحية شهادة SSL الخاصة بموقع ويب، سيرى الزائرون تحذيرًا غير آمن في متصفحهم. وهذا لا يقلل من ثقة المستخدم فحسب؛ تخلق WHMCS أيضًا مشكلات خطيرة لأنظمة الدفع واتصالات API ولوحات الألعاب وتسجيلات دخول العملاء.
شهادات Let's Encrypt مجانية ولكن يجب تجديدها بشكل دوري. إذا لم يتم تكوين Certbot بشكل صحيح، فسوف يفشل التجديد وقد تنتهي صلاحية SSL.
1. التحقق من الشهادات المتوفرة
تحقق أولاً من الشهادات الموجودة على الخادم:
certbot certificates
يعرض هذا الأمر اسم الشهادة والمجالات ومسارات الملفات وتاريخ انتهاء الصلاحية.
إذا لم يكن هناك أمر certbot، فقد لا يتم تثبيته:
certbot --version
2. إجراء اختبار التحديث
لاختبار الشهادة قبل تجديدها فعلياً:
certbot renew --dry-run
يختبر هذا الأمر عملية التحديث. إذا كان هناك خطأ، فإنه يسمح لك برؤية المشكلة قبل يوم التجديد الفعلي.
3. أخطاء سيرتبوت الأكثر شيوعًا
ترتبط معظم أخطاء تجديد Let's Encrypt بالتحقق من صحة النطاق والوصول إلى خادم الويب.
- استجابة غير صالحة: Let's Encrypt لا يمكنه الوصول إلى ملف التحقق.
- تم رفض الاتصال: قد يكون المنفذ 80 أو 443 مغلقًا.
- المهلة أثناء الاتصال: قد لا يتم توجيه المجال إلى الخادم أو قد يقوم جدار الحماية بحظره.
- غير مصرح به: ربما يعرض ملف التحقق من النطاق محتوى غير صحيح.
- عدد كبير جدًا من الشهادات: ربما تم إجراء محاولات الشهادة بشكل متكرر جدًا.
4. التحقق من توجيه IP للمجال
لكي يعمل تجديد الشهادة، يجب توجيه المجال إلى عنوان IP الصحيح للخادم.
dig domainadi.com +short
إذا لم يتم تثبيت Dig:
apt install dnsutils -y
على الأنظمة المستندة إلى CentOS:
yum install bind-utils -y
يجب أن يكون عنوان IP الذي يتم إرجاعه بواسطة المجال هو نفس عنوان IP الخاص بالخادم الذي سيتم تثبيت SSL عليه.
5. فحص المنافذ 80 و 443
غالبًا ما يريد Let's Encrypt الوصول إلى المنفذ 80 لمصادقة HTTP. إذا تم إغلاق المنفذ 80، فقد تفشل المصادقة.
ss -tulpn | grep -E ':80|:443'
إذا كنت تستخدم جدار حماية، فتأكد من فتح المنفذ 80 و443.
بالنسبة إلى UFW:
ufw allow 80/tcp ufw allow 443/tcp ufw reload
بالنسبة لجدار الحماية:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
6. اختبار تكوين Nginx أو Apache
إذا كان هناك خطأ في ملف تكوين خادم الويب، فقد لا تتم إعادة تحميل خدمة الويب بعد تحديث certbot.
بالنسبة لإنجينكس:
nginx -t
بالنسبة لأباتشي:
apachectl configtest
إذا لم تكن هناك أخطاء، يمكنك إعادة تثبيت الخدمات:
systemctl reload nginx
أو:
systemctl reload apache2
7. التجديد اليدوي لشهادة SSL
إذا كانت كافة عمليات التحقق صحيحة، فيمكنك تشغيل التحديث يدويًا:
certbot renew
مثال Nginx إذا كنت تحتاج فقط إلى إعادة الاعتماد لمجال معين:
certbot --nginx -d domainadi.com -d www.domainadi.com
مثال أباتشي:
certbot --apache -d domainadi.com -d www.domainadi.com
8. التحقق من جدولة التحديث التلقائي
عادةً ما يتم تحديث Certbot تلقائيًا باستخدام مؤقت النظام أو cron.
systemctl list-timers | grep certbot
للتحقق من حالة المؤقت:
systemctl status certbot.timer
إذا كان الموقت متوقفا:
systemctl enable certbot.timer systemctl start certbot.timer
الأخطاء الشائعة
- محاولة الحصول على SSL عندما يكون عنوان IP الخاص بالمجال خاطئًا
- أغلق المنفذ 80 وانتظر حتى تعمل مصادقة HTTP
- عدم التحقق من بنية المصادقة عند تشغيل وكيل Cloudflare
- الخلط بين خطأ تكوين Nginx/Apache وخطأ certbot
- عدم اختبار التجديد التلقائي حتى تنتهي صلاحية SSL
الأسئلة الشائعة
إذا انتهت صلاحية SSL، فهل سيتم إغلاق الموقع بالكامل؟
قد يعمل الموقع من الناحية الفنية، لكن المتصفح يظهر تحذيرًا أمنيًا. وهذا يقلل بشكل خطير من ثقة العملاء.
لماذا يفشل تجديد Certbot؟
عادةً ما يتم توجيه المجال إلى عنوان IP خاطئ، أو يكون المنفذ 80/443 مغلقًا، أو أن تكوين خادم الويب غير صحيح، أو لا يمكن الوصول إلى ملف التحقق.
هل يمثل تجديد SSL مشكلة عند استخدام Cloudflare؟
قد يؤثر وضع SSL أو تكوين الوكيل غير الصحيح على عملية التحقق. ويجب اختيار طريقة التحقق من النطاق وفقًا لذلك.
توصيات السلامة والعمليات
- تحقق من تواريخ انتهاء صلاحية SSL بانتظام.
- قم بتشغيل اختبار certbot Renew --dry-run بشكل دوري.
- لا تغلق المنافذ 80 و443 دون داع.
- بعد تغيير تكوين خادم الويب، قم بتشغيل nginx -t أو apachectl configtest.
- لا تهمل مراقبة SSL على المجالات التي تستخدم لوحات الدفع والعملاء.
تم إعداد هذه المقالة خصيصًا لـ PvPServer.