带 mDNS 的 HTTPS

HTTPS with mDNS

我一直在研究使用 mDNS 从 JavaScript 应用程序中发现服务。基本思想是向 exampleservice.local 发出 AJAX 请求,并让 return JSON 具有相关信息。

由于应用程序是通过 HTTPS 加载的,因此任何 AJAX 请求也必须使用 HTTPS 进行(以避免出现不安全的内容警告等)。但是,从 2015 年 11 月开始,它将 not be possible 获得 .local 域的受信任 CA 颁发的证书。

考虑到上述新限制,是否有任何方法可以在不涉及让用户信任自签名证书的情况下将 HTTPS 与 mDNS 一起使用?

mDNS 用于网络本地名称。全球颁发的证书用于互联网上的名称,不能用于本地名称,因为与互联网上的全球唯一名称相反,本地名称在不同的本地网络中可以相同,因此没有真正的名称所有者可以为其申请全球证书。

这意味着您不能使用浏览器中可用的全局信任设置(即根 CA),而必须添加本地信任设置。这可以通过拥有自己的本地根 CA 并在本地网络上的所有浏览器中信任它来完成​​,或者通过使用需要被每个用户明确信任的自签名证书来完成。

除此之外,想象一下其他开发人员也有同样的想法。这意味着相同的本地名称将有几个独立的证书,因为它们都在不同的本地网络中。因此,将 mDNS 名称与 https 一起使用只会在没有任何移动客户端的本地安装中有意义。