首页 > 解决方案 > 为什么我的安全客户端连接可以在 android 上运行,但不能在 ios 上运行?

问题描述

我目前正在使用 grpc 和固定的自签名证书在颤振中建立安全的客户端连接。当我构建应用程序并将其部署到 android 时,它工作正常。我可以在多部手机之间建立安全连接并发送/接收数据。但是当我构建并部署到 ios 时,应用程序安装,我可以启动应用程序,但是当我尝试建立连接时,我收到以下错误:

捕获 gRPC 错误(代码:14,代码名称:UNAVAILABLE,消息:连接错误:HandshakeException:客户端握手错误(操作系统错误:CERTIFICATE_VERIFY_FAILED:应用程序验证失败(handshake.cc:354)),详细信息:null,rawResponse:null)

这是代码的一小段。

  _channel = grpc.ClientChannel(ipAddress,
                port: 8443,
                options: const grpc.ChannelOptions(
                    credentials: grpc.ChannelCredentials.secure(
                        certificates: certificate, authority: <my-authority>)

我已经看到了 CERTIFICATE_VERIFY_FAILED 的许多变体,但没有一个出现“应用程序验证失败”,而且我在网站/论坛上找不到任何可比的东西。

请帮忙。提前致谢

标签: androidiosfluttergrpctls1.2

解决方案


推荐阅读