Caddy: موقع مع شهادة جاهزة
خادم ويب يحصل على شهادات HTTPS ويجددها بنفسه. التركيب على VPS، وملف Caddyfile بسيط، والانتقال من Nginx.
آخر تحديث 23 أغسطس 2026
Caddy يفعل ما يفعله Nginx، لكنه يصدر شهادات Let's Encrypt ويجددها بنفسه. إعداد الموقع يتسع في ثلاثة أسطر، لذا فهو أقصر طريق للحصول على HTTPS عامل في أول مشروع على VDS.
التثبيت
Debian وUbuntu — من المستودع الرسمي:
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
> /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy
AlmaLinux وCentOS Stream:
dnf install -y 'dnf-command(copr)'
dnf copr enable -y @caddy/caddy
dnf install -y caddy && systemctl enable --now caddy
موقعك الأول
الإعداد كله موجود في /etc/caddy/Caddyfile:
example.ru {
root * /var/www/example.ru
file_server
encode gzip zstd
}
mkdir -p /var/www/example.ru
echo '<h1>Works</h1>' > /var/www/example.ru/index.html
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy
بعد ثوانٍ قليلة من أول طلب، يُفتح الموقع على https://example.ru. لا تحتاج إلى تشغيل أي شيء آخر: فقد جلب Caddy الشهادة بنفسه وسيجددها تلقائيًا.
تمرير تطبيق عبر الوسيط
إذا كانت لديك خدمة Node.js أو Python على منفذ محلي، فيبدو الإعداد هكذا:
api.example.ru {
reverse_proxy 127.0.0.1:3000
}
يضيف Caddy ترويستي X-Forwarded-For وX-Forwarded-Proto بنفسه. لمزيد من التفاصيل عن المخطط، راجع الوسيط العكسي.
المواقع المتعددة ليست سوى كتل متعددة في الملف نفسه، راجع مواقع متعددة على جهاز واحد.
ما يجب التحقق منه مسبقًا
- سجل A للنطاق يشير إلى عنوان الجهاز من «نظرة عامة» في لوحة التحكم
/hosting/vds/m/<id>؛ - المنفذان 80 و443 مفتوحان في جدار حماية الجهاز وغير مشغولين بواسطة Nginx أو Apache؛
- النطاق يُترجم فعلًا:
dig +short example.ru.
إذا لم يُنفَّذ البند الأول، سيفشل إصدار الشهادة: إذ يجب أن يصل Let's Encrypt إلى جهازك عبر اسم النطاق.
الأخطاء الشائعة
| العَرَض | السبب |
|---|---|
could not get certificate | النطاق لا يشير إلى الجهاز، أو المنفذ 80 مغلق |
address already in use | Nginx أو Apache يعمل — أوقف أحدهما |
| يُفتح الموقع عبر HTTP فقط | ملف Caddyfile يحدد :80 أو http:// قبل الاسم |
| محاولات إصدار كثيرة جدًا | حدود Let's Encrypt — استخدم tls internal لتصحيح الأخطاء |
السجلات: journalctl -u caddy -f.
يخزّن Caddy الشهادات في
/var/lib/caddy/.local/share/caddy. عند إعادة تثبيت النظام من تبويب «الوصول»، انسخ هذا الدليل، وإلا سيبدأ الإصدار من الصفر بعد إعادة التثبيت.