🔹 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";