في الويب الحديث، لم يعد تشفير البيانات رفاهية؛ بل أصبح ضرورة حتمية لحماية زوار موقعك وتحسين ترتيبك في نتائج بحث جوجل (Google SEO). تصفح أي موقع لا يحتوي على قفل الأمان الأخضر (HTTPS) يعرض الزوار لتحذير مخيف في المتصفحات يخبرهم بأن “الموقع غير آمن”.
لحسن الحظ، لم تعد بحاجة لدفع مئات الدولارات سنوياً لشراء شهادات الأمان. بفضل مبادرة Let’s Encrypt غير الربحية، يمكنك الحصول على شهادات SSL/TLS مجانية وموثوقة تماماً. وفي هذا الدليل، سنشرح كيفية تأمين خادم ويب Nginx باستخدام Let’s Encrypt وتفعيل ميزة التجديد التلقائي لضمان عدم توقف الحماية أبداً.
ما هو Let’s Encrypt و Certbot؟
Let’s Encrypt هي سلطة إصدار شهادات (CA) مفتوحة ومجانية ومؤتمتة تقدم شهادات تشفير مقبولة في جميع متصفحات الويب الحديثة.
ولأن Let’s Encrypt تعتمد على الأتمتة، تم تطوير أداة Certbot بواسطة منظمة EFF (Electronic Frontier Foundation). وهي الأداة البرمجية التي تقوم بفحص سيرفرك وتوليد الشهادات وضبط خادم Nginx تلقائياً دون أي تدخل يدوي منك.
المتطلبات الأساسية قبل البدء
قبل البدء بتنفيذ الأوامر، تأكد من توفر الشروط التالية:
- خادم يعمل بنظام Ubuntu أو Debian ومثبت عليه خادم ويب Nginx.
- اسم نطاق (Domain Name) مسجل وموجه بالكامل إلى عنوان IP الخاص بسيرفرك (عبر سجلات A Record في الـ DNS). في هذا الدليل سنفترض أن النطاق هو
example.com. - صلاحية الوصول للسيرفر كمسؤول (Root) أو مستخدم يمتلك صلاحيات
sudo.
الخطوة 1: تثبيت Certbot وإضافة Nginx
الأداة المفضلة والموصى بها رسمياً لتثبيت Certbot هي عبر مدير الحزم Snap (المثبت افتراضياً في نسخ Ubuntu الحديثة). قم بتحديث حزم السيرفر أولاً ثم ثبت Certbot:
sudo apt update
sudo apt install snapd
sudo snap install --classic certbot
بعد اكتمال التثبيت، قم بربط أمر Certbot بالنظام لتتمكن من تشغيله من أي مكان في الطرفية:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
الخطوة 2: التحقق من إعدادات Nginx
لكي يتمكن Certbot من قراءة وتأمين نطاقك تلقائياً، يجب أن يحتوي ملف إعداد خادم Nginx الخاص بموقعك على اسم النطاق الصحيح في سطر server_name.
افتح ملف إعداد موقعك (مثلاً: /etc/nginx/sites-available/example.com) وتأكد من الآتي:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
}
تأكد من صحة إعدادات Nginx وإعادة تشغيله:
sudo nginx -t
sudo systemctl reload nginx
الخطوة 3: الحصول على شهادة SSL وتكوين Nginx تلقائياً
الآن، سنقوم بتشغيل Certbot باستخدام إضافة Nginx التي ستقوم بالتحقق من النطاق وتوليد الشهادة وتعديل ملف إعداد Nginx وتفعيل التوجيه التلقائي من HTTP إلى HTTPS الآمن بلمرة واحدة:
sudo certbot --nginx -d example.com -d www.example.com
ما سيحدث أثناء التشغيل:
- سيطلب منك إدخال بريدك الإلكتروني (لاستلام إشعارات تجديد الشهادة أو التنبيهات الأمنية).
- الموافقة على شروط الخدمة لـ Let’s Encrypt بالضغط على A.
- سيسألك عما إذا كنت ترغب في مشاركة بريدك الإلكتروني مع EFF.
- سيقوم Certbot بالاتصال بخوادم Let’s Encrypt للتحقق من أنك تملك النطاق فعلياً عبر آلية فحص سريعة (Challenge).
- بمجرد النجاح، سيقوم Certbot بكتابة شهادات الأمان في مسار آمن وتعديل ملف إعداد Nginx تلقائياً لإضافة إعدادات SSL وإعادة تشغيل الخدمة.
مبروك! موقعك الآن مشفر بالكامل ويعمل عبر بروتوكول HTTPS الآمن.
الخطوة 4: التحقق من التجديد التلقائي للشهادات
شهادات Let’s Encrypt صالحة لمدة 90 يوماً فقط. ولكن الميزة الكبرى هي أن Certbot يقوم بإنشاء وظيفة مجدولة تلقائياً (Cron job أو systemd timer) تقوم بفحص وتجديد الشهادات التي يقل عمرها عن 30 يوماً بشكل يومي وصامت.
للتحقق من أن آلية التجديد التلقائي تعمل دون أخطاء، قم بتشغيل عملية محاكاة للتجديد (Dry Run):
sudo certbot renew --dry-run
إذا انتهت المحاكاة برسالة نجاح (Success)، فهذا يعني أن سيرفرك سيقوم بتجديد شهاداته تلقائياً مدى الحياة دون أي تدخل يدوي منك.
نصائح إضافية لزيادة أمان خادم Nginx
لتحقيق أقصى درجات الأمان وحماية خادمك من الهجمات، ننصحك بإضافة الإعدادات التالية لملف تكوين Nginx:
1. تفعيل بروتوكول HTTP/2
يساعد بروتوكول HTTP/2 على زيادة سرعة تحميل الموقع بشكل ملحوظ عبر إرسال ملفات متعددة في نفس الاتصال. لتفعيله، تأكد من وجود http2 في سطر الاستماع الخاص بـ SSL في إعدادات Nginx:
listen 443 ssl http2;
2. تفعيل HSTS (HTTP Strict Transport Security)
تخبر هذه الميزة متصفحات الزوار بوجوب الاتصال بموقعك عبر HTTPS الآمن دائماً، مما يمنع هجمات التحويل والتنصت. أضف السطر التالي داخل كتلة السيرفر الآمن:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
خاتمة
الحصول على شهادة SSL مجانية وتأمين خادم Nginx أصبح أمراً في غاية السهولة بفضل Let’s Encrypt وأداة Certbot. بخطوات بسيطة وأمر تشغيل واحد، يمكنك نقل موقعك لمستوى جديد من الأمان والموثوقية وسرعة الأداء.
تذكر دائماً: التشفير هو الخطوة الأولى لتأمين موقعك، ولكن يجب عليك أيضاً متابعة تحديثات الخادم وجدار الحماية بانتظام لحماية كامل بياناتك.
اترك تعليقاً
يجب أنت تكون مسجل الدخول لتضيف تعليقاً.