打算架设一个局域网 https 调试服务,征求建议

59 天前
 Leon6868

动机

最近在开发 WebRTC 服务,但是浏览器只允许本机 ip 和 https 域名开启 WebRTC 服务,因此难以在局域网内进行真机调试。

如果有个本地 https 调试服务就好了,但是自己生成证书安装很麻烦,而且不适用于移动端。

所以就想,如果搭建一个能解析到任意本地地址的 https 域名服务,也许能帮助到与我有同样困境的人(也许有吧!)

实现

域名方面,打算注册一个域名(如 localhttps.top 或者 httpsdns.top ),有无更好的域名建议?

局域网 IP 段主要有以下网段:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

楼主认为可行的操作形式是:

  1. 用户首先通过 cli 或者网页登记,然后得到 usr 识别码和 *.usr.localhttps.top 的泛域名证书(识别码是为了预防潜在的滥用行为)。
  2. 用户访问 xxx-xxx-xxx-xxx.usr.localhttps.top,DNS 服务器将自动解析到对应的局域网 IP ,如 xxx.xxx.xxx.xxx

将所有局域网 IP 段填充到 DNS 解析中并不现实,因此想到了两种解决方案:

  1. 通过 namesilo 的 DNS API 实时登记请求解析的 IP 。
  2. 搭建自己的 NameServer (如 ns1.localhttps.top),实现自动解析和权鉴。

手动管理证书是及其不健康的,楼主的主要工作语言是 Python 和 NodeJS ,计划开发能自动下载证书、提供证书、维护证书的包。

疑问

  1. 是否有更好的方法?
  2. 请问这套流程是否可行?
  3. 如果可行,这套流程是否有安全漏洞?

最重要的,大家认为这套系统有必要存在吗?

欢迎任何建议!

3522 次点击
所在节点    程序员
52 条回复
shadowyue
59 天前
注册个自己的域名,弄个小服务器呗
Leon6868
59 天前
@shadowyue #1 主要是自己注册域名要钱而且很麻烦,而且手动填写 dns 也很麻烦,所以想着设计一套自动化系统也许能帮到有需要的人。
Nazz
59 天前
用 cfssl 生成自签名证书就行了
snipking
59 天前
参与调试的机器有多少啊,数量不大的话简单点就是做自签名证书,然后直接对服务器 IP 签发证书,再把 ca 证书装到调试设备上就行了
jqknono
59 天前
得先确认浏览器是否只允许本机 ip 和 https 域名开启 WebRTC 服务, 试试看开一个 private 窗口是否允许.
Leon6868
59 天前
@jqknono #5 这个倒是可以确认,非本机的局域网 ip 根本无法获取麦克风和摄像头权限
ligolas
59 天前
看起来,你的需求 mkcert, https://github.com/FiloSottile/mkcert 完全能满足
rrfeng
59 天前
你不想弄证书,和解析到哪有什么关系???解决了什么问题???
andyskaura
59 天前
花你那个工夫,随便捞个证书都已经调试完毕了
vinsony
59 天前
eu.org+acme 不要钱
cheng6563
59 天前
eu.org 搞个免费域名,然后搞个泛域名证书完事了
IvanLi127
59 天前
如果有一个可用的域名,就没这么多麻烦事了。绕这一圈,有域名的人已经调通功能合分支了。
ajan
59 天前
mkcert +1
catamaran
58 天前
不太懂,开发环境想用域名,架个 dns 服务不就完了,甚至可以直接写到 host 文件中
Belmode
58 天前
#6 你要是为了过浏览器媒体权限,随便自签一个证书不就可以了。随便签,直接用 ip 访问 webrtc 的服务就行了。哪还那么麻烦,你搞域名,岂不是还要内网穿透?公司安全部门能允许你这么干。(笑
mringg
58 天前
这个用 vscode 的那个端口映射就可以了,他那个能映射出 https 的链接地址
JensenQian
58 天前
@Leon6868 #2 六位数 xyz 域名
一年 spaceship 只要 0.67 美金,注册续费同价

证书的话 let's 谷歌 zerossl 三个月的免费通配符,自动续签完事了
lcy630409
58 天前
控制局域网的 dns apple.com 也是你的
ETiV
58 天前
前不久才通过的一个规范,把 .internal 后缀保留用来给内网需求的域名用

https://github.com/nh2/internal-contstrained-pki
上面这个工具可以做一个在约束了域名是 **.*.internal 前提下签发域名证书的 CA 根证书(不太好组织语言…),然后其他机器就可以比较放心的信任这个 CA 根证书,不会作恶
esee
58 天前
mkcert 不就一个命令的事情?自签证书有啥麻烦的?这才是最简单的方案。甚至你可以给 IP 签 https ,啥域名都不用。

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

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

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

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

© 2021 V2EX