在Nginx中配置HTTP Strict Transport Security (HSTS) 是一個很好的安全實踐,它可以確保瀏覽器始終通過HTTPS與你的服務器通信,而不是通過不安全的HTTP。以下是如何在Nginx中配置HSTS的步驟:
打開Nginx配置文件:
通常,Nginx的主配置文件位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/yourdomain.com
。
編輯配置文件:
使用你喜歡的文本編輯器(如 nano
, vim
, VSCode
等)打開配置文件。
添加HSTS頭:
在 server
塊中添加以下配置:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
# 強制重定向到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
# SSL證書和密鑰路徑
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
# HSTS配置
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 其他SSL配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 其他配置...
}
解釋:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
:這行代碼添加了HSTS頭。max-age=31536000
表示HSTS策略的有效期為一年(31536000秒),includeSubDomains
表示該策略適用于所有子域名。always
:確保無論響應狀態碼是什么,HSTS頭都會被添加。測試配置: 在重新加載Nginx之前,先測試配置文件是否有語法錯誤:
sudo nginx -t
重新加載Nginx: 如果配置文件沒有問題,重新加載Nginx以應用更改:
sudo systemctl reload nginx
或者如果你使用的是較舊的系統初始化系統:
sudo service nginx reload
完成以上步驟后,你的Nginx服務器就會配置HSTS,瀏覽器將會記住這個策略,并在一年內始終通過HTTPS訪問你的網站。