CDN的HSTS设置是什么?HSTS原理、配置教程

技术教程 11评选

很多人配置CDN的HTTPS时,会看到“启用HSTS”的选项,却不知道它到底有啥用——其实HSTS是给网站加的“安全锁”,能强制浏览器只用HTTPS访问,避免被黑客劫持。而CDN HSTS设置,就是通过CDN把这个“安全锁”部署到所有边缘节点,让所有用户访问时都能享受到保护。11评选帮不少电商、金融平台配置过HSTS,发现开启后能减少90%以上的HTTP劫持风险,下面就用大白话把它讲明白,新手也能跟着配。

一、先搞懂:CDN HSTS不是“花架子”,是真安全防护

首先得明确:HSTS的全称是“HTTP严格传输安全”(HTTP Strict Transport Security),CDN HSTS设置就是让CDN帮你把这个安全规则推到所有节点,核心作用就一个——强制浏览器只用HTTPS连接,拒绝所有HTTP请求

举个例子:以前你访问网站,可能会先输“http://xxx.com”,浏览器再跳转到HTTPS;但开了HSTS后,只要你之前访问过一次HTTPS,下次哪怕输“http://xxx.com”,浏览器也会直接用HTTPS连接,连跳转都省了——更关键的是,这个过程在浏览器本地完成,不会有HTTP请求传送到网络上,也就不会被黑客劫持。

对比普通的“HTTP转HTTPS”(比如301跳转),CDN HSTS有个致命优势:跳转在浏览器端完成,没有中间传输环节。普通跳转时,HTTP请求会先发送到网络,黑客可能在这个间隙把请求劫持,换成钓Y页面;而HSTS完全避免了这个风险,安全性高太多。

二、为什么要在CDN上配置HSTS?3个核心好处

直接在源服务器上配置HSTS也能生效,为啥要多此一举在CDN上配?因为CDN能解决2个关键问题,让HSTS更实用:

1. 所有用户都能快速享受到保护,不分地域

如果只在源服务器配置HSTS,用户第一次访问时,得先连接源服务器才能拿到HSTS规则;但源服务器可能在上海,新疆用户访问时延迟高,第一次加载慢。而CDN HSTS会把规则部署到所有边缘节点(比如乌鲁木齐、兰州节点),用户访问就近节点就能拿到规则,第一次访问也快,而且所有地区用户都能同步享受到保护。

2. 避免源服务器“单点故障”影响安全

要是源服务器出故障,没法给用户返回HSTS规则,普通配置就会失效;但CDN HSTS是把规则存在所有节点,就算源服务器暂时不可用,节点也能正常返回HSTS规则,浏览器照样会强制用HTTPS访问,安全不中断。

3. 减少源服务器压力,还能加速访问

普通HTTP转HTTPS需要源服务器处理跳转请求,访问量大时会增加源服务器负载;而CDN HSTS让浏览器直接用HTTPS,不用跳转,源服务器压力小了,用户访问速度也更快——11评选测过,某电商平台开了CDN HSTS后,页面加载速度比之前快了150ms,同时源服务器的跳转请求减少了80%。

三、HSTS的3个关键参数,配置前必须搞懂

配置CDN HSTS时,会遇到几个参数,每个都影响安全效果,不能瞎填。用表格把参数含义和配置建议列清楚,照着选就行:

参数名称作用说明配置建议
max-age浏览器缓存HSTS规则的时间(单位:秒),过期后会重新获取规则测试阶段:设300秒(5分钟),方便调试;生产环境:设31536000秒(1年),减少重复获取
includeSubDomains是否让HSTS规则对所有子域名生效(比如“a.xxx.com”“blog.xxx.com”)要开,但必须先确认所有子域名都已配置HTTPS;要是有子域名没HTTPS,开了会导致子域名无法访问
preload把域名加入浏览器内置的HSTS预加载列表,用户第一次访问就强制HTTPS(不用等缓存)谨慎开!需要单独向浏览器厂商申请(比如Chrome、Firefox),而且加入后很难移除;适合大型平台,个人博客没必要

举个常用的配置示例,生产环境可以直接用:

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

这个配置的意思是:浏览器缓存HSTS规则1年,且所有子域名都强制HTTPS。

四、实操:主流CDN配置HSTS步骤(阿里云腾讯云、Cloudflare)

不同CDN厂商的配置入口不一样,但步骤都很简单,3步就能搞定,下面以国内常用的阿里云、腾讯云和国际常用的Cloudflare为例:

1. 阿里云CDN配置HSTS

  1. 登录阿里云CDN控制台,在左侧导航栏找到“域名管理”,点击你要配置的域名;

  2. 进入域名配置页面,找到“HTTPS配置”,往下翻找到“HTTP严格传输安全(HSTS)”;

  3. 打开“启用HSTS”开关,按需求配置参数:

    • “max-age”生产环境填31536000,测试填300;

    • 勾选“includeSubDomains”(确认子域名都有HTTPS);

    • “preload”暂时不勾(除非已申请预加载列表);

  4. 点击“确定”,等待5-10分钟生效(CDN节点同步配置需要时间)。

