V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
urzz
V2EX  ›  程序员

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

  •  
  •   urzz · 108 天前 · 1615 次点击
    这是一个创建于 108 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前的困扰: 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 条附言  ·  108 天前
    我碰到的问题,可能是使用 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

    这样就可以正常访问了,也不会有以上的困扰咯。
    11 条回复    2024-09-11 11:18:05 +08:00
    cnhongwei
        1
    cnhongwei  
       108 天前
    你是不是类型没有选对,有 https 类型的。
    urzz
        2
    urzz  
    OP
       108 天前
    @cnhongwei #1 尝试过 https 配置的。不知道是不是因为我用的泛域名的配置,访问会失败
    dddedd
        3
    dddedd  
       108 天前
    tunnel 选 https 啊,映射到对应的 https 端口,tunnel 的 TLS 选择 No TLS Verify
    公网仍然会是 CF 签的 https 证书
    paperseller
        4
    paperseller  
       108 天前 via iPhone
    tunnel 控制台中单个 hostname 下有个额外设置,打开禁用 tls 验证试试
    urzz
        5
    urzz  
    OP
       108 天前
    @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  
       108 天前
    我看 cf 都是内网 http 强制转 https 的。。你是不是有个选项没选择
    urzz
        7
    urzz  
    OP
       108 天前
    @ronyin @dddedd @paperseller 问题解决了,参考 append 哈。感谢几位的帮助~
    1423
        8
    1423  
       108 天前
    通配整个域名感觉有点不安全, 只通配一部分又不行
    urzz
        9
    urzz  
    OP
       108 天前
    @1423 可访问域名还是需要通过 application 配置的,通过 policy 来控制访问
    cnhongwei
        10
    cnhongwei  
       107 天前
    @urzz 1 对于 https 配置后,访问有问题的话,1 你可以使用 cf 的证书,2 在高级设置中,有忽略证书校验的选项。
    urzz
        11
    urzz  
    OP
       107 天前
    @cnhongwei #10 走 cf tunnel 访问的话,就是用的 cf 证书的。
    对于 Nginx Proxy Manager ,且 tunnel 配置泛域名,即使忽略证书校验,NPM 也会阻断访问的,具体原因可以参考 append 里面的链接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:05 · PVG 19:05 · LAX 03:05 · JFK 06:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.