在 Ubuntu 上为 Nginx 配置 HTTP Strict Transport Security (HSTS) 是一个很好的安全实践,可以确保浏览器始终通过 HTTPS 访问您的网站。以下是详细的步骤:
首先,确保您的系统上已经安装了 Nginx。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
确保您的 Nginx 配置文件中已经配置了 HTTPS。通常,这涉及到设置 SSL 证书和密钥。以下是一个基本的 HTTPS 配置示例:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;
}
}
在 Nginx 配置文件中添加 HSTS 头。您可以在 server 块中添加以下配置:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
这里的 max-age=31536000 表示 HSTS 策略的有效期为一年(365 天)。includeSubDomains 表示该策略也适用于所有子域名。
保存配置文件并重新加载 Nginx 以应用更改:
sudo nginx -t # 检查配置文件是否有语法错误
sudo systemctl reload nginx # 重新加载 Nginx 配置
您可以使用浏览器的开发者工具或在线工具(如 SSL Labs)来验证 HSTS 配置是否正确应用。
preload 指令,并将您的域名提交到 HSTS Preload List。add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
通过以上步骤,您可以在 Ubuntu 上为 Nginx 配置 HSTS,从而提高网站的安全性。