![]() | 1 Xusually 2021-08-23 17:33:57 +08:00 没有办法 内网也可以使用可信任 CA 签发的 ssl 证书呀,ip 证书是不好弄,域名证书,特别是单域名 dv 的证书基本上是免费的,你申请好,内网域名解析到内网 ip 还不是一样用? |
![]() | 2 Vegetable 2021-08-23 17:43:00 +08:00 最后发现使用 http 成了唯一解... |
3 AoEiuV020 2021-08-23 17:47:46 +08:00 不管内不内网,都一样搞个域名和受信任的证书就可以, |
![]() | 6 lower 2021-08-23 17:51:53 +08:00 ![]() 直接整个客户端壳子浏览器套网页展示。。。域名地址啥的也不需要看了。。而且还可以美其名曰:为了安全…… |
7 20ng21 OP 内网域名解析到内网 ip 的话岂不是还需要去修改客户那边的网络环境。 现在我们这边只是提供了一台嵌入式设备,客户通过 ip 访问,他那边的网络环境应该没法改。。 |
9 m2276699 2021-08-23 17:53:59 +08:00 网管改下域名的路由规则就可以映射到指定 ip |
10 20ng21 OP 哦,对了,一个局域网可能有多台设备,都是通过各自的 ip 地址访问的,所以域名映射应该不行。⊙⊙ |
![]() | 11 eason1874 2021-08-23 18:01:26 +08:00 如果客户机可以访问外网,直接给域名添加权威解析,地址就填内网 IP 否则,要么安装证书,要么 HTTP |
![]() | 12 Tumblr 2021-08-23 18:05:26 +08:00 这是一个很( fei )有( chang )意( za )思( luan )的问题。。。 1. 有内部 CA 么?如果是内部访问,有内部 CA 的话自己颁发一个就好了; 2. 有集中管理环境么?如果有,推个证书也是可以的; 3. 如果都没有,去申请个域名,申请个证书,这个是最快实现的方法。至于解析,你在 CF 上设置解析到 10.x.x.x 也不是不可以。 |
14 PrinceofInj 2021-08-23 18:13:31 +08:00 via Android @20ng21 把需要的证书推倒客户端信任根签发 |
15 20ng21 OP @PrinceofInj # 14 哦哦 多谢 明白了~ |
16 abc612008 2021-08-23 18:24:52 +08:00 如果真的因此换 http 了还真的是为了表面上安全反而变得不安全。挺讽刺的。 |
17 xylophone21 2021-08-23 19:01:17 +08:00 1. 申请一个统一的域名,导向云引导页面,列出所有设备,让用户选择 2. 设备与云通讯,选举一个跑网关,网关与各设备直接用自签证书保证安全 3. 如果设备的局域网 IP 地址是变化的,通过 DDNS 4. 如果设备出现在两个不同的局域网,在步骤 2 的云识别,把第二个局域网的导向第二个域名,同时在第二个局域网内也选举出一个网关 仅提供一个思路,应该还有不完善的地方 |
18 xylophone21 2021-08-23 19:05:04 +08:00 @xylophone21 想复杂了,简化一下: 1. 每个设备上线时向云发送指令,让云帮忙分配一个域名,指向设备的内网地址(类似 DDNS ),下线是回收 2. 用户总是打开你云端的页面,列出所有在线的设备,然后用临时域名跳转,访问设备 |
19 xylophone21 2021-08-23 19:30:21 +08:00 又想到一个方案:浏览器总是打开云上的一个页面,用类似 https://github.com/szimek/sharedrop 的方法找到局域网上的所有设备,进入设备时仍然访问云端页面,这个页面通过 WebRTC 与设备 P2P 传输数据,再交给前端渲染。 sharedrop 的实现原理要看一下他的代码,关键是怎么猜测两个端在同一个局域网,不过对你的场景来说,假设所有的设备都在一个局域网,问题应该也不大,联不通的显示一下就好了。 |
![]() | 20 GG668v26Fd55CP5W 2021-08-23 19:39:44 +08:00 via iPhone 申请个域名,指向内网 IP,一分钱也不想出的话也有免费的域名。 |
21 iseki 2021-08-23 19:42:38 +08:00 via Android 不行的,真有这种东西岂不是一定程度上给 mitm 大开方便之门? |
![]() | 22 jim9606 2021-08-23 19:59:03 +08:00 无外部依赖、可以用裸 IP 、麻烦的做法:内网部署私有 CA,内网客户端系统安装私有 CA 证书为信任根,可以解决浏览器问题。 有外部依赖、只能用域名、相对省事的方法:注册一个域名并找一个支持 DNS API/RFC2136 的域名解析商,用 DNS-TXT 验证的方式申请 Let's Encrypt 域名证书(或其他 ACME 兼容的公共 CA )。这个验证方式并不要求内网服务器暴露。 |
![]() | 23 Showfom PRO 这个问题简单 首先,你需要一段公网 IP,至少需要一个 /24 起步 然后在公网上广播上去并使用,并给需要的 IP 申请证书 然后在路由器里把公网 IP 设置成内网 IP 段来用,就直接劫持自己的这段 IP 公网的 IP 只要打开 80 和 443 端口是可以申请证书的 |
24 crystom 2021-08-23 21:24:29 +08:00 ![]() xip.io 可以把 ip 做成域名,就有人搞了个 https://sslip.io/ 这个公开部署的可能已经被吊销了,但是私有部署是没问题的 |
25 crystom 2021-08-23 21:25:21 +08:00 192.168.20.46.xip.io resolves to 192.168.20.46 就这个例子 |
26 yeqizhang 2021-08-23 22:03:13 +08:00 via Android 用 ip 应该没办法,只能在每个客户机上安装证书。也见过别人是这么搞,在登陆界面给个安装文件的下载 |
![]() | 27 Mutoo 2021-08-23 23:06:37 +08:00 分享一个我在项目里用的方案 TL,DR: 1) 脚本自生成证书,绑定 localhost (开发用)+ *.local mDNS 地址(内网访问)+ <内网 IP>.nip.io (以备 mDNS 失效) 2) 提供 http://网址 /CA 用于下载证书 开发者只要运行一次脚本,生成证书并使用该证书部署网站即可。 用户只要第一次手动下载证书并信任即可。 用到了 nip.io 这个 wildcard dns 服务。 https://github.com/mutoo/axidraw-web#self-signed-cert |
![]() | 28 Mutoo 2021-08-23 23:09:01 +08:00 @Mutoo 这个方案支持同一证书添加多个 IP,也支持子证书。另外由于是根证书+子证书的形式。客户端只要下载根证书公钥,即使新增 IP 的话也不需要重复下载信任证书的过程。 |
29 20ng21 OP 感谢各位提供的建议。 我打算在登录页面弄个证书下载看看 |
30 LukeChien 2021-08-24 13:19:41 +08:00 via Android 要不你们公司申请个 CA 吧 |
![]() | 31 BitCert 2021-09-18 22:10:59 +08:00 公网 IP 好解决,内网 IP 只能搞 CFCA 证书,我们这边的证书是支持公网 IP 的,全球信任 |
![]() | 32 mingtdlb 2021-10-31 17:32:13 +08:00 客户端导证书为啥我还是提示不安全...能贴下自签命令 openssl 不 |