پرش به محتوا

Nginx و گواهی رایگان HTTPS در Debian

Nginx را از مخزن Debian نصب کنید، یک سایت تعریف کنید، با certbot گواهی Let's Encrypt بگیرید و تمدید خودکار را بررسی کنید.

Debian 13سطح: مقدماتیبرای: Debian 13، Debian 12به‌روزرسانی: ۱۶ آبان ۱۴۰۵

۱. نصب

bash
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

اگر فایروال nftables دارید (آموزش)، پورت‌های 80 و 443 باید باز باشند.

۲. سایت

bash
sudo mkdir -p /var/www/example.ir
echo '<h1>Debian + Nginx</h1>' | sudo tee /var/www/example.ir/index.html
sudo nano /etc/nginx/sites-available/example.ir
nginx
server {
    listen 80;
    listen [::]:80;
    server_name example.ir www.example.ir;
    root /var/www/example.ir;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
bash
sudo ln -s /etc/nginx/sites-available/example.ir /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx

۳. گواهی

bash
sudo certbot --nginx -d example.ir -d www.example.ir --redirect

۴. تمدید خودکار

بسته‌ی certbot در Debian یک systemd timer نصب می‌کند:

bash
systemctl list-timers certbot.timer
sudo certbot renew --dry-run

۵. چند تنظیم امنیتی

در /etc/nginx/nginx.conf داخل بخش http:

nginx
server_tokens off;

و در بلوک server سایت (بعد از اطمینان از کارکرد HTTPS):

nginx
add_header Strict-Transport-Security "max-age=15552000" always;
add_header X-Content-Type-Options nosniff always;
bash
sudo nginx -t && sudo systemctl reload nginx