HSTS预加载提交,浏览器强制HTTPS访问

为什么你的HTTPS总是被降级

即使网站装好了SSL证书,用户第一次访问时如果输入的是http://,或者点击了旧链接,浏览器仍可能先走一次明文HTTP,再靠301跳转到HTTPS。
这个空窗期就是会话劫持和中间人攻击的入口。
HSTS预加载提交,就是让浏览器把“这个域名只能走HTTPS”写进内置清单,从根源上消灭HTTP请求。

前置准备:确认你的HTTPS已经稳定

在提交预加载之前,必须保证全站HTTPS没有混合内容问题,否则一旦提交,网站可能直接无法访问。

  • 主域名和所有子域名都已部署有效证书,证书链完整。
  • 页面内没有http://开头的图片、脚本或样式引用,否则浏览器会拦截加载。
  • 网站已经配置了HTTP到HTTPS的301跳转,并且跳转后地址正确。
  • 准备好一个能收邮件的域名管理员邮箱,用于提交后的验证。

检查混合内容可以打开浏览器开发者工具,切换到Console面板,刷新页面后查看是否有“Mixed Content”警告。

第一步:在Web服务器上开启HSTS响应头

HSTS生效的前提是服务器返回Strict-Transport-Security响应头。
以Nginx为例,在HTTPS站点的server块中添加:

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

参数含义:

  • max-age=31536000:告诉浏览器在一年内强制使用HTTPS。
  • includeSubDomains:所有子域名同样强制HTTPS,没有子域名需求可去掉。
  • preload:表示你计划提交到浏览器预加载列表。

如果是Apache,在虚拟主机配置中加入:

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

配置完成后执行nginx -t测试语法,再systemctl reload nginx重载服务。

第二步:验证HSTS头是否正常返回

用curl命令检查响应头:

curl -I https://你的域名

返回结果中应该出现:

strict-transport-security: max-age=31536000; includeSubDomains; preload

如果没有看到这行,说明配置未生效,检查是否放在HTTPS的server块而非HTTP块,并确认没有其他add_header指令覆盖。

第三步:提交到HSTS预加载列表

浏览器厂商维护的预加载列表是硬编码在浏览器里的,提交入口是hstspreload.org。
操作路径:

  1. 打开hstspreload.org,在输入框填写你的根域名,例如example.com。
  2. 点击“Submit”后,系统会检查你的HSTS头、重定向和证书状态。
  3. 检查通过后,填写邮箱并确认提交。
  4. 等待状态变为“Pending”,再等待进入“Preloaded”。

注意:提交的是根域名,一旦包含includeSubDomains,所有子域名都会被强制HTTPS。
如果你的某些子域名还在用HTTP,提交前务必先处理。

避坑指南:这些情况不要急着提交

HSTS预加载是不可逆的,从预加载列表移除可能需要数月甚至更久。
以下场景建议暂缓:

  • 网站还有大量内网HTTP服务或测试子域名。
  • 证书是短期免费证书,续期不稳定。
  • 业务依赖第三方HTTP回调,无法快速改造。
  • 你还没有准备好全站301跳转。

如果只是想先体验强制HTTPS,可以先只设置max-age,不加preload,观察一段时间再决定。

效果验证与回退思路

提交后,用浏览器访问http://你的域名,正常情况应该直接跳转到HTTPS,且没有明文请求。
在Chrome地址栏输入chrome://net-internals/#hsts,在“Query HSTS/PKP domain”中输入域名,如果显示“static HSTS”或“dynamic HSTS”,说明策略已生效。

如果发现子域名无法访问,需要尽快在服务器上去掉includeSubDomains并降低max-age,然后到hstspreload.org提交移除申请。
移除流程比添加慢,所以提交前务必确认所有子域名都已支持HTTPS。

常见疑问

HSTS预加载提交后,还能用HTTP访问吗?
不能。浏览器会直接拒绝HTTP请求,不会发送任何明文数据,也不会给用户跳转提示。

提交后多久生效?
取决于浏览器厂商更新预加载列表的周期,通常需要数周到数月,不同浏览器时间不同。

只提交根域名,子域名会受影响吗?
如果响应头包含includeSubDomains,子域名同样被强制HTTPS;如果不包含,子域名不受预加载列表约束。

预加载列表能撤销吗?
可以申请移除,但生效周期较长,且期间用户浏览器仍可能保留旧策略,因此提交前必须谨慎评估。

分享到:
上一篇
acme.sh部署证书到Nginx自动重载配置
下一篇
CDN回源域名设置,隐藏源站真实
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意