目录
如何在 Web 服务器中配置 HSTS?
HSTS 头字段各参数的作用
提交到 HSTS Preload 列表需要注意什么?
测试 HSTS 是否生效
首页 运维 nginx 如何启用HTTP严格运输安全(HSTS)?

如何启用HTTP严格运输安全(HSTS)?

Jul 12, 2025 am 01:00 AM
https hsts

启用 HSTS 的方法是在 HTTPS 网站中配置 Strict-Transport-Security 响应头,具体操作为:1. Nginx 在 server 块添加 add_header 指令;2. Apache 在配置文件或 .htaccess 添加 Header 指令;3. IIS 在 web.config 添加 customHeaders;需确保站点已完整支持 HTTPS,参数包括 max-age(有效期)、includeSubDomains(子域名生效)、preload(预加载列表),提交到 HSTS Preload 列表前提包括根域名和子域名均支持 HTTPS、有有效证书、根路径返回 200 响应,可通过浏览器开发者工具、SSL Labs Test 或 curl 命令测试是否生效。

How to enable HTTP Strict Transport Security (HSTS)?

启用 HTTP 严格传输安全(HSTS)其实就是在你的 HTTPS 网站上配置一个响应头,告诉浏览器今后访问这个网站必须走 HTTPS,不能用明文的 HTTP。这样做的好处是防止 SSL 剥离攻击、强制加密连接,提升安全性。

下面说说怎么在不同场景下正确启用 HSTS。


如何在 Web 服务器中配置 HSTS?

主流的 Web 服务器都支持添加 HSTS 响应头,关键是在响应中加入:

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

具体操作如下:

  • Nginx:在 HTTPS 的 server 块里加上:
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
  • Apache:在虚拟主机配置或 .htaccess 中添加:
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  • IIS:在 web.config 文件的 system.webServer 段落添加:
    <httpProtocol>
      <customHeaders>
        <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
      </customHeaders>
    </httpProtocol>

注意:配置前确保你的站点已经完整支持 HTTPS,否则开启后可能会导致无法访问。


HSTS 头字段各参数的作用

  • max-age:指定浏览器强制使用 HTTPS 的时间(单位秒),比如 31536000 秒就是一年。
  • includeSubDomains:表示该策略适用于所有子域名。
  • preload:允许你将域名提交到浏览器内置的 HSTS 预加载列表中,这样用户第一次访问时也强制 HTTPS。

如果你只是想先测试,可以暂时不加 preload,等确认没问题再加上。一旦提交到预加载列表,就不能轻易撤回了。


提交到 HSTS Preload 列表需要注意什么?

如果你想让你的域名被主流浏览器默认以 HTTPS 方式加载,就得去 //m.sbmmt.com/link/ef96003dff3714cf3720aee9b14503b7 提交申请。

前提条件包括:

  • 根域名和所有子域名都必须支持 HTTPS
  • 必须有有效的证书
  • 必须在根路径返回 200 的响应(用于验证)
  • 已经正确设置了 HSTS 响应头,包含 includeSubDomainspreload

提交之后,需要等待一段时间才会被加入 Chrome、Firefox 等浏览器的预加载列表中。


测试 HSTS 是否生效

你可以通过以下方式检查是否设置成功:

  • 使用浏览器开发者工具(F12),查看响应头中是否有 Strict-Transport-Security
  • 用在线工具如 SSL Labs Test 检查你的网站安全配置
  • 尝试用 curl 命令查看响应头:
    curl -I http://yourdomain.com

    如果看到 HSTS 头,并且值符合预期,就说明配置生效了。


    基本上就这些。配置 HSTS 不复杂,但容易忽略细节,比如误加 preload 或者没覆盖子域名,所以建议逐步来,先测试再上线。

    以上是如何启用HTTP严格运输安全(HSTS)?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

Rimworld Odyssey如何钓鱼
1 个月前 By Jack chen
Kimi K2:最强大的开源代理模型
1 个月前 By Jack chen
我可以有两个支付帐户吗?
1 个月前 By 下次还敢

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1602
29
PHP教程
1506
276
如何使用Nginx Proxy Manager实现HTTP到HTTPS的自动跳转 如何使用Nginx Proxy Manager实现HTTP到HTTPS的自动跳转 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager实现HTTP到HTTPS的自动跳转随着互联网的发展,越来越多的网站开始采用HTTPS协议来加密传输数据,以提高数据的安全性和用户的隐私保护。由于HTTPS协议需要SSL证书的支持,因此在部署HTTPS协议时需要有一定的技术支持。Nginx是一款强大且常用的HTTP服务器和反向代理服务器,而NginxProxy

