ما هما Let's Encrypt و Certbot؟
Let's Encryptهيئة إصدار شهادات (CA) مجانية ومؤتمتة ومفتوحة. أما Certbot فهو أشهر عميل ACME يحصل على شهادات Let's Encrypt ويجددها تلقائيًا.
كونها مجانية ومؤتمتة جعلها أكثر هيئات إصدار الشهادات استخدامًا، لكن لها بعض القيود والأخطاء الشائعة. نتناول في هذا الدليل بالتفصيل أكثر أخطاء Certbot و Let's Encrypt شيوعًا وحلولها.
الخطأ 1: Challenge Failed — المنفذ 80 مغلق
في تحدّي HTTP-01 يجب أن تتمكن خوادم Let's Encrypt من الوصول إلى نطاقك عبر المنفذ 80.
# رسالة الخطأ:
# "Connection refused" أو "Timeout during connect"
# "Failed authorization procedure. domain.com (http-01): urn:ietf:params:acme:error:connection"
الحل
- افتح المنفذ 80 في جدار الحماية:
sudo ufw allow 80/tcp - تأكد من أن Nginx/Apache يستمع على المنفذ 80
- إذا كنت تستخدم Cloudflare فعطِّل الـ proxy مؤقتًا (وضع DNS Only)
- إذا تعذر فتح المنفذ 80 فاستخدم تحدّي DNS-01:
certbot --manual --preferred-challenges dns
الخطأ 2: Rate Limit Exceeded
تطبّق Let's Encrypt حدودًا لعدد الطلبات لمنع الاستخدام المفرط:
| نوع الحد | الحد | المدة |
|---|---|---|
| شهادة / اسم نطاق | 50 | أسبوع |
| تسجيل / IP | 10 | 3 ساعات |
| شهادة مكررة (Duplicate) | 5 | أسبوع |
| تحقق فاشل | 5 | ساعة |
الحل
- في مرحلة الاختبار استخدم بيئة
--staging:certbot --staging - إذا بلغت حد الطلبات فانتظر انقضاء مدة الانتظار
- راجع شهاداتك الحالية عبر crt.sh
- في الحالات العاجلة احصل على شهادة من CA مدفوعة (عبر DATASSL)
الخطأ 3: مشكلة في تحليل DNS
# "DNS problem: NXDOMAIN looking up A for domain.com"
# "DNS problem: query timed out"
الحل
- تحقق من أن سجل DNS A يشير إلى عنوان IP خادمك:
dig +short domain.com A - انتظر انتشار DNS (قد يستغرق من 24 إلى 48 ساعة في النطاقات الجديدة)
- إذا كنت تستخدم تحدّي DNS-01 فتحقق من انتشار سجل TXT:
dig +short _acme-challenge.domain.com TXT
الخطأ 4: خطأ في إعدادات Nginx/Apache
# "Could not automatically find a matching server block / virtual host"
# يتعذر على الأمر certbot --nginx أو certbot --apache العثور على الإعدادات
الحل
- Nginx: تأكد من أن السطر
server_name domain.com;مكتوب بشكل صحيح داخل كتلة server - Apache: يجب أن يكون
ServerName domain.comمعرّفًا داخل VirtualHost - فحص صياغة ملف الإعدادات:
nginx -tأوapachectl configtest - التثبيت اليدوي:
certbot certonly --webroot -w /var/www/html -d domain.com
الخطأ 5: فشل التجديد التلقائي
شهادات Let's Encrypt صالحة لمدة 90 يومًا. يحاول Certbot التجديد يوميًا عبر cron أو systemd timer، لكنه يفشل أحيانًا.
# اختبار التجديد
sudo certbot renew --dry-run
# التحقق من مهمة cron
sudo systemctl status certbot.timer
# أو
crontab -l | grep certbot
مشكلات التجديد الشائعة وحلولها
- خادم الويب متوقف: اضبط hook قبل التجديد وبعده:
--pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" - إصدار Certbot قديم:
sudo certbot --version— تحقق من الإصدار بهذا الأمر ثم حدِّثه - أذونات الملفات:
/etc/letsencrypt/— تحقق من أذونات هذا المجلد - المنفذ 80 مغلق: إذا كنت تستخدم وضع Standalone فيجب أن يكون المنفذ 80 مفتوحًا أثناء التجديد
الخطأ 6: DNS-01 إلزامي لشهادات Wildcard
لا يمكن الحصول على شهادات Wildcard (*.domain.com) إلا عبر تحدّي DNS-01.
# الحصول على شهادة Wildcard
sudo certbot certonly --manual --preferred-challenges dns -d "*.domain.com" -d "domain.com"
# سيطلب منك Certbot إنشاء سجل TXT:
# _acme-challenge.domain.com → "xxxxxxxxxxxx"
# بعد إضافة سجل DNS انتظر انتشاره ثم أكِّد
تحدّي DNS-01 التلقائي
تتوفر إضافات Certbot لمزوّدي DNS مثل Cloudflare و Route53 و DigitalOcean:
# Wildcard تلقائي عبر إضافة Cloudflare
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare.ini -d "*.domain.com" -d "domain.com"
الخطأ 7: "Too Many Certificates Already Issued"
لا يمكن الحصول على أكثر من 5 شهادات مكررة (duplicate) في الأسبوع لمجموعة النطاقات نفسها.
الحل
- اعرض قائمة الشهادات الحالية:
certbot certificates - جدِّد الشهادة الحالية بدلًا من طلب شهادة جديدة:
certbot renew - لتوسيع الشهادة:
certbot --expand -d domain.com -d www.domain.com
قيود Let's Encrypt
| الخاصية | Let's Encrypt | CA مدفوعة |
|---|---|---|
| مدة الصلاحية | 90 يومًا | حتى 200 يوم (منذ 15 مارس 2026) |
| التحقق | DV فقط | DV, OV, EV |
| الضمان | لا يوجد | يختلف حسب المنتج |
| الدعم | المجتمع | دعم احترافي |
| ختم الموقع | لا يوجد | ختم الثقة |
الخلاصة
Let's Encrypt حل ممتاز للمواقع الصغيرة والمشاريع الشخصية، لكنه مقيّد بحدود الطلبات وبمدة 90 يومًا وباقتصاره على DV. وتتعلق معظم أخطاء Certbot بالوصول إلى المنافذ وإعدادات DNS وأذونات الملفات. أما في مشاريع الشركات ومواقع التجارة الإلكترونية والحالات التي تتطلب ضمانًا، فالأفضل اختيار شهادة مدفوعة من CA موثوقة.