عندك سيرفر لينكس في مرام هوست ودومين، وتريد أن يفتح موقعك على https:// بقفل أخضر؟ يجمع هذا الدليل الشامل تثبيت Nginx وشهادة SSL مجانية في مسار واحد: ننصّب Nginx، ونربط الدومين بالسيرفر، ثم نحصل على شهادة SSL مجانية من Let’s Encrypt تتجدد وحدها. إعداد Nginx وشهادة SSL مجانية أبسط مما تظنّ؛ نفّذنا الخطوات كلها على سيرفر حقيقي وحصلنا على شهادة فعلية، وهذه المخرجات كما ظهرت.
⚡ الإجابة المختصرة
وجّه سجل A للدومين إلى عنوان سيرفرك، ثم: sudo apt install -y nginx، وأنشئ ملف الموقع في /etc/nginx/sites-available/ مع server_name دومينك، وفعّله وsudo nginx -t && sudo systemctl reload nginx، وأخيرًا sudo apt install -y certbot python3-certbot-nginx && sudo certbot --nginx -d دومينك --redirect.
محتويات الدليل
لماذا تحتاج Nginx وشهادة SSL مجانية؟
قبل الخطوات، لماذا هذا المسار تحديدًا؟ لأن Nginx وشهادة SSL مجانية يمنحانك موقعًا سريعًا وآمنًا بلا تكلفة:
- HTTPS ضروري اليوم: المتصفحات تحذّر من المواقع بلا شهادة، وجوجل يفضّل HTTPS في ترتيب النتائج.
- مجاني بالكامل: شهادات Let’s Encrypt مجانية وتتجدد تلقائيًا كل 90 يومًا بلا تدخّل.
- Nginx سريع وخفيف: يخدم آلاف الطلبات بموارد قليلة، ويعمل وسيطًا (reverse proxy) أمام تطبيقاتك.
- ثقة الزائر: القفل الأخضر يرفع مصداقية متجرك أو خدمتك ويحمي بيانات المستخدمين.
باختصار، إعداد Nginx وشهادة SSL مجانية خطوة أساسية لأي موقع احترافي. وللتوثيق الرسمي راجع توثيق Nginx وLet’s Encrypt.
قبل أن تبدأ
- المنفذان 80 و443 مفتوحان في جدار لوحة مرام وفي ufw — وهما مفتوحان افتراضيًا في قوالب مرام. إن غيّرت شيئًا راجع دليل جدار الحماية.
- لا يستعمل برنامج آخر المنفذين (مثل Apache أو حاوية Docker). افحص بـ
sudo ss -tlnp | grep -E ":80 |:443 ". في سيرفرنا كانت حاوية Caddy تستعملهما فأوقفناها أولًا. - دومين تملكه (من مرام أو أي مسجّل). في الأمثلة نستعمل
203-0-113-10.sslip.io— ضع دومينك مكانه.
الخطوة 1: اربط الدومين بالسيرفر (سجل A)
من لوحة الدومين (في مرام: النطاقات ← إدارة DNS، أو لوحة Cloudflare إن كنت تستعملها) أضف سجلين:
ثم تأكد أن الدومين يشير إلى سيرفرك (قد يستغرق الانتشار من دقائق إلى ساعات) — من أي جهاز:
nslookup 203-0-113-10.sslip.io 1.1.1.1
# Name: 203-0-113-10.sslip.io
# Address: 203.0.113.10 ← يجب أن يظهر عنوان سيرفرك
إن كنت تستعمل Cloudflare: اجعل السحابة رمادية (DNS only) أثناء إصدار الشهادة، ثم فعّلها بعد ذلك مع وضع SSL Full (strict).
الخطوة 2: ثبّت Nginx

الخطوة 3: ملفات موقعك وملف الإعداد
ضع ملفات موقعك في مجلد مثل /var/www/shop (بـscp أو WinSCP)، ثم أنشئ ملف إعداد للموقع وفعّله وافحصه:
sudo mkdir -p /var/www/shop
sudo chown -R www-data:www-data /var/www/shop
sudo nano /etc/nginx/sites-available/shop # الصق الإعداد أدناه

