You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RTSPtoWeb配置HTTPS及解决生产环境混合内容问题的技术咨询

RTSPtoWeb配置HTTPS及解决生产环境混合内容问题的技术咨询

我之前刚好碰到过类似的场景,给你分享几个可行的解决方案,一步步来:

一、给RTSPtoWeb配置生产环境SSL证书(直接解决HTTPS访问问题)

你看到的config.json里的几个HTTPS参数其实很好理解,我给你拆解下:

  • "https": true:这个必须设为true,开启RTSPtoWeb的HTTPS服务
  • "https_auto_tls": false:如果你已经有生产服务器的SSL证书,就保持false,这个开关是用来自动申请Let's Encrypt证书的,咱们用现成的不用开
  • "https_cert"和"https_key":这里一定要填证书和私钥的绝对路径,比如你的证书存在/etc/ssl/certs/your-production-domain.crt,私钥在/etc/ssl/private/your-production-domain.key,就把这两个路径填进去,别用相对路径,不然RTSPtoWeb启动时找不到文件,就会报SSL协议错误

配置完之后重启RTSPtoWeb服务,再用https://你的服务器域名访问,应该就能正常加载了。

二、临时绕过Chrome混合内容检测(仅测试用,别放生产)

如果只是想快速验证功能,不想折腾证书,可以临时给Chrome加启动参数关闭混合内容限制:

  • 右键Chrome快捷方式,打开「属性」
  • 在「目标」栏的末尾(注意留个空格)加上 --allow-running-insecure-content
  • 重启Chrome后就能加载HTTP的RTSP流了,但这个方法是全局关闭安全检测,非常不安全,绝对不能给生产环境的用户用

三、用Apache反向代理(推荐生产环境的最优解)

既然你们生产环境已经用了Apache,这是最稳妥的方案,不用改RTSPtoWeb的HTTPS配置,就能让前端用HTTPS访问RTSP流:

  1. 打开Apache的生产域名虚拟主机配置文件,添加反向代理规则:
# 假设RTSPtoWeb运行在本地8080端口,你可以改成实际端口
<Location /rtsp-stream>
    ProxyPass http://localhost:8080/
    ProxyPassReverse http://localhost:8080/
    # WebRTC用到WebSocket,必须加下面两行支持
    ProxyPass ws://localhost:8080/
    ProxyPassReverse ws://localhost:8080/
</Location>
  1. 先开启Apache需要的模块:
sudo a2enmod proxy proxy_http proxy_wstunnel
  1. 重启Apache服务:
sudo systemctl restart apache2

之后前端页面里就可以用https://你的生产域名/rtsp-stream来访问RTSPtoWeb的流了,所有请求都是HTTPS,完美解决混合内容问题。

备注:内容来源于stack exchange,提问作者Morten Hansen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:30:28