碰上了一个诡异问题
nginx 配了域名转发 客户端配置 hosts 文件
server {
listen 80;
server_name sso.mibox.dev;
location / {
proxy_pass http://127.0.0.1:10088;
}
}
server {
listen 80;
server_name sso.mibox.com;
location / {
proxy_pass http://127.0.0.1:10088;
}
}
客户端通过 curl 请求两个域名得到的响应是预期中的
通过 chrome 打开 sso.mibox.com 是正常的
但是打开 sso.mibox.dev 会给我 307 转发到 https 上
HTTP/1.1 307 Internal Redirect
Location: https://sso.mibox.dev/
Cross-Origin-Resource-Policy: Cross-Origin
Non-Authoritative-Reason: HSTS
如果说有区别的话 客户端安装了自定义的 CA 相关 sso.mibox.dev 这个域名
按理来说即使有这个 ca 也不应该影响 http 的访问
那位大佬帮忙分析以下为什么 sso.mibox.dev 为什么浏览器会自动转发至 https
软件版本
1
dallaslu 243 天前 3
get.dev 首页说明:
> The .dev top-level domain is included on the HSTS preload list, making HTTPS required on all connections to .dev websites and pages without needing individual HSTS registration or configuration. |
4
coala 243 天前
可以关注下 307 Temporary Redirect 和 307 Internal Redirect 的区别,
Internal Redirect 是浏览器行为, 都是谷歌干的。 |
6
gentrydeng 243 天前 via Android
@sankooc #3 .DEV 全域都是 HSTS
|
7
rrfeng 243 天前
HSTS 有个 preload list ,写死在浏览器里的,根本不 care 你 server 什么设置。
--- 有个坑貌似是,chrome 会收集支持 hsts 的站点然后加入到 preload list 里,然后你就永远只能 https 没法降级了。 |
8
shierji 243 天前
这里偏个题,某办公室部分电脑能上部分电脑不能上某 ZF 网站,排查半天最后发现是不知道啥时候那个 URL 进 HSTS Preload list 了,然而丫根本不支持 HTTPS
|
9
jim9606 243 天前 via Android
@rrfeng
这个 preload list 是要申请的,审核要求整个域名响应都要带 HSTS includesubdomains 、preload 和足够长的 maxage ,目的是防止首次访问的 http->https 跳转就被劫持。因为很难撤回,所以只建议在 https 部署稳定可靠后再申请 preload 。 https://hstspreload.org/ @shierji 是不是 HSTS 头配错了(添加了 preload 属性,不打算预置的绝对不要加),然后被第三者申请 preload 了。 |
11
ZeroAsh 243 天前
偏个题,可以试试直接用 certbot 搞个免费的证书~也可以用配置下域名解析,然后申请通配的免费证书,但都得定时续期~ 也有自动续期的工具,配好之后还是蛮方便的。
|