内网 IP 是否有必要上 HTTPS,如果有必要,应该怎么做

43 天前
 Inzufu
看 pve 默认内网 ip 就加了自签的 https 证书,可以在一定程度上防止数据在中途被劫持。

我目前想了几种方法:
1. 自签 IP 证书:
浏览器弹不信任是小事,就是有时候编程请求 api 的时候直接就因为 https 校验失败就报错了。
2. 使用实际持有的域名
2.1 把域名解析到本地 IP:每个网络的本地网络环境都不一样,把域名解析到一个未知的 IP 地址感觉不太好。
2.2 在本地 DNS 把域名解析到局域网
要求每台机器都修改 hosts 或 DNS 服务器,有些麻烦。

那看来就真的没办法了吗
8555 次点击
所在节点    程序员
68 条回复
yadiman
43 天前
自签内网 ip 或者内部域名用 mkcert 。
有一点要注意,有部分服务是不支持 ip 证书签名的,比如:lucky 和 Nginx (起码我搞不定)
koloonps
43 天前
@yadiman mkcert 不是可以的吗?
yadiman
43 天前
mkcert 可以签发 ip 或者域名证书。但有的引擎安装不了 ip 证书。
pve ,openwrt ,爱快等可以。
但 lucky (一个国产端口转发工具)还有 NGINX 无法使用。
mohumohu
43 天前
·申请泛域名证书
·192.168.1.1.yourdomain.com
lcy630409
43 天前
没必要为了上 https 而上 https
内网本来就是安全的话 何必多此一举呢,还得专门维护,要是有一次证书到期忘记了 还影响业务
kenvix
43 天前
@mohumohu #4 点分是新的域名
mohumohu
43 天前
@kenvix 新域名有啥问题
forty
43 天前
内网机器其实是能够被统一管理的,可以初始化成统一的内网 DNS ,不用每台机器挨个去改 hosts 的。

内网 DNS 上面将域名解析到内网 IP ,然后使用 CSR 生成公网域名证书就可以了,也不存在安全问题。
如果很犟就是不想用公网域名证书,那就统一安装自签 CA 证书即可。
建议不要用 IP 证书,内网环境尽量模拟外网情况,能够更方便开发与调试。
Mitt
43 天前
@mohumohu #4 泛域名证书不支持递归,只能是 *.yourdomain.com 不能是 *.*.yourdomain.com
chf007
43 天前
内网加不加无所谓,我的 pve 加了只是为了浏览器打开没有警告,好看
mohumohu
43 天前
@Mitt 替换成-就好了
yichya
43 天前
可以考虑在 2.1 的基础上搭配一个大局域网方案( Zerotier / Tailscale / Tinc 之类)。大部分设备也有客户端,对于固定的网络环境也可以考虑装在 NAT 网关上,就不用每个设备都装客户端

@lcy630409 上 https 很多时候是因为现代浏览器的默认安全策略,比如不开 https 的话一些剪贴板 API 之类是不能用的。证书维护有很多自动化方案去做,基本上不用太操心

@yadiman 自签证书,主要还是每台设备都要专门信任一次根证书,麻烦还是其次,有些设备可能是不方便(不是不能,但是不方便)塞根证书进去的

@Mitt 这个倒是小问题,192-168-1-1.yourdomain.com 也不是不能用,很多 pcdn 都用这种路子
mohumohu
43 天前
totoro625
43 天前
我选择了 2 ,通过 acme 在一张证书上申请了多个泛域名,每个网络对应一个泛解析,网络环境多变也只是改变其中的泛解析
例如 demo 服务,A 地用 demo.a.example.com ,B 地用 demo.b.example.com ,全部指向内网的一台 NGINX 服务器,通过前缀的 demo 进行分流到对应的服务
srlp
43 天前
tailscale 自动带了 https
yinmin
43 天前
大厂的做法是:使用实际持有的域名部署公共证书,然后部署内部 dns ,仅在内网才能解析出域名对应的 ip 地址。
xiangyuecn
43 天前
证书 *.xxx.com 不匹配 *.xx.xxx.com 就离谱的很,有点满清遗老那味

*.xxx.com 不匹配 xxx.com ,这玩意又不涉及 dns 解析,烂货😂
wheat0r
43 天前
考虑零信任思想的话,需要的
IvanLi127
43 天前
方法二,如果路由支持,可以在路由器上配 hosts ,配完只要 dns 用路由的,局域网内就能全部生效,缺点就是加个域名得配一遍。
iceheart
43 天前
买个域名+免费证书

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

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

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

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

© 2021 V2EX