如何使用Nginx Proxy Manager实现HTTPS协议下的反向代理 如何使用Nginx Proxy Manager实现HTTPS协议下的反向代理 Sep 26, 2023 am 08:40 AM

如何使用NginxProxyManager实现HTTPS协议下的反向代理近年来,随着互联网的普及和应用场景的多样化,网站和应用程序的访问方式变得越来越复杂。为了提高网站的访问效率和安全性,很多网站开始采用反向代理来处理用户的请求。而针对HTTPS协议的反向代理,在保护用户隐私和确保通信安全性方面扮演着重要的角色。本文将介绍如何使用NginxProxy

tomcat如何配置https tomcat如何配置https Jan 05, 2024 pm 05:15 PM

配置步骤:1、获取SSL证书;2、配置SSL证书;3、编辑Tomcat配置文件;4、重启Tomcat。详细介绍:1、需要获取SSL证书,可以自签名证书,也可以从认证机构(如Let’s Encrypt)获得有效的SSL证书;2、将获得的SSL证书和私钥文件放置在服务器上,确保这些文件位于安全的位置,只有具有足够权限的用户可以访问;3、编辑Tomcat配置文件等等。

Nginx与SSL:配置HTTPS保护Web服务器 Nginx与SSL:配置HTTPS保护Web服务器 Jun 09, 2023 pm 09:24 PM

Nginx是一个高性能的Web服务器软件,同时也是一款强大的反向代理服务器和负载均衡器。随着互联网的迅速发展,越来越多的网站开始采用SSL协议保护敏感用户数据,而Nginx也提供了强大的SSL支持,使得Web服务器的安全性能更进一步。本文将介绍如何配置Nginx以支持SSL协议,并保护Web服务器的安全性能。什么是SSL协议?SSL(SecureSocke

解决方案:urllib3 ProxySchemeUnknown(proxy.scheme) 解决方案:urllib3 ProxySchemeUnknown(proxy.scheme) Feb 29, 2024 pm 07:01 PM

报错的原因urllib3的ProxySchemeUnknown(proxy.scheme)错误通常是由于使用了不支持的代理协议导致的。在这种情况下,urllib3不能识别代理服务器的协议类型,因此无法使用代理进行网络连接。要解决这个问题,您需要确保使用支持的代理协议,例如Http或https.如何解决要解决这个问题,您需要确保使用支持的代理协议,例如HTTP或HTTPS。您可以通过设置urllib3的代理参数来解决这个问题。如果是使用http代理,代码示例如下:importurllib3http

如何设置PHP表单的HTTPS安全连接? 如何设置PHP表单的HTTPS安全连接? Aug 17, 2023 pm 03:25 PM

如何设置PHP表单的HTTPS安全连接?随着互联网的发展,安全性在网页开发中变得越来越重要。加密传输协议HTTPS在保护数据传输过程中起到关键的作用。在使用PHP表单进行数据传输时,我们可以采取一些措施来保证连接的安全性。本文将指导您如何设置PHP表单的HTTPS安全连接,并附带一些代码示例。购买SSL证书首先,您需要购买一个SSL证书。SSL证书是保证网站

Java API 开发中使用 Https 进行数据传输 Java API 开发中使用 Https 进行数据传输 Jun 18, 2023 pm 10:43 PM

随着科技的发展,网络通信已经成为了现代社会信息传输的重要工具之一。但同时,网络上的信息传输面临着被恶意攻击和窃取的风险,因此安全性显得尤为重要。基于此,HTTPS协议就应运而生。它是在HTTP协议上加入SSL/TLS加密的方式来保证网络传输安全性的一种协议。Java作为一门广泛应用于网络开发的语言,自然也提供了丰富的API来支持HTTPS协议。本文将

https工作流程是什么样的 https工作流程是什么样的 Apr 07, 2024 am 09:27 AM

https工作流程包括客户端发起请求、服务器响应、SSL/TLS握手、数据传输和客户端渲染等步骤,通过这些步骤可以确保数据在传输过程中的安全性和完整性。

See all articles