HTTP Strict Transport Security(严格传输安全,简称 HSTS)是一种安全机制,旨在确保网站始终通过安全的 HTTPS 协议进行访问,而不会被劫持或 downgrade 成 不安全的 HTTP。HSTS 是通过在服务器响应中添加特定的 HTTP 头信息来实现的。
当浏览器首次访问启用了 HSTS 的网站时,服务器会将一个包含 HSTS 配置的响应头发送给浏览器。浏览器收到该响应头后,会将此网站添加到内部的 HSTS 列表中,并对未来的请求强制使用 HTTPS。这样,即使用户手动输入了不安全的 HTTP URL 或点击了不安全的链接,浏览器也会自动将请求转发为 HTTPS 请求。
HSTS 提供了一种额外的安全层,防止中间人攻击和 SSL/TLS 证书欺骗。它还有助于提高网站的性能和安全性,同时向用户传达了网站的安全性。
请注意,一旦启用了 HSTS,用户将无法通过点击链接或手动输入不安全的 HTTP URL 访问您的网站。因此,在启用 HSTS 之前,请确保您的网站已正确配置并支持 HTTPS,并且您的 SSL/TLS 证书有效。
要实现 HSTS(HTTP Strict Transport Security),您需要在 Web 服务器或应用程序中进行配置。下面是一个通用的实现步骤:
- 确认您的网站已启用 HTTPS,并且可以通过 HTTPS 访问。
- 在 Web 服务器上配置 HSTS 的响应头。具体配置方法取决于您使用的服务器软件。
- 对于 Apache 服务器:在您的虚拟主机配置或
.htaccess
文件中添加以下行:
- 对于 Apache 服务器:在您的虚拟主机配置或
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
对于 Nginx 服务器:在您的服务器块配置或站点配置中添加以下行:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
- 对于其他服务器软件,请参考相应的文档以查找如何配置 HSTS 响应头。
- 可选步骤:设置
includeSubDomains
标志以包括所有子域名。这将强制浏览器在访问您的网站的任何子域名时只使用 HTTPS。 - 可选步骤:如果您希望将您的网站添加到 HSTS 预加载列表中,以便浏览器始终通过 HTTPS 访问它(即使用户从未访问过您的网站),访问 hstspreload.org ,并使用表格提交你的域名。若是符合条件,你的域名将被加入队列。
配置完成后,当用户第一次访问您的网站时,服务器将发送包含 HSTS 响应头的响应,指示浏览器仅通过 HTTPS 访问该网站。然后,浏览器会在指定的时间范围内记住此设置,并自动将来的请求转发到 HTTPS。
请注意,在启用 HSTS 后,确保您的网站 SSL/TLS 证书有效,并且没有任何配置问题,以避免访问问题和安全问题。同时,确保在进行任何重要配置更改之前备份您的服务器和网站。