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