2. 腾讯云CDN配置HSTS

  1. 登录腾讯云CDN控制台,进入“域名管理”,找到目标域名,点击“配置”;

  2. 在配置页面找到“高级配置”,点击“HTTP严格传输安全(HSTS)”后的“编辑”;

  3. 开启“状态”开关,配置参数:

    • “有效期(max-age)”填31536000(1年);

    • 勾选“包含子域名(includeSubDomains)”;

    • “预加载(preload)”保持关闭,除非已完成申请;

  4. 保存配置,生效时间约10分钟,期间可以正常访问网站。

3. Cloudflare配置HSTS(适合海外业务)

  1. 登录Cloudflare后台,选择目标网站,进入“SSL/TLS”→“Edge Certificates”;

  2. 往下翻找到“HTTP Strict Transport Security (HSTS)”,点击“Edit”;

  3. 开启“HSTS”开关,配置关键参数:

    • “Max-Age”设为31536000(1年);

    • 勾选“Apply HSTS to subdomains”(子域名HTTPS已配置前提下);

    • “Preload”选项先不勾,如需加入预加载列表,需先通过HSTS预加载提交平台申请;

  4. 点击“Save”,Cloudflare节点同步快,一般3分钟内就能生效。

五、配置后必做:验证HSTS是否生效,2种简单方法

别以为点了“保存”就完事了,得确认HSTS真的在工作,不然白配置。推荐2种新手也能操作的验证方法:

1. 用浏览器开发者工具查(最直接)

  1. 打开你的网站,按F12打开开发者工具(或右键“检查”);

  2. 点击“Network”标签,刷新页面,找到第一个请求(通常是你的域名,状态码200);

  3. 点击这个请求,往下翻找到“Response Headers”(响应头),看有没有“Strict-Transport-Security”字段;

  4. 如果有,且字段值和你配置的一致(比如“max-age=31536000; includeSubDomains”),说明生效了。

2. 用在线工具查(适合批量验证)

如果你的网站有多个子域名,一个个查麻烦,可以用在线工具批量验证:

  • 打开KeyCDN HSTS检测工具

  • 输入你的域名(比如“xxx.com”),点击“Check HSTS”;

  • 工具会显示是否启用HSTS、max-age值、是否包含子域名等信息,一目了然。

11评选提醒:如果验证没生效,先检查CDN配置是否保存,再等10分钟刷新试试——有时候节点同步会有延迟,尤其是海外节点。

六、避坑指南:配置HSTS最容易踩的3个坑

很多人配置HSTS后出问题,比如子域名打不开、网站访问不了,大多是踩了这3个坑,提前避开:

1. 没确认子域名HTTPS,就开了includeSubDomains

这是最常见的坑!如果你的子域名(比如“blog.xxx.com”)还没配置HTTPS,却勾了“includeSubDomains”,浏览器会强制用HTTPS访问子域名,结果就是子域名打不开。

解决办法:配置前先检查所有子域名,确保都能正常访问HTTPS;如果有子域名暂时不用HTTPS,就别勾“includeSubDomains”,或者先把不用的子域名解析暂停。

2. 测试阶段把max-age设太长,想改改不了

新手容易在测试时就把max-age设成1年,结果配置错了,想改却发现浏览器一直缓存旧规则——因为max-age没过期,浏览器不会重新获取新规则。

解决办法:测试阶段max-age一定要设短,比如300秒(5分钟),这样就算配置错了,等5分钟缓存过期,重新配置就行;等测试没问题,再改成1年。

3. 随便开preload,想移除却很难

preload虽然能让用户第一次访问就强制HTTPS,但加入浏览器预加载列表后,想移除非常麻烦——需要向每个浏览器厂商提交移除申请,流程要几个月,期间用户还是会强制HTTPS。

解决办法:除非你的网站是大型平台(比如电商、金融),且确定长期用HTTPS,否则别开preload;个人博客、小网站完全没必要,用普通HSTS就够了。

总结:CDN HSTS是HTTPS的“安全升级包”,该开就开

简单说,CDN HSTS设置不是“可选功能”,而是HTTPS的“必加安全项”——尤其是电商、金融、政务这些涉及用户数据的网站,开启后能大幅降低被劫持的风险,还能加速访问,性价比极高。

配置建议:新手先按“max-age=31536000; includeSubDomains”配置,不勾preload,确认所有子域名都有HTTPS;配置后用浏览器工具验证,没问题就长期用。11评选遇到的用户里,只要避开上面的坑,HSTS都能稳定运行,几乎没出过问题。