🔹 SSL/TLS هما بروتوكولات تشفير تُستخدم لتأمين البيانات بين المستخدمين والخوادم، مما يحمي المعلومات الحساسة مثل كلمات المرور، المعاملات المالية، والاتصالات المشفرة من الاعتراض والتلاعب.
1️⃣ تثبيت Let’s Encrypt لإنشاء شهادة SSL مجانية
✔️ قم بتثبيت Certbot على Ubuntu:
bash
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
✔️ احصل على شهادة SSL عبر Let’s Encrypt:
bash
sudo certbot --nginx -d yourdomain.com
🔹 استبدل yourdomain.com
بنطاق موقعك الفعلي.
✔️ تحقق من صحة التثبيت:
bash
sudo certbot renew --dry-run
2️⃣ إعداد SSL/TLS على Nginx
افتح ملف إعدادات موقع Nginx:
bash
sudo nano /etc/nginx/sites-available/default
وأضف التالي داخل server block:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
✔️ تحقق من صحة الإعدادات:
bash
sudo nginx -t
✔️ إعادة تشغيل Nginx لتفعيل التشفير:
bash
sudo systemctl restart nginx
3️⃣ إجبار جميع الاتصالات على HTTPS
🔹 لمنع الوصول غير الآمن عبر HTTP، قم بإعادة توجيه الطلبات إلى HTTPS:
nginx
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
✔️ تأكد من إعادة تشغيل السيرفر لتطبيق التعديلات:
bash
sudo systemctl restart nginx
4️⃣ ضبط إعدادات TLS لتعزيز الأمان
✔️ تعطيل البروتوكولات القديمة مثل TLS 1.0 و 1.1:
nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
✔️ تفعيل HTTP Strict Transport Security (HSTS):
nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";