【学习】https网站无法正常访问,显示相关hsts协议

今早公司访问https://xxxx.com出现HSTS错误致网站无法正常打开,清除缓存不能解决。解决步骤为在Chrome浏览器输入chrome://net-internals/#hsts,之后重新访问网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景
今早公司一如往常访问https://xxxx.com的是否出现了相关hsts错误,导致无法正常网站,经过百度之后找到了解决方法,和大家分享一下
二、步骤
1.NET::ERR_CERT_COMMON_NAME_INVALID,详情页里可以看到是“因为此网站使用了HSTS”,清缓存并不能解决问题。
2.在Chrome浏览器中输入:chrome://net-internals/#hsts

在这里插入图片描述

3.重新访问网站
三、问题总结
HSTS is HTTP Strict Transport Security: a way for sites to elect to always use HTTPS. See https://www.chromium.org/hsts, 是国际互联网工程组织IETF正在推行一种新的Web安全协议,HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。
采用HSTS协议的网站将保证浏览器始终连接到该网站的HTTPS加密版本,不需要用户手动在URL地址栏中输入加密地址。
该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。
HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。
### HSTS 简介与问题背景 HSTS(HTTP 严格传输安全) 是一种网站用来声明其只能通过 HTTPS 协议访问的安全策略。当一个网站启用了 HSTS,浏览器会强制拒绝所有 HTTP 请求,并在 HTTPS 不可用时直接终止连接[^2]。这意味着如果网站的 SSL 证书存在问题或 HTTPS 配置错误,用户将无法访问网站。 ### 常见原因分析 1. **SSL 证书不可用**:如果网站的 SSL 证书过期、无效或未正确配置,会导致 HTTPS 连接失败。 2. **HSTS 策略已预加载**:某些网站可能已经将其域名预加载到浏览器的 HSTS 列表中,即使没有显式发送 `Strict-Transport-Security` 头,浏览器也会强制使用 HTTPS。 3. **本地缓存问题**:浏览器可能会缓存 HSTS 策略,导致即使网站暂时无法提供 HTTPS 服务,也无法回退到 HTTP 模式。 ### 解决方法 #### 方法一:检查 SSL 证书 确保网站使用的 SSL 证书有效且正确配置。可以通过以下步骤验证: - 使用在线工具如 [SSL Labs](https://www.ssllabs.com/ssltest/) 检查 SSL 证书状态。 - 确保证书链完整,中间证书和根证书均正确安装。 - 如果证书是由内部 CA 签发的自签名证书,请确保浏览器信任该 CA。 #### 方法二:清除浏览器 HSTS 缓存 对于 Chrome 浏览器,可以尝试清除 HSTS 缓存: 1. 在地址栏输入 `chrome://net-internals/#hsts`。 2. 在 "Delete domain security policies" 部分,输入受影响的域名并点击 "Delete"。 3. 在 "Query domain" 部分,输入相同的域名以确认缓存已被清除。 #### 方法三:修改服务器配置 如果需要临时禁用 HSTS,可以在服务器端移除或注释掉相关HSTS 响应头。例如,在 Nginx 中,可以编辑配置文件: ```nginx # 注释掉或删除以下行 # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ``` 重启 Nginx 服务后,HSTS 策略将不再生效。 #### 方法四:避免使用 HSTS 预加载列表 如果网站计划长期支持 HTTP 访问,建议不要将域名提交到 HSTS 预加载列表中。HSTS 预加载列表由各大浏览器维护,一旦加入,几乎无法撤销。要从预加载列表中移除域名非常困难,因此应在启用 HSTS 前慎重考虑。 #### 方法五:使用 HTTPS 代理或调试工具 如果无法立即修复 SSL 证书问题,可以尝试通过 HTTPS 代理访问网站,或者使用开发者工具(如 Chrome DevTools)中的网络面板查看具体的 HTTPS 错误信息,以便进一步排查问题。 ### 示例代码:Nginx 配置示例 以下是一个简单的 Nginx 配置片段,用于启用 HTTPS 并设置 HSTS: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/privkey.pem; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; location / { root /usr/share/nginx/html; index index.html; } } ``` 此配置启用了 HTTPS 并设置了 HSTS 策略,有效期为一年,适用于所有子域名。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值