内网搭建的服务,域名不变的情况下在家里和外面访问自动切换的疑问

261 天前
 urzz

HomeLab 自建了一些服务,希望在家里和外面访问自动切换走内网还是公网

用 adguard home 自建了内网 dns 服务器

域名 xx.a.com

如果是 http ,走中转 VPS 反代到内网的 192.168.100.1 但是如果是 https ,证书是需要在内网和公网两个服务器上做同步吗? 或者有更好的方案可以实现这个需求吗?

PS. 不考虑 tailscale 等内网穿透、VPN 方案(因为期望可以不用安装代理等工具就可以走 VPS 中转直接访问)

2882 次点击
所在节点    程序员
40 条回复
Mikawa
261 天前
内网:路由器配 Host
外网:去 Cloudflare Zero Trust 上配个 Argo 反代,把域名解析配过去,不需要自己的 VPS
bluedawn
261 天前
Cloudflare Tunnel 外网访问,内网证书由 ACME-DNS 申请
urzz
261 天前
@bluedawn #2 cf tunnel 可以直接将流量转发到内网吗?我去搜一下,感谢
urzz
261 天前
@Mikawa #1 外网访问的时候需要客户端安装代理吗?
Mikawa
261 天前
@urzz 我和 3 楼说的是同一个东西,客户端不需要代理
urzz
261 天前
@Mikawa #5 感谢!我试一下
mohumohu
261 天前
直接用 caddy 当 http 服务器就可以,自动申请配置证书。两边都用 caddy 就好了 不用同步。
urzz
261 天前
@mohumohu #7 两边都会重新申请证书,先申请的证书不会被作废么?
urzz
261 天前
@bluedawn #2 请问下大佬,cf tunnel 怎么配置可以使用内网证书呢? service 应该配置域名,还是应该配置 nginx 对应的 443 端口呀?
urzz
261 天前
@Mikawa #1 麻烦问下,cf tunnel 怎么使用内网证书呢?还有对应 service 配置,有示例可以看下不?

另外还有一个疑问,这个可以配置通配符域名吗?
ochatokori
261 天前
证书不会管你的 ip ,你随便解析,只要访问的域名和服务端返回的证书上的域名匹配即可
mohumohu
261 天前
@urzz 不会,caddy 零配置全自动。一个 ca 申请失败还会尝试下一个 ca 。
Puteulanus
261 天前
你内网都配 https 了,反代的 vps 其实起的是内网穿透的功能,上面不需要再去配 https 证书呀
子域名多的话可以看看萌咖的泛域名 SSL 证书,30 一年,一个证书对所有子域名都生效
urzz
261 天前
@mohumohu #12 同一个域名,同一个 ca ( let's encrypt )不会主动吊销上一个证书么?如果是这样的话倒是可以实现嘞
urzz
261 天前
@Puteulanus #13 是的,内网已经是 https 了,用的也是泛域名证书。只是 cf tunnel 不知道怎么配置可以透传使用内网的证书
IvanLi127
261 天前
我现在是通过公网服务器按 HTTPS SNI 反向直通 443 端口的流量到内网机子的 443 端口上,然后上面跑 Caddy 这类能自动申请证书的反向代理到对应的服务上。这样只要公网反向代理稳定些,证书直接能免配置签发出来,不用折腾 DNS 方案签证书。
devliu1
261 天前
还有个办法,你可以直接穿透 443 过去。这样要 keep client ip ,你需要 proxy protocol
mohumohu
261 天前
@urzz 完全不会。只是同一个 IP 地址调用申请 API 频率有限制而已( caddy 设计的就是 10 分钟频率不会超)
NotFoundEgg
261 天前
@urzz #15 cf tunnel 访问内网使用 http ,然后在 cf 里开启"始终使用 HTTPS"

外网 -> https -> cf-> tunnel+http -> 内网
NotFoundEgg
261 天前
@NotFoundEgg 然后内网 dns 服务器将 *.a.com 解析到 192.168.100.1
192.168.100.1 的 nginx 同时开启 80 和 443 端口,80 端口供 cf tunnel 使用,443 供内网 dns 解析使用

外网访问 x.a.com:443 -> https -> cf -> tunnel+http -> 192.168.100.1:80
内网访问 x.a.com:443 -> 192.168.100.1:443

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016923

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX