在线上环境使用自签证书部署的网站, 网页浏览正常,只是执行SRS拉流失败,浏览器控制台提示”ERROR_CERT_INVALID".原始视频流地址是https://X.X.X.211:8082/live/sn.flv?token=123456
后端和SRS配置中均已经启用了https功能,而且我在VLC中可以拉流成功,在浏览器中已经安装了自签证书,也可以查看到证书(受信任的根证书)信息没有问题,其中CN=X.X.X.211。
请问有什么办法可以让我在网站中可以正常拉取.flv视频流
在线上环境使用自签证书部署的网站, 网页浏览正常,只是执行SRS拉流失败,浏览器控制台提示”ERROR_CERT_INVALID".原始视频流地址是https://X.X.X.211:8082/live/sn.flv?token=123456
后端和SRS配置中均已经启用了https功能,而且我在VLC中可以拉流成功,在浏览器中已经安装了自签证书,也可以查看到证书(受信任的根证书)信息没有问题,其中CN=X.X.X.211。
请问有什么办法可以让我在网站中可以正常拉取.flv视频流
浏览器提示 ERROR_CERT_INVALID 表示自签证书在拉取 FLV 流时未被信任,尽管证书已安装为受信任的根证书。常见原因包括:
X.X.X.211),而不仅仅是 Common Name (CN)。自签证书默认可能只设置 CN,导致浏览器不信任。8082,浏览器可能对非 443 端口的 HTTPS 有额外检查。以下是解决步骤,重点在重新生成证书并配置 SANs。确保操作在服务器端进行,然后更新 SRS 配置。
subjectAltName 扩展以包括 IP 地址 X.X.X.211。在服务器上运行以下命令(替换 X.X.X.211 为实际 IP):
# 生成私钥和证书,包含 SANs
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=X.X.X.211" -addext "subjectAltName=IP:X.X.X.211"key.pem(私钥)和 cert.pem(证书)文件。openssl x509 -in cert.pem -text -noout,检查输出中是否包含 X509v3 Subject Alternative Name: IP Address:X.X.X.211。编辑 SRS 配置文件(通常位于 /usr/local/srs/conf/srs.conf 或类似路径),确保 HTTPS 部分正确引用新证书:
http_server {
enabled on;
listen 8082; # 确保端口匹配
https {
enabled on;
key ./key.pem; # 私钥路径
cert ./cert.pem; # 证书路径
}
}重启 SRS 服务使配置生效:
sudo systemctl restart srs
# 或使用 srs 命令:sudo ./objs/srs -c conf/srs.conf安装新证书:
cert.pem 文件下载到本地。https://X.X.X.211:8082(不带流路径),确认无证书警告。如果仍有错误,检查 SANs 是否正确。https://X.X.X.211:8082/live/sn.flv?token=123456。使用浏览器开发者工具(F12 > Console/Network)查看详细错误。备选测试:如果问题依旧,尝试:
http://X.X.X.211:8082/...。但线上环境建议坚持 HTTPS。X.X.X.211,但缺少 SANs 扩展,导致无效错误。curl -v https://X.X.X.211:8082 或 openssl s_client -connect X.X.X.211:8082 检查证书链和错误详情。如果问题持续,提供更多细节(如浏览器类型、SRS 版本和证书生成日志),以便进一步诊断。
2 回答949 阅读✓ 已解决
3 回答923 阅读✓ 已解决
3 回答961 阅读
3 回答954 阅读
1 回答502 阅读✓ 已解决
4 回答794 阅读
2 回答747 阅读✓ 已解决
所以我们选择了zlmediakit