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

使用gRPC通过Google凭证认证时出现SSL错误,求解决方案

问题:gRPC C++客户端认证握手失败,报WRONG_VERSION_NUMBER错误

我正在开发一个文件访问服务,需要实现认证功能——识别请求发起者身份并判断文件访问权限。用gRPC通信,尝试了gRPC原生的Google基于令牌的认证方式,C++客户端代码完全按照官方文档实现,但出现以下错误:

E0812 19:03:32.173663955 3576491 ssl_transport_security.cc:1509] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.

想咨询需要哪些操作解决这个问题?

可能的解决方向

  • 检查SSL/TLS版本兼容性:这个错误核心原因是客户端与服务端的SSL/TLS版本不匹配。确认服务端启用的版本(如TLS 1.2/1.3),客户端需配置对应版本支持,可通过调整gRPC的SSL上下文参数显式指定版本范围。
  • 核对服务端地址与端口:若客户端连接的是未启用SSL的gRPC端口(比如默认非TLS端口50051),但客户端配置了SSL认证逻辑,会直接触发版本错误。确认服务端是否开启TLS,客户端连接的是正确的SSL端口。
  • 验证证书配置(自签名场景):如果服务端使用自签名证书,客户端必须正确加载对应的根证书。证书路径错误或未配置证书,会导致握手时SSL版本协商失败。
  • 排查认证逻辑匹配性:Google令牌认证要求服务端已集成对应的OAuth2验证后端,若服务端未配置该逻辑,可能在握手阶段引发异常。确认服务端是否适配了Google身份验证,避免在普通SSL认证场景误用令牌认证逻辑。
  • 对齐gRPC版本:不同版本的gRPC对SSL依赖库的默认配置有差异,确保客户端与服务端使用的gRPC版本一致,避免版本差异导致的SSL协商问题。

内容的提问来源于stack exchange,提问作者Tinyden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:45:27