Skip to content
VDS · المواقع وخوادم الويب

شهادة 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 جزءًا من بياناتك. لا توجد نسخ احتياطية تلقائية للجهاز، لذا أدرجه في نسختك الاحتياطية إلى جانب إعدادات خادم الويب.