设想:
- 我们有一个类似于 WiFi 路由器的设备,它暴露了 UI 和 API
- 该设备将在我们无法控制的任何 LAN 上运行,就像 WiFi 路由器在任何房屋上运行一样。
- 该设备不属于任何域,通过浏览器通过其 IP 地址(即 192.168.1.100)进行访问。
- 协议应为 HTTPS
- Windows上使用的软件是.net Core/Kestrel
- 目前,我们在所有浏览器中都会发出警告,告知设备的证书无效。
- 限制:该设备应可由任何计算机(台式机/平板电脑)访问,并且不能在客户端计算机中安装或配置任何内容。
问题是:消除警告的最佳方法是什么?我们了解到私有/本地 IP 不能有常规证书。
自签名证书似乎可以工作几天,然后错误再次出现。
无法为IP地址颁发SSL证书;你必须有一个实际的name您为其创建证书的。为了获得这样的名称,您需要一个 DNS。由于您无权访问该本地网络的内部 DNS,因此您必须使用公共 DNS 服务器。
这假设该网络内的设备实际上可以访问互联网。如果他们不这样做,那么你就完全不走运了。
如果可以访问互联网,那么您只需将公共(子)域指向您的本地 IP 地址即可。基本上,为您拥有的域配置 DNS,以便该域或其子域之一上有一个 A 条目,该条目指向您的本地 IP 地址192.168.1.100
.
这样,您就可以将该公共域传达给其他人,当他们尝试解析该域时,他们将访问 DNS,该 DNS 将提供本地 IP 地址。因此,该网络内的设备可以访问您的设备并访问它。由于他们随后通过该域访问它,因此该确切域的证书将被普遍接受。
从理论上讲,这非常有效。但实际上这可能有点复杂或昂贵。服务器证书过期,因此您必须包含证书(安全!)在您的设备中,并提供一些最终在到期时进行更新的方法。免费证书(例如 LetsEncrypt 提供的证书)将在几周内过期,但金钱可以为您购买过期速度较慢的证书。
但最终还是会有些痛苦。但不是因为域名,而是因为证书——至少如果您想要一个自动受信任的证书的话。不然的话,你又会回到最初的地方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)