在Ubuntu上使用Nginx启用HTTP Strict Transport Security (HSTS) 是一个很好的安全实践,可以确保所有通过HTTPS访问你的网站的流量都是加密的。以下是启用HSTS的步骤:
如果你还没有安装Nginx,可以使用以下命令进行安装:
sudo apt update sudo apt install nginx 编辑Nginx的配置文件。通常情况下,主配置文件位于 /etc/nginx/nginx.conf,但你可能需要编辑特定站点的配置文件,这些文件通常位于 /etc/nginx/sites-available/ 目录下。
假设你的站点配置文件是 /etc/nginx/sites-available/yourdomain.com,你可以使用以下命令编辑它:
sudo nano /etc/nginx/sites-available/yourdomain.com 在 server 块中添加以下配置:
server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/ssl/certs/yourdomain.com.crt; ssl_certificate_key /etc/ssl/private/yourdomain.com.key; # 启用HSTS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; # 其他配置... } 解释:
max-age=31536000:HSTS策略的有效期为一年(以秒为单位)。includeSubDomains:将HSTS策略应用于所有子域名。preload:将你的域名添加到HSTS预加载列表中,这需要在浏览器中进行额外的步骤。如果你使用的是符号链接来启用站点配置文件,请确保创建符号链接:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ 在重新加载Nginx之前,测试配置文件是否有语法错误:
sudo nginx -t 如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx 要将你的域名添加到HSTS预加载列表中,你需要访问 HSTS Preload Submission 页面,并按照指示提交你的域名。这通常涉及下载一个包含你域名的文本文件,并将其上传到你的服务器。
你可以使用浏览器开发者工具或命令行工具(如 curl)来验证HSTS头是否已正确添加:
curl -I https://yourdomain.com 你应该看到类似以下的响应头:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload 通过以上步骤,你就成功地在Ubuntu上使用Nginx启用了HSTS。