如何配置网站以启用HSTS?

HB 网络电脑 2022-07-19

HSTS的基本概念
HSTS(HTTP Strict Transport Security)是一种安全策略机制,通过HTTP响应头强制浏览器使用HTTPS连接,防止中间人攻击或协议降级。启用HSTS后,浏览器会自动将HTTP请求转换为HTTPS,提升安全性。

配置服务器添加HSTS响应头
在Web服务器配置中添加以下响应头,确保所有HTTPS响应中包含HSTS信息:

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

max-age:指定HSTS策略的有效期(单位:秒),例如31536000表示一年。
includeSubDomains:可选参数,将策略应用到所有子域名。
preload:可选参数,表示希望域名被纳入浏览器预加载列表。
针对不同服务器的配置示例

Nginx配置
在Nginx的HTTPS服务器块中添加以下内容:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache配置
在Apache的虚拟主机配置或.htaccess文件中添加:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

IIS配置
在IIS的web.config文件中添加以下内容:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

IIS HSTS文档:
https://learn.microsoft.com/zh-cn/iis/configuration/system.applicationhost/sites/site/hsts

测试HSTS配置
使用浏览器开发者工具或命令行工具(如curl)

curl -I https://yourdomain.com

检查返回信息输出中是否包含 HSTS 响应头 Strict-Transport-Security 信息。

提交到浏览器预加载列表(可选)
若希望域名被主流浏览器强制HTTPS访问(即使首次访问),可提交到HSTS预加载列表:

1.访问HSTS预加载列表提交页面
2.输入域名并检查是否符合要求(如HTTPS全站支持、HSTS头有效)。
3.提交申请,审核通过后会被纳入浏览器内置列表。

注意事项
在启用HSTS之前,请确保您的网站已经配置了有效的SSL证书。否则,启用HSTS可能会导致用户无法访问您的网站。

启用HSTS后,一旦生效无法轻易撤销,需确保全站HTTPS无故障。

初始阶段可设置较短的max-age(如300秒),测试无误后再延长。

若使用CDN或反向代理,确保其支持并正确传递HSTS头。

通过以上步骤,网站可有效启用HSTS,显著提升安全性。

PREV
玩客云docker版openwrt 玩客云刷入openwrt
NEXT
Linux设置定时重启