在Debian上配置Nginx SSL時,可以通過以下幾個步驟來保障安全性:
確保你使用的是最新版本的Nginx,因為新版本通常包含安全修復和性能改進。
sudo apt update
sudo apt install nginx
openssl生成強密碼。openssl passwd -6 -salt your_salt your_password
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
編輯Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/yourdomain.com),添加或修改以下配置:
server {
listen 443 ssl http2;
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;
ssl_prefer_server_ciphers on;
# HSTS (HTTP Strict Transport Security)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# 安全頭
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
# 限制請求體大小
client_max_body_size 50M;
# 禁用不必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 405;
}
# 日志記錄
access_log /var/log/nginx/yourdomain.com.access.log;
error_log /var/log/nginx/yourdomain.com.error.log;
# 靜態文件緩存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# 其他配置...
}
使用Certbot自動更新證書:
sudo certbot renew --dry-run
sudo systemctl reload nginx
確保防火墻配置正確,只允許必要的端口(如443和80)對外開放。
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw enable
定期進行安全審計,檢查Nginx配置和系統日志,確保沒有異?;顒?。
通過以上步驟,可以大大提高在Debian上運行Nginx SSL的安全性。