V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Yespeter
V2EX  ›  Cloudflare

内外网同域名强制 https 如何完美实现?

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

    背景:无公网 IP!

    • 在内网访问 a.nb.com 时,通过 openwrt 进行域名劫持,使其指向 nginx 地址,nginx 反向代理至 192.168.xx.xx:xxxx 。由于不想使用 http ,所以申请证书配置到 nginx 以强制进行 https 访问,如此在内网的访问形式为:https://a.nb.com

    • 后来,有个小伙伴想要从外网访问我家的服务。查阅相关资料后,排除了 WireGuardzerotier 以及国内小水管服务器中转等方案,选择使用 Cloudflare Tunnel

    • 配置成功后,a.nb.com 能够在小伙伴的设备上成功访问,速度尚可,能播放 1080p 视频。

    但俺有以下几个问题:

    • cf 的边缘服务器证书似乎无法下载。内网证书该如何申请?或者写个定时脚本自动申请证书?
    • cf 的证书和本地申请的证书能够共存吗?
    • 设备之间是否存在 dns 缓存?

    需求: 希望实现 https://a.nb.com 外网通过 cf 访问能“回家”,内网直接访问本地服务,并且强制 https 且证书正常。如何实现?望解惑。

    第 1 条附言  ·  57 天前
    经测试,内外网基本上完美切换,cf 证书自带不说了,本地证书是申请的 3 个月免费证书,快过期时脚本自动续期。
    9 条回复    2024-07-11 12:36:56 +08:00
    ik
        1
    ik  
       59 天前 via iPhone
    前面你的复杂用法没看懂。 回答后面的

    证书可以共存,走 cf 用 cf 的证书,走内网用内网的证书。
    Yespeter
        2
    Yespeter  
    OP
       59 天前
    @ik OK ,感谢,前面主要是为了不想 ip+端口访问,想法就是只记域名,内网外无缝切换,且不用自签名证书。
    Saniter
        3
    Saniter  
       59 天前
    edge certificate 可以下载,也可以自定义。
    如果你用 cf 提供的证书在内网用的话,由于没经过 cf 回源,浏览器会警告的,建议自己生成 tls 证书
    whcoding
        4
    whcoding  
       59 天前
    我想问一下 第一步是咋实现的
    olaloong
        5
    olaloong  
       59 天前 via Android
    acme.sh 用 dns 验证签发证书
    Yespeter
        6
    Yespeter  
    OP
       58 天前
    @Saniter 自己生成 tls 证书,浏览器内网访问的情况下也是会警告的吗?内网不想浏览器警告
    Yespeter
        7
    Yespeter  
    OP
       58 天前
    @olaloong 感谢,正需要
    Yespeter
        8
    Yespeter  
    OP
       58 天前
    @whcoding 原理是本地拦截域名请求指向 nginx 服务器地址,nginx 进行反向代理指向具体某个服务,具体教程网上也比较多
    Saniter
        9
    Saniter  
       58 天前
    @Yespeter #6 不是自己随便签名的证书,我是指用有 ca 的证书替换 cf 的 edge certificate
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1113 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:40 · PVG 07:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.