Windows 10 19044更新后gRPC构建失败,求解决方案
gRPC构建失败(Windows 10 19044 + VS2022):SSL连接错误导致哈希不匹配解决办法
问题核心
Windows 10 Pro 10.0.19044更新后,Visual Studio 2022环境下构建gRPC时,CMake下载opencensus-proto-0.3.0.tar.gz出现SSL连接错误,实际下载的是空文件(SHA256为e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,对应空文件哈希),与预期哈希不匹配导致构建失败。该问题也出现在Github公共Windows Runner环境中。
原因分析
- Windows 10的最新更新可能修改了系统SSL根证书库或网络安全配置,导致CMake内置的curl组件无法验证Google Cloud Storage的SSL证书,进而连接失败,下载空文件。
- 手动下载正常说明网络链路本身通畅,问题出在构建工具链的SSL验证环节,而非网络访问限制。
- Github Windows Runner环境受相同Windows更新影响,排除本地环境特例。
解决办法
1. 临时绕过SSL验证(测试用)
在CMake配置命令中添加参数关闭证书验证:
cmake .. -DCMAKE_TLS_VERIFY=OFF
注意:此方法仅用于快速验证问题,生产环境不推荐,会降低安全性。
2. 手动放置预下载文件
- 手动下载
opencensus-proto-0.3.0.tar.gz,验证文件SHA256为b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0。 - 将文件复制到CMake报错中指定的路径:
C:/.conan/eb2387/1/build_subfolder/http_archives/opencensus-proto-0.3.0/src.tar.gz - 重新运行构建命令,CMake会跳过下载直接使用已存在的文件。
3. 修复系统SSL根证书
- 卸载最近的Windows更新:打开「设置」→「更新和安全」→「Windows更新」→「查看更新历史记录」→「卸载更新」,移除导致问题的Windows 10累积更新。
- 手动更新根证书:以管理员身份运行命令提示符,执行:
生成certutil -generateSSTFromWU roots.sstroots.sst文件后,双击打开该文件,依次导入所有证书到「受信任的根证书颁发机构」存储。
4. 禁用opencensus-proto依赖(如果不需要该功能)
如果项目不依赖opencensus监控功能,可在CMake配置时直接禁用该组件,跳过下载步骤:
cmake .. -DGRPC_OPENCENSUS_PROTO=OFF
内容的提问来源于stack exchange,提问作者Zoltan Bordas
相关产品推荐
相关产品推荐

