海康威视 WSS 视频取流原理:6014/559 端口、Nginx 代理与 TLS 证书问题
一、问题背景
在某项目对接海康威视视频监控平台时,调用录像回放接口能够正常返回数据(HTTP 200),但前端 H5Player 无法播放视频,浏览器控制台提示 WebSocket 连接失败。
接口返回示例(已脱敏):
json
{
"code": 200,
"msg": "OK",
"data": {
"list": [
{
"beginTime": "2026-XX-XXT09:00:00+08:00",
"endTime": "2026-XX-XXT10:00:00+08:00"
}
],
"url": "wss://<VIDEO_SERVER_IP>:6014/proxy/<STREAM_SERVER_IP>:559/openUrl/<TOKEN>?..."
}
}
浏览器报错:
text
WebSocket connection to
'wss://<VIDEO_SERVER_IP>:6014/media?...'
failed
wss连接失败,原因:
端口尚未开通、证书未安装、证书不安全
0x12f910019
说明录像查询接口正常,但视频流连接未成功建立。
二、海康 WSS 视频取流原理
海康 H5Player 通过 WebSocket 协议获取视频流,常见协议包括:
ws://:普通 WebSocket 连接。wss://:基于 TLS 加密的 WebSocket 连接。
本次案例中的视频取流地址格式为:
text
wss://<VIDEO_SERVER_IP>:6014/proxy/<STREAM_SERVER_IP>:559/openUrl/<TOKEN>
根据 URL 结构,可以初步判断:
| 组件 | 作用 |
|---|---|
| H5Player | 浏览器端视频播放器 |
| 6014 端口 | WSS 服务入口 |
| Nginx | HTTPS/WSS 接入及反向代理 |
| 559 端口 | 后端视频取流服务端口 |
| TLS 证书 | 加密连接与服务端身份验证 |
典型取流流程:
text
浏览器 H5Player
│
│ WSS 视频请求
▼
视频服务器:6014
│
▼
Nginx / WSS 代理
│
│ 转发请求
▼
视频取流服务:559
│
▼
海康视频取流服务
│
▼
返回视频流 → H5Player 播放
上述流程是根据取流 URL 推断的典型架构,具体端口用途和代理关系以实际部署配置为准。
三、故障排查过程
1. 检查接口返回
录像查询接口返回 code: 200,且包含录像时间和 WSS 取流地址。
说明 API 请求成功,但不代表 WSS 视频连接成功。
2. 检查端口连通性
在 Windows PowerShell 中执行:
powershell
Test-NetConnection <VIDEO_SERVER_IP> -Port 6014
也可以通过浏览器访问:
text
https://<VIDEO_SERVER_IP>:6014
实际测试中,浏览器成功显示:
text
Welcome to nginx!
说明 6014 端口能够访问,且 Nginx 正常响应 HTTPS 请求。
但这并不代表 WebSocket 代理配置一定正确。
3. 检查 TLS 证书
浏览器访问时提示"不安全"。
查看证书信息(已脱敏):
| 项目 | 结果 |
|---|---|
| 证书 CN | <VIDEO_SERVER_IP> |
| 颁发机构 | <INTERNAL_ROOT_CA> |
| 证书有效期 | 有效期内 |
| 浏览器状态 | 不安全 |
证书尚未过期,但疑似由企业内部 CA 签发。
如果客户端未信任对应根证书,浏览器可能拒绝建立 WSS 加密连接。
此外,即使 CN 与访问 IP 一致,仍需检查证书的 SAN 是否包含该 IP。
四、解决方案
结合排查结果,优先检查证书信任问题。
方案一:客户端安装根证书
适用于少量电脑需要访问监控视频的情况。
- 联系平台技术人员获取对应根 CA 证书。
- 核验证书来源及指纹。
- 按企业安全规范将根证书安装至 Windows 的"受信任的根证书颁发机构"。
- 重启浏览器并重新测试录像回放。
方案二:服务端优化证书配置
适用于多用户、长期运行的视频集成场景。
由 IT 和平台实施人员检查:
- Nginx HTTPS/WSS 证书配置是否正确。
- 服务端是否提供完整证书链。
- 证书 SAN 是否与浏览器访问地址匹配。
- 客户端是否信任对应 CA。
- WebSocket Upgrade 代理配置是否正确。
需要注意,单纯在服务端安装根证书,并不能自动解决浏览器端的证书信任问题。
五、总结
海康视频接口返回 HTTP 200,但 H5Player 播放失败时,应区分 API 查询链路 和 WSS 视频传输链路。
建议按照以下顺序排查:
text
录像 API 是否成功
↓
是否返回有效 WSS URL
↓
6014 端口是否可访问
↓
TLS 证书是否可信
↓
WebSocket 握手是否成功
↓
Nginx 代理及后端取流服务是否正常
本次案例中,6014 端口可以访问,Nginx 正常响应,但浏览器显示证书不安全,因此将 TLS 证书信任异常列为优先排查方向。
最终是否由证书问题直接导致播放失败,仍需通过修复证书信任关系并重新测试 WSS 连接来确认。
