1
yadiman 137 天前 1
自签内网 ip 或者内部域名用 mkcert 。
有一点要注意,有部分服务是不支持 ip 证书签名的,比如:lucky 和 Nginx (起码我搞不定) |
3
yadiman 137 天前
mkcert 可以签发 ip 或者域名证书。但有的引擎安装不了 ip 证书。
pve ,openwrt ,爱快等可以。 但 lucky (一个国产端口转发工具)还有 NGINX 无法使用。 |
4
mohumohu 137 天前 2
·申请泛域名证书
·192.168.1.1.yourdomain.com |
5
lcy630409 137 天前 3
没必要为了上 https 而上 https
内网本来就是安全的话 何必多此一举呢,还得专门维护,要是有一次证书到期忘记了 还影响业务 |
8
forty 137 天前
内网机器其实是能够被统一管理的,可以初始化成统一的内网 DNS ,不用每台机器挨个去改 hosts 的。
内网 DNS 上面将域名解析到内网 IP ,然后使用 CSR 生成公网域名证书就可以了,也不存在安全问题。 如果很犟就是不想用公网域名证书,那就统一安装自签 CA 证书即可。 建议不要用 IP 证书,内网环境尽量模拟外网情况,能够更方便开发与调试。 |
10
chf007 137 天前
内网加不加无所谓,我的 pve 加了只是为了浏览器打开没有警告,好看
|
12
yichya 137 天前 2
可以考虑在 2.1 的基础上搭配一个大局域网方案( Zerotier / Tailscale / Tinc 之类)。大部分设备也有客户端,对于固定的网络环境也可以考虑装在 NAT 网关上,就不用每个设备都装客户端
@lcy630409 上 https 很多时候是因为现代浏览器的默认安全策略,比如不开 https 的话一些剪贴板 API 之类是不能用的。证书维护有很多自动化方案去做,基本上不用太操心 @yadiman 自签证书,主要还是每台设备都要专门信任一次根证书,麻烦还是其次,有些设备可能是不方便(不是不能,但是不方便)塞根证书进去的 @Mitt 这个倒是小问题,192-168-1-1.yourdomain.com 也不是不能用,很多 pcdn 都用这种路子 |
14
totoro625 137 天前 1
我选择了 2 ,通过 acme 在一张证书上申请了多个泛域名,每个网络对应一个泛解析,网络环境多变也只是改变其中的泛解析
例如 demo 服务,A 地用 demo.a.example.com ,B 地用 demo.b.example.com ,全部指向内网的一台 NGINX 服务器,通过前缀的 demo 进行分流到对应的服务 |
15
srlp 137 天前 via iPhone
tailscale 自动带了 https
|
16
yinmin 137 天前 via iPhone 5
大厂的做法是:使用实际持有的域名部署公共证书,然后部署内部 dns ,仅在内网才能解析出域名对应的 ip 地址。
|
17
xiangyuecn 137 天前
|
18
wheat0r 137 天前 2
考虑零信任思想的话,需要的
|
19
IvanLi127 137 天前 1
方法二,如果路由支持,可以在路由器上配 hosts ,配完只要 dns 用路由的,局域网内就能全部生效,缺点就是加个域名得配一遍。
|
20
iceheart 137 天前 via Android
买个域名+免费证书
|
21
kennylam777 137 天前 via Android
我的 PVE 及 Opnsense 都有正式的證書,因為我就有一個域名,用 ACME + DNS-01 也算方便。
本來就有一堆東西需要內網解析,倒也不難。 |
23
busier 137 天前 via iPhone
OpenSSL 建立 ca 自发啊
|
24
yyysuo 137 天前
没有必要。
|
25
kennylam777 137 天前
PVE 自帶 ACME 本來就十分簡單, 自動維護的, 我實在看不到不設定的理由, 而且好處多多, VNC 連線也比較順利。
況且局域網不是用 DHCPC 分發 DNS 的嗎?都這種規模難道沒有本地 DNS? 為甚麼要手動設定 Host? 而且 PVE 主機的 IP 是固定的, 為甚麼會每個局域網也需要設定一次? 不過近期和一些中國開發者合作, 對方連公網都不用 HTTPS, 甚麼 Nacos 等亂七八糟的東西都直接用公網 HTTP 無加密連線, 就只有一個限制 IP 地址的防火牆, 甚麼 MySQL 密碼的都在國際雲上用 HTTP 直接通過 GFW 連回去中國辦公室的固定 IP 就是了, 這個國家的人似乎特別討厭 HTTPS 似的。 |
26
ladypxy 137 天前
内网机器直接加入 AD ,然后 AD 签发证书就好
|
27
villivateur 137 天前
我都是自己的 CA 签名自己的内网专用域名,内网 DNS 解析,要教程的见:
https://blog.vvzero.com/2023/01/20/self-signed-certificate-with-SAN/ |
28
zwlinc 137 天前 1
证书这个东西和你域名指向的 IP 没啥关系,大可以用 let‘s encryption 签,然后解析到内网即可
|
29
NessajCN 137 天前
我一般不会给自己家里卧室厨房厕所都装防盗铁门,
当然我不清楚楼主的习惯所以也只是说一下我自己的做法 |
30
superchijinpeng 137 天前
没必要用 ip ,域名解析到内网 ip 就行,caddy 自动 https
|
31
knightgao2 137 天前
https 其他不清楚,但是浏览器没 https 很多用不了
|
32
qsnow6 137 天前
我没记错的话,对于自回环或者 LAN 是有免签域名的
|
33
keyfunc 137 天前
建议上,现代的浏览器对于 http 有各种限制,http 让浏览器保存密码这件事就很麻烦
|
34
MFWT 137 天前 1
我习惯是直接上自签名证书,然后使用的设备信任一下
缺点嘛.....似乎安卓只能导入 SHA-1 的证书,也不确定是不是我哪里没做对 |
35
forvvvv123 137 天前
|
36
jenson47 137 天前
stepca 自己部署服务,自己签,而且还可以打破公有证书的时间限制呢~
|
37
lovelylain 137 天前 1
1.没必要用 ip 证书,你都内网了,ip 证书肯定得自签名,自签名就得客户端导入根证书,还不如域名更好记
2.更没必要用 ip.yourdomain.com 的证书,统一分配域名,安全性更好 3.反正都要配置,最好的做法就是楼上说的,使用实际持有的域名部署公共证书,然后部署内部 dns ,仅在内网才能解析出域名对应的 ip 地址 |
38
cccer 137 天前 1
自签也比 http 好,新版 chrome 会各种阻止 http 或者自动跳 https ,导致访问异常。
|
39
zyq2280539 137 天前
内网同样可以申请公网域名哈,只不过需要公网 VPS 辅助一下,我现在方案:DNS 解析:腾讯云, 公网 VPS:腾讯云,家里小主机:迷你主机,vps 和家里主机上同时安装 nginx,一开始都用 80 端口,vps 主机上 nginx 反向代理家里小主机的 nginx,然后组网工具用 tailscale, vps 上用 certbot 申请 ssl 证书,然后家里小主机上也同样用 certbot 申请证书就可以了,都申请完毕之后 VPS 要反 https://内网域名, vps 要写死 hosts 指向家里小主机,基本没啥问题,家里有 bind9 做了内网 DNS 解析,很完美的实现
|
40
lneoi 137 天前 1
chrome 在非 https 下有不同的安全限制. 如果内网对信息管控有一点要求, 上个 https 也安全一些, 毕竟是内网就不设防也挺危险的
|
41
zyq2280539 137 天前 1
总结下来,核心点,两层 nginx,配合 certbot,certbot 的 nginx 插件
1. VPS 上正常解析,申请 ssl 证书, 2. tailscale 组网,vps 上的 nginx 反向代理家里 mini 主机的 nginx 的 80 端口都用域名访问,但是要设置 vps 的 hosts 否则就造成了循环解析,设置完毕 hosts 之后就正常引入流量到家里小主机上了 3. 家里小主机上同样用 certbot 申请 ssl 证书,申请完毕后此时家里小主机的 80 端口会被自动重定向到 443 端口 4. 修改 vps 上反向代理端口从 80 改到 443 即可。 5. 局域网内有 bind 配置自己的解析服务,家里局域网都解析到内网了,不在家里的时候解析先到腾讯云然后再到家里小主机上 本人此方案正常使用好几年了,没啥问题。不过最近发现泛域名证书好像更好用,反而不用这么麻烦的修改 |
42
zwlinc 136 天前 1
@zyq2280539 内网可以不用 http-01 challenge ,用 dns-01 challenge 就行了,证明这个域名属于你就行
|
43
zyq2280539 136 天前
@zwlinc 对,我以前都是用 http 验证,最近发现用 dns 验证也挺好的,还搞了泛域名做尝试
|
44
Zzdex 136 天前 1
我是家里有一套 k8s, 所有 web 服务 都通过 ingress 做入口,然后 证书靠 cert-manager 做自动签发,配置一次 之后就不管了
内网 靠 家里 的 dns 解析到 ingress lb 外网 就是家里的 ip 麻烦一点就是 运营商不开放 443 ,所以外面访问都得带一个端口 8443 之类的。 其实也还好,家里也用 8443 得了,内外访问体验一致。 |
45
Inzufu OP |
46
busier 136 天前
|
47
chinni 136 天前
acme dns 验证下就好了 直接 dns 记录 写内网呗 弄个泛域名就好了
|
48
n18255447846 136 天前
公网 ip+域名申请的 ssl 证书可以用吧,内网改下 dns 不就得了。自签名的证书主要是信任问题,公网正常申请的证书拿来即用
|
49
mengyx 136 天前 via Android
我们是专门注册一个域名,然后使用 ACME DNS Challenge 签发证书
|
51
zbowen66 136 天前 via iPhone 1
我的设备太多,自签证书要一个一个安装到设备,太麻烦,所以我来真的,Certbot 自动续签,一步到位。
|
52
zbowen66 136 天前 via iPhone
@lcy630409 #5 有些服务比如 bitwarden 强制要求 https ,还有浏览器不允许 https 网页上的插件或脚本请求 http 服务
|
53
815979670 136 天前 1
从安全的角度来说还是有的,之前我从自身的项目需求出发 总结过一篇博客 https://www.dbkuaizi.com/archives/381.html
|
54
Jacob7ung 136 天前 1
是担心内网嗅探吗?如果有访客,弄个访客网络呢,还是其他考虑。
我是为了 bitwarden ,弄得 duckdns 配合 Nginx Proxy Manager ,优点就是不用弄证书,缺点就是 duckdns.org 的后缀。 |
55
Twnysta 136 天前 1
内网 ip 如果是固定的话,买一个域名,然后解析地址改成内网地址,然后可以使用 dns api 脚本去签免费的证书。
|
56
sunmker 136 天前 1
因为想要用 js 的复制到剪贴板功能,chrome 说不是 https 不让用
然后绕了一大圈,上了 https ,谷歌还是说我 [此站点不安全] ,用是能用了,就是有点丑 |
57
lisongeee 136 天前 1
浏览器下非 https/localhost 的域名的 js 环境缺失了很多对象和功能,如果不在意这些功能,就可以不用 https
|
58
luolw1998 136 天前
用 nip.io ,比如访问 127.0.0.1 ,改成 127.0.0.1.nip.io 就行
|
59
bkdlee 136 天前
我用的是子域名,做了反向代理。然后就能签证书了。
|
61
dzdh 136 天前
自己做 ca 呗
|
62
hxtheone 136 天前 via iPhone
自有域名, 内网用 openwrt 接管 dns 解析到内网, caddy 加一层反代上 https 然后自动续签, 无脑得很, 而且可以做到内外网用同样的域名访问无缝切换
|
63
libook 136 天前 1
有的服务要求必须 HTTPS ,以及一些浏览器 API 不走 HTTPS 不能用。
可以走 DNS Challenge ,可以参考这个 https://letsencrypt.org/docs/challenge-types/#dns-01-challenge |
64
hzwzo1 136 天前 1
内网 dns 服务器配置域名解析到本地 ip 就可以了,外网解析到暴露的公网 ip ,这样内外网体验一样
|
65
laminux29 136 天前 1
1.HTTPs 是用来保障安全的,当然要加,而且现在已经是标准了。
2.内网自用的场景,直接自签就行了。自建一个 CA ,然后用 CA 给服务或服务器自签证书。每台新设备入网时,把 CA 的证书导入到 CA 区域就行。 |
66
Inzufu OP 感谢各位的建议,最后的方案是把自己域名的 *.internal.example.com 在内网 dns 服务器中解析到了本地 ip 地址。
证书用了 let's encrypt 签发。 要让浏览器信任证书,看来没有更简单的办法啦。 |
67
imydou 135 天前 via iPhone
我们是内网部署的 caddy ,所有流量通过 caddy 转发
|
68
murchef 135 天前
内网有个 bitwarden 自建,我就 docker 起 NPM ,用 DNS 认证一个 Let's Encrypt 证书(自己要有域名),然后 NPM 做个反代指向 bitwarden ,最后路由器( ADG HOME )把域名指向 NPM 就好了。
|