使用 CF Tunnel 访问内网服务只能走 http 的困扰 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
JadeLove
V2EX    程序员

使用 CF Tunnel 访问内网服务只能走 http 的困扰

  •  
  •   JadeLove 2024-09-09 21:02:42 +08:00 2285 次点击
    这是一个创建于 398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前的困扰: https://v2ex.com/t/1016923

    现在又碰到个问题:

    tunnel 访问内网的服务只能走 http ,但是 authelia 之类的服务访问只支持 https 。虽然浏览器访问是走的 https ,但是内网的 nginx 收到的请求其实还是 http 的,所以 authelia 会拒绝访问。

    怎么才能让 authelia 这类服务知道,我其实是走的 https 访问呢?

    类似的困扰: https://github.com/authelia/authelia/discussions/7420

    尝试注入 X-Forwarded-Scheme 之后发现并没有作用,也可能是没注入成功= =

    第 1 条附言    2024-09-09 21:55:26 +08:00
    我碰到的问题,可能是使用 Nginx Proxy Manager 才能遇到。这里说一下参考的解决方案:

    参考: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2696#issuecomment-1475065806

    tunnel 配置的 public hostname ,可以使用通配符域名,比如:*.example.com ,service 配置位: https://192.168.0.254:443
    需要在 Additional application settings -> TLS -> Origin Server Name 中配置一个使用中的子域名( demo.example.com

    这样就可以正常访问了,也不会有以上的困扰咯。
    12 条回复    2025-05-18 16:48:53 +08:00
    cnhongwei
        1
    cnhongwei  
       2024-09-09 21:09:46 +08:00
    你是不是类型没有选对,有 https 类型的。
    JadeLove
        2
    JadeLove  
    OP
       2024-09-09 21:12:24 +08:00
    @cnhongwei #1 尝试过 https 配置的。不知道是不是因为我用的泛域名的配置,访问会失败
    dddedd
        3
    dddedd  
       2024-09-09 21:14:16 +08:00
    tunnel 选 https 啊,映射到对应的 https 端口,tunnel 的 TLS 选择 No TLS Verify
    公网仍然会是 CF 签的 https 证书
    paperseller
        4
    paperseller  
       2024-09-09 21:16:12 +08:00 via iPhone
    tunnel 控制台中单个 hostname 下有个额外设置,打开禁用 tls 验证试试
    JadeLove
        5
    JadeLove  
    OP
       2024-09-09 21:36:59 +08:00
    @dddedd @paperseller

    tunnel 配置中,单个二级域名的 public hostname 配置,通过配置 origin server name + http host header, 是可以的。参考: https://www.reddit.com/r/unRAID/comments/18oiv0p/cloudflare_tunnel_to_npm_setup_through_gui_to_fix/

    但是这样的话有新增的域名访问都需要到 cloudflare tunnel 配置中新增子域名的配置。之前为了避免每次新增域名都需要在本地的 nginx 和 cf_tunnel 中配置,就在 cf_tunnel 的配置中使用了通配符域名。如果是通配符 public hostname ,就不能配置 origin server name + http host header 了吧?这种情况下,有什么方式可以正常访问吗?
    ronyin
        6
    ronyin  
       2024-09-09 21:37:43 +08:00
    我看 cf 都是内网 http 强制转 https 的。。你是不是有个选项没选择
    JadeLove
        7
    JadeLove  
    OP
       2024-09-09 21:56:38 +08:00
    @ronyin @dddedd @paperseller 问题解决了,参考 append 哈。感谢几位的帮助~
    slowman
        8
    slowman  
       2024-09-09 23:36:00 +08:00
    通配整个域名感觉有点不安全, 只通配一部分又不行
    JadeLove
        9
    JadeLove  
    OP
       2024-09-10 09:24:47 +08:00
    @1423 可访问域名还是需要通过 application 配置的,通过 policy 来控制访问
    cnhongwei
        10
    cnhongwei  
       2024-09-11 09:28:42 +08:00
    @urzz 1 对于 https 配置后,访问有问题的话,1 你可以使用 cf 的证书,2 在高级设置中,有忽略证书校验的选项。
    JadeLove
        11
    JadeLove  
    OP
       2024-09-11 11:18:05 +08:00
    @cnhongwei #10 走 cf tunnel 访问的话,就是用的 cf 证书的。
    对于 Nginx Proxy Manager ,且 tunnel 配置泛域名,即使忽略证书校验,NPM 也会阻断访问的,具体原因可以参考 append 里面的链接
    LittleFox
        12
    LittleFox  
       147 天前
    问了一下 chatgpt ,这是它的回答:当你的本地服务用的是 Let's Encrypt 签发的证书时,TLS 握手失败一般不是因为证书不被信任,而是因为 主机名不匹配。Cloudflared 连接到 127.0.0.1 ,会把 SNI 和 Hostname 验证都当成 127.0.0.1 来做,而证书上的 CN/SAN 都是你的域名(如 your.domain.com ),所以就会报 tls: internal error 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3463 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 04:41 PVG 12:41 LAX 21:41 JFK 00:41
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86