• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sankooc
V2EX  ›  程序员

HSTS 诡异的问题

  •  
  •   sankooc ·
    sankooc · Apr 1, 2024 · 4238 views
    This topic created in 946 days ago, the information mentioned may be changed or developed.

    碰上了一个诡异问题

    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
    
    • nginx 只配置了这两个域名
    • chrome 的缓存清除过
    • chrome 的 hsts 设置中都未有相关这两个域名的配置
    • 换 edge 和 firefox 也是一样

    如果说有区别的话 客户端安装了自定义的 CA 相关 sso.mibox.dev 这个域名

    按理来说即使有这个 ca 也不应该影响 http 的访问

    那位大佬帮忙分析以下为什么 sso.mibox.dev 为什么浏览器会自动转发至 https


    软件版本

    • nginx: 1.22.0
    • chrome 123.0.6312.86
    13 replies  •  2024-04-03 09:34:18 +08:00
    dallaslu
    dallaslu
    Apr 1, 2024❤️3
    1
    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.
    OneXT
    OneXT
    Apr 1, 2024
    2
    @dallaslu 6 啊大佬。又长知识了。
    sankooc
    sankooc
    OP
    Apr 1, 2024
    3
    @dallaslu 原来是这样... 随便起的 dev 后缀居然是预设的...
    coala
    coala
    Apr 1, 2024
    4
    可以关注下 307 Temporary Redirect 和 307 Internal Redirect 的区别,

    Internal Redirect 是浏览器行为, 都是谷歌干的。
    aikilan
    aikilan
    Apr 1, 2024
    5
    @dallaslu 学到了
    gentrydeng
    gentrydeng
    Apr 1, 2024 via Android
    6
    @sankooc #3 .DEV 全域都是 HSTS
    rrfeng
    rrfeng
    Apr 1, 2024
    7
    HSTS 有个 preload list ,写死在浏览器里的,根本不 care 你 server 什么设置。
    ---
    有个坑貌似是,chrome 会收集支持 hsts 的站点然后加入到 preload list 里,然后你就永远只能 https 没法降级了。
    shierji
    shierji
    Apr 1, 2024
    8
    这里偏个题,某办公室部分电脑能上部分电脑不能上某 ZF 网站,排查半天最后发现是不知道啥时候那个 URL 进 HSTS Preload list 了,然而丫根本不支持 HTTPS
    jim9606
    jim9606
    Apr 1, 2024 via Android
    9
    @rrfeng
    这个 preload list 是要申请的,审核要求整个域名响应都要带 HSTS includesubdomains 、preload 和足够长的 maxage ,目的是防止首次访问的 http->https 跳转就被劫持。因为很难撤回,所以只建议在 https 部署稳定可靠后再申请 preload 。

    https://hstspreload.org/

    @shierji 是不是 HSTS 头配错了(添加了 preload 属性,不打算预置的绝对不要加),然后被第三者申请 preload 了。
    qeqv
    qeqv
    Apr 1, 2024
    10
    @rrfeng 手机上经常一些网站 chrome 打不开,其他浏览器能开……,手机上还很难排查
    ZeroAsh
    ZeroAsh
    Apr 1, 2024
    11
    偏个题,可以试试直接用 certbot 搞个免费的证书~也可以用配置下域名解析,然后申请通配的免费证书,但都得定时续期~ 也有自动续期的工具,配好之后还是蛮方便的。
    ysc3839
    ysc3839
    Apr 1, 2024
    12
    @rrfeng 后加入的可以去 chrome://net-internals/#hsts 删除,preloaded 的删不了
    shierji
    shierji
    Apr 3, 2024 via Android
    13
    @jim9606 有可能是 gov.cn 整个域进 hsts preload list ,这个网站是被“传染”了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3004 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 101ms · UTC 04:37 · PVG 12:37 · LAX 20:37 · JFK 23:37
    ♥ Do have faith in what you're doing.