Javascript 连接到本地开发服务器时,让Chromecast在安全上下文中运行

Javascript 连接到本地开发服务器时,让Chromecast在安全上下文中运行,javascript,security,google-cast,drm,Javascript,Security,Google Cast,Drm,我已经为我们的一个主要客户采用了Chromecast应用程序的代码库。这已经交给我了,因为最初的开发者最近离开了我们公司。然而,在尝试进行移交时,我们惊讶地发现Chromecast客户端(一个简单的JavaScript SPA)在我的机器托管时无法运行!内容需要使用受DRM保护的视频的navigator.requestMediaKeySystemAccessAPI,该API在我的主机上不可用,但在我以前的同事的主机上可用 经过大量调查,根本原因似乎是Chromecast不认为我的开发服务器的主机

我已经为我们的一个主要客户采用了Chromecast应用程序的代码库。这已经交给我了,因为最初的开发者最近离开了我们公司。然而,在尝试进行移交时,我们惊讶地发现Chromecast客户端(一个简单的JavaScript SPA)在我的机器托管时无法运行!内容需要使用受DRM保护的视频的
navigator.requestMediaKeySystemAccess
API,该API在我的主机上不可用,但在我以前的同事的主机上可用

经过大量调查,根本原因似乎是Chromecast不认为我的开发服务器的主机(类似
http://10.1.2.75:4301
)一个“安全上下文”——
导航器.requestMediaKeySystemAccess
API仅在此类安全上下文中可用。然而,这个项目的老开发人员一直在将Chromecast连接到他们的本地开发服务器(类似
http://10.1.2.89:4301
)在两年多的时间里,他完全惊讶地发现它对其他任何人都不起作用。我们对不同的配置进行了大量的测试,尝试从不同的来源进行铸造,连接到不同的人的机器等等。但是每当我们检查
窗口时。isSecureContext
在他的主机上会返回
true
,在我的主机上会返回
false

根据我的理解,在任何类型的
http
连接上,基本上都不应该存在
issecurencontext
为真的情况,但在我前同事的机器上,这种情况非常普遍,而且已经持续了很长一段时间。如果情况并非如此,而这是我正在启动的一个新项目,我会立即说“我们需要在某种HTTPS连接上开发它”,但我所掌握的证据证明了这一点

我怎样才能让Chromecast充分信任我的浏览器来公开这个
navigator.requestMediaKeySystemAccess
API——这应该是我在没有类似本地隧道的情况下让这个项目正常工作所需要的一切(这是我目前必须做的,它导致了各种各样的问题)。在Chrome中,你可以明确指示网站信任不安全的内容——有没有办法在Chromecast设备上做到这一点?有没有办法让它信任自签名证书之类的东西

最后,我不能在网络层面上实际地做很多事情,比如建立一个私有CA和向开发人员机器提供证书等等,因为我们是一个非常小的公司,几乎没有内部架构(所以我们不需要维护任何东西)。我也不喜欢告诉这个项目的未来开发人员这个项目的运行方式是“一长串只有我能理解的恶作剧”

在此方面的任何帮助或建议都将不胜感激

更新:我不小心将Chromecast直接指向了本地的开发服务器,并成功地重新创建了工作场景,截图显示了该场景。我想这不会持续很长时间,所以这正是我要说的。这是可能的:


您是否尝试过使用letsencrypt证书在https上运行东西?因为你的前同事所做的任何设置都与工作方式无关,而且你可能无论如何都应该尝试https,而不是仅仅因为他们的电脑是以某种疯狂的方式设置的,就认为它不起作用。是的,绝对如此。但我不确定是否有一种合理的方式来实现HTTPS。LetsEncrypt只会为我可以证明自己拥有的域颁发证书,这意味着我将重新运行某种本地隧道,以便域指向我的开发机器。我目前使用ngrok正是出于这个原因。根据我的经验,大多数开发工作都不是通过HTTPS完成的,因为HTTPS更容易,而且几乎没有什么需要保护的——您只是通过LAN连接到自己的机器。据我的同事所知,他没有“设置”!不是吗?您可以自行签署证书。