
升级 mpv 后 HTTPS 自签名证书播放被拒--tls-verify 默认值改为 yes 怎么办【免费下载链接】mpv Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv升级 mpv 之后之前能正常播放的https://流突然连不上了日志里报 TLS 证书校验失败。原因是 mpv 的一个接口变更--tls-verify的默认值从否改成了yes见 DOCS/interface-changes/tls-verify-default.txt。如果流服务端的证书是自签名证书、CA 包过期或被代理替换新的默认行为就会在连接阶段把流拒掉。本文的目标是确认失败确实是证书校验引起的然后按文档给出的两条路径恢复播放按流覆盖为--tls-verifyno或改用--tls-ca-file提供正确的 CA 数据库文件。变更内容与适用条件变更本身只有一行change --tls-verify default to yes。选项手册 DOCS/man/options.rst 中该选项的定义是--tls-verifyyes|no— Verify peer certificates when using TLS (e.g. withhttps://...) (default: yes*).注意手册把默认值写作yes*并在同一条目末尾给出了唯一例外This is disabled by default, if mpv is built without libcurl and libavformat is older than 63.0.100.也就是说只有「构建时不带 libcurl、且 libavformat 版本低于 63.0.100」的构建默认仍为关闭校验其余构建带 libcurl 或 libavformat ≥ 63.0.100升级后默认都会校验对端证书。你的构建落在哪种情况直接决定了升级后行为是否变化。这个选项属于网络选项无论流由哪套网络栈处理都适用mpv 构建带 libcurl 时http://、https://、ftp://、ftps://由内部 libcurl 后端接管手册明确说明该后端遵循上面列出的网络选项含--tls-*构建不带 libcurl 时则回落到 FFmpeg 的网络实现DOCS/man/options.rst。先确认失败是证书校验问题libcurl 网络后端在连接尚未收到任何响应就失败时会把 curl 的错误码打印到日志并在错误码为CURLE_PEER_FAILED_VERIFICATION或CURLE_SSL_CACERT_BADFILE时追加一段固定诊断见 stream/stream_curl.cTLS certificate verification failed. This usually means an outdated CA bundle, a self-signed certificate, or a MITM proxy on your network. To bypass at your own risk, pass --tls-verifyno.日志出现上面这段文字说明失败点就在证书校验环节。手册同时列出了同一选项对应的典型原因CA 包过期、企业代理、以及使用自签名证书的开发服务器DOCS/man/options.rst。如果手头现象不够明确可以用 libcurl 后端的调试开关查看请求、响应头和 TLS/连接诊断信息DOCS/man/options.rstmpv --msg-levelcurltrace stream-urlstream-url替换成你要播放的https://流地址。恢复播放两条路径路径一按流覆盖跳过校验最直接文档明确建议的用法是把它当作按流覆盖per-stream override只在确认有正当理由时使用mpv --tls-verifyno stream-url手册对关闭校验的警告要留意Disabling this option allows man-in-the-middle attacks to silently substitute the content of an HTTPS stream and is only recommended as a per-stream override when verification fails for a known-good reason (e.g. an outdated CA bundle, a corporate proxy, a development server with a self-signed certificate).即允许关闭校验的已知正当理由就是上面列的三类——CA 包过期、企业代理、自签名证书的开发服务器。如果不确定这个 HTTPS 流是否可信先不要关校验走路径二。路径二提供正确的 CA 数据库文件保留校验如果失败原因是 CA 包过期或服务端证书链不完整更稳妥的做法是给校验提供正确的 CA 数据库文件mpv --tls-ca-fileca-file stream-urlca-file替换成你的 CA 证书数据库文件路径。该选项的定义见 DOCS/man/options.rst文档同时标注了一个限制在较旧的 FFmpeg 版本上此选项会静默失效Silently fails with older FFmpeg versions即命令不报错但校验结果不会改变遇到这种情况需要升级 FFmpeg 而不是反复调参数。验证结果两条路径的验证方式相同重新运行对应命令流能完成连接并开始播放说明问题已解决。若仍失败追加--msg-levelcurltrace复查 TLS/连接诊断输出确认是否还有其他原因例如企业代理改写证书、网络超时等。限制说明--tls-verifyno会让中间人可以无声替换 HTTPS 流内容文档只推荐在已知正当理由下按流使用不要作为全局常设配置对待。--tls-ca-file在旧版 FFmpeg 上静默无效这一点决定了它是「有条件」的修复路径。如果你的构建不带 libcurl 且 libavformat 低于 63.0.100默认值本来就还是关闭校验本文的变更不适用于该构建升级后行为应无变化。【免费下载链接】mpv Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考