شهادة Let's Encrypt مجانية
كيف تُصدر شهادة HTTPS وتجددها تلقائيًا على VPS باستخدام certbot، بما في ذلك حالة كون المنفذ 80 مستخدمًا بالفعل.
آخر تحديث 23 أغسطس 2026
تحتاج إلى شهادة حتى لا يعرض المتصفح رسالة "غير آمن" وحتى تعمل النماذج والمدفوعات من الأساس. تصدر Let's Encrypt شهادة مجانية لمدة 90 يومًا مع تجديد تلقائي.
التحضير
تحقق من ثلاثة أمور، وإلا سيفشل الإصدار:
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- يشير سجل A الخاص بالنطاق إلى العنوان الموجود في تبويب "نظرة عامة" بلوحة التحكم على المسار
/hosting/vds/m/<id>؛ - المنفذ 80 متاح من الخارج — يستخدمه Let's Encrypt للتحقق من ملكية النطاق؛
- خادم ويب يعمل: Nginx أو Apache.
إذا كنت تستخدم Caddy، فلا حاجة لفعل أي شيء — فهو يصدر الشهادات بنفسه.
الإصدار
apt install -y certbot python3-certbot-nginx # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx # AlmaLinux, CentOS Stream
certbot --nginx -d example.ru -d www.example.ru
بالنسبة إلى Apache، المسار نفسه مع python3-certbot-apache والعلامة --apache. يضيف Certbot كتلة الشهادة وإعادة التوجيه من HTTP إلى HTTPS إلى الإعدادات بنفسه.
تحقق من النتيجة:
certbot certificates
curl -I https://example.ru
التجديد التلقائي
تثبّت الحزمة مؤقتًا نظاميًا يتولى التجديد أيضًا. تأكد من أن المؤقت نشط ونفّذ تجديدًا تجريبيًا:
systemctl list-timers | grep certbot
certbot renew --dry-run
التشغيل التجريبي إلزامي. فهو يكتشف الحالة التي سيتعطل فيها التجديد بعد شهرين — على سبيل المثال، إذا أعدت تسمية إعدادات الموقع ولم يعد certbot يعرف أين يضع ملف التحقق.
عندما يكون المنفذ 80 مشغولًا
إذا كان تطبيق يعمل على المنفذ 80 ولا يمكنك وضع خادم ويب عليه، فاستخدم وضعًا منفصلًا:
certbot certonly --standalone --preferred-challenges http -d example.ru
سيشغّل Certbot خادمه المؤقت الخاص طوال مدة التحقق. وللقيام بذلك، سيتعين عليك إيقاف التطبيق: يمكن لـ --pre-hook و--post-hook فعل ذلك تلقائيًا.
بعد الإصدار، توجد الشهادات في /etc/letsencrypt/live/example.ru/: fullchain.pem وprivkey.pem.
الأخطاء الشائعة
| العَرَض | السبب |
|---|---|
Timeout during connect | المنفذ 80 محجوب بواسطة الجدار الناري، أو يشير النطاق إلى جهاز آخر |
too many certificates already issued | لقد بلغت الحد الأسبوعي للنطاق — انتظر أو أصلح الأخطاء باستخدام --staging |
| يقدّم الموقع الشهادة القديمة بعد الإصدار | لم تعد تحميل خادم الويب: systemctl reload nginx |
| انتهت صلاحية الشهادة | المؤقت معطّل — تحقق من systemctl enable --now certbot.timer |
يُعدّ الدليل
/etc/letsencryptجزءًا من بياناتك. لا توجد نسخ احتياطية تلقائية للجهاز، لذا أدرجه في نسختك الاحتياطية إلى جانب إعدادات خادم الويب.