我们在网络上的备用服务器上安装了 RTSPtoWeb,只是为了看看它是否能正常工作,结果确实如此。它很好地捕获了来自我们摄像头的流。然后我使用 webrtc 流选项成功地在网页上显示了它,但仅限于 localhost 上的本地开发环境中。备用服务器没有 SSL 证书,它只是 http。
现在,当然这也需要在我们的生产环境中工作,即全部使用 https。起初,我只是指向备用 http 服务器。因此,Chrome 自然会抛出混合内容错误。然后我尝试在生产服务器上安装 RTSPtoWeb,但我想我仍然需要以某种方式将生产服务器 SSL 证书应用于 RTSPtoWeb。如果我使用 https 协议指向 RTSPtoWeb,它会返回 Net ERR_SSL_PROTOCOL_ERROR
在 config.json 中,有许多与 https 相关的变量,但没有关于它们实际含义的文档:
"https": true,
"https_auto_tls": false,
"https_auto_tls_name": "",
"https_cert": "server.crt",
"https_key": "server.key",
有没有人成功使用带有 SSL 证书的 RTSPtoWeb?如果有,怎么做到的?或者有没有一种快速而简单的方法可以规避 Chrome 中的“混合内容”问题。
或者,由于我们正在生产服务器上工作,而我只是使用 IP 地址指向 RTSPtoWeb,如果使用服务器的域名引用 RTSPtoWeb,会有什么变化吗?我们使用 Apache,那么我能否以某种方式重定向流量?
答案1
我也花了很多时间来解决这个问题,你可能不再研究它了,但这是出于遗留目的的答案。
注册你的 A 记录 确保你的公网 IP 已在域名注册商处注册为 A 记录 不要只使用 IP 地址指向 RTSPtoWeb,而是使用指向公网 IP 的 A 记录,例如https://rtsptoweb.yourdomain.com:12629/stream/0/channel/0/webrtc 代替https://100.100.100:12629/stream/0/channel/0/webrtc
SSL 证书缺失 确保您的 server.crt 和 server.key 文件在构建中正确包含。我使用 docker 进行构建,并且必须编辑 docker 文件才能正确包含文件。
您必须生成 SSL 证书并根据您之前注册的 A 记录进行认证。
最后,启动 RTSPtoWeb 后,仔细检查日志以了解哪些地方不起作用,它会为您指明正确的方向。