واحذف الموقع الافتراضي حتى لا تظهر صفحة «Welcome to nginx» بدل موقعك: sudo rm /etc/nginx/sites-enabled/default && sudo systemctl reload nginx. واجهنا هذا فعلًا: قبل حذفه ظهرت الصفحة الافتراضية في أحد الاختبارات.
الخطوة 4: شهادة SSL مجانية بأمر واحد
أداة certbot تطلب الشهادة من Let’s Encrypt، وتعدّل ملف Nginx بنفسها، وتضيف التحويل من HTTP إلى HTTPS (--redirect):

لعدة دومينات أضف كل واحد بـ-d: sudo certbot --nginx -d example.com -d www.example.com --redirect. وفي أول تشغيل يسألك عن بريد للتنبيهات والموافقة على الشروط.
الخطوة 5: تأكد من HTTPS والتجديد التلقائي
بعد إتمام إعداد Nginx وشهادة SSL مجانية، تبقّى التأكّد من الاستمرارية: الشهادة صالحة 90 يومًا، وcertbot يضيف مؤقتًا يجددها قبل انتهائها. تأكد من ذلك مرة واحدة، ثم افتح الموقع من جهازك:


مشاكل شائعة
إضافة: Nginx أمام تطبيق (n8n أو Node أو Uptime Kuma)
نفس مبدأ Nginx وشهادة SSL مجانية ينطبق هنا: إن كان تطبيقك يعمل على منفذ داخلي (مثل 3001)، اجعل Nginx يمرر الطلبات إليه بدل فتح المنفذ للعالم، ثم أصدر الشهادة كما في الخطوة 4:
server {
listen 80;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; # لدعم WebSocket
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
نصائح الأمان والأداء
بعد تشغيل Nginx وشهادة SSL مجانية، حسّن الأمان والأداء بهذه الإضافات:
- فعّل HTTP/2: أضف
http2إلى سطرlisten 443لتسريع تحميل الصفحات على HTTPS. - ترويسات أمان: أضف
Strict-Transport-Security(HSTS) وX-Content-Type-Optionsلتقوية الحماية. - ضغط gzip أو brotli: يقلّل حجم الصفحات ويسرّع التصفّح كثيرًا.
- أخفِ إصدار Nginx:
server_tokens off;يقلّل المعلومات المتاحة للمهاجم. - راقب التجديد: تأكد أن مؤقت certbot يعمل بـ
systemctl list-timers | grep certbot.
ولاختبار قوة إعداد SSL استعمل أدوات مثل SSL Labs، واضبط الإعدادات حسب مولّد إعدادات SSL من Mozilla.
أسئلة شائعة عن Nginx وشهادة SSL مجانية
كيف أحصل على شهادة SSL مجانية لـNginx؟
ثبّت certbot python3-certbot-nginx ثم شغّل sudo certbot --nginx -d دومينك --redirect. الشهادة من Let’s Encrypt مجانية بالكامل، وcertbot يعدّل إعداد Nginx ويضيف تحويل HTTPS تلقائيًا.
هل شهادة Let’s Encrypt المجانية آمنة مثل المدفوعة؟
نعم؛ تستعمل تشفير TLS نفسه وموثوقة في كل المتصفحات. الفرق الوحيد أن صلاحيتها 90 يومًا مع تجديد تلقائي بدل سنة، ولا تقدّم شهادات EToV الموسّعة.
هل تتجدد الشهادة تلقائيًا؟
نعم؛ certbot يضيف مؤقتًا يجدّد الشهادة قبل انتهائها. تأكّد مرة واحدة بـsudo certbot renew --dry-run وsystemctl list-timers | grep certbot.
لماذا يفشل certbot بخطأ Timeout أو unauthorized؟
غالبًا لأن الدومين لا يشير إلى السيرفر بعد (انتشار DNS)، أو المنفذ 80 مغلق في جدار اللوحة أو ufw، أو Cloudflare مفعّل (برتقالي) أثناء الإصدار — اجعله رماديًا مؤقتًا.
Nginx أم Apache للـSSL المجاني؟
كلاهما يدعم Let’s Encrypt، لكن Nginx أخفّ وأسرع وأسهل كـreverse proxy أمام التطبيقات. هذا الدليل يستعمل Nginx وشهادة SSL مجانية معًا.
كيف أضيف الشهادة لعدة دومينات؟
كرّر -d لكل دومين في الأمر نفسه: sudo certbot --nginx -d example.com -d www.example.com --redirect.
