背景
近期遇到了chrome访问网站强跳https的问题,由于网站没有证书,一直都是用的http访问,之前也会出现跳转https的问题,但是手动删除s后,就能正常访问了,但是今天手动删除s后,还是会跳转到https
解决思路
- nginx是否设置了自动跳转(301)(主动设置,不在考虑范围)
- 代码是否设置了跳转(sendRedirect)(主动设置,不在考虑范围)
- web设置了Content-Security-Policy(主动设置,不在考虑范围,如需处理,可以删除
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/>
) - HSTS(浏览器开启了 HSTS(HTTP Strict Transport Security)功能)
- 浏览器设置了使用安全链接
- 其他原因(未知)
常见解决方案
HSTS
- 在浏览器输入“chrome://net-internals/#hsts”。
- 在 Delete domain security policies 这一栏输入自动跳转的地址(不带https://前缀),然后删除。
- 重新输入重试。
设置了所有网站使用安全链接
- 在
隐私和安全
中找到安全
,在安全
中的高级
下面,有一个一律使用安全链接
,关闭即可
其他原因的解决方案
本次案例,以上常见的解决方案都无法处理
在隐私和安全
中找到网站设置
,进入后点击更多内容设置
,进入不安全内容
,在允许显示不安全内容
中添加访问地址(如http://aaa.com),添加成功后再次访问,可能还会跳转https,但是手动删除s就可以了