在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访问你的网站。