温馨提示×

Ubuntu Nginx SSL如何启用HSTS

小樊
45
2025-11-17 08:11:16
栏目: 云计算

在Ubuntu上使用Nginx启用HTTP Strict Transport Security (HSTS) 是一个很好的安全实践,可以确保所有通过HTTPS访问你的网站的流量都是加密的。以下是启用HSTS的步骤:

1. 安装Nginx

如果你还没有安装Nginx,可以使用以下命令进行安装:

sudo apt update sudo apt install nginx 

2. 配置Nginx

编辑Nginx的配置文件。通常情况下,主配置文件位于 /etc/nginx/nginx.conf,但你可能需要编辑特定站点的配置文件,这些文件通常位于 /etc/nginx/sites-available/ 目录下。

假设你的站点配置文件是 /etc/nginx/sites-available/yourdomain.com,你可以使用以下命令编辑它:

sudo nano /etc/nginx/sites-available/yourdomain.com 

3. 添加HSTS头

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预加载列表中,这需要在浏览器中进行额外的步骤。

4. 启用站点

如果你使用的是符号链接来启用站点配置文件,请确保创建符号链接:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ 

5. 测试Nginx配置

在重新加载Nginx之前,测试配置文件是否有语法错误:

sudo nginx -t 

6. 重新加载Nginx

如果配置文件没有问题,重新加载Nginx以应用更改:

sudo systemctl reload nginx 

7. 添加到HSTS预加载列表

要将你的域名添加到HSTS预加载列表中,你需要访问 HSTS Preload Submission 页面,并按照指示提交你的域名。这通常涉及下载一个包含你域名的文本文件,并将其上传到你的服务器。

8. 验证HSTS头

你可以使用浏览器开发者工具或命令行工具(如 curl)来验证HSTS头是否已正确添加:

curl -I https://yourdomain.com 

你应该看到类似以下的响应头:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload 

通过以上步骤,你就成功地在Ubuntu上使用Nginx启用了HSTS。

0