android - 为什么我的安全客户端连接可以在 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 的许多变体,但没有一个出现“应用程序验证失败”,而且我在网站/论坛上找不到任何可比的东西。
请帮忙。提前致谢
解决方案
推荐阅读
- javascript - 打字稿:类不从接口继承类型?
- r - 根据过滤的数据分配 geom_hline 值,并将其作为同一代码块的一部分?
- regex - 如何强制将子域重定向到“https://www.”?
- java - 如何从简单列表视图的按钮打开新活动
- autohotkey - 将 Autohotkey WinActivate 添加到 ControlSend
- macos - 如何获取 macOS 用于未知文件、文件夹、应用程序等的通用图标?
- javascript - Vue.js 计算属性:[Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘userId’”
- huggingface-transformers - 拥抱脸变压器 run_clm.py 提前停止
- cloud-foundry - Pivotal Cloud Foundry:部署应用程序时出错
- python - 任何人都可以解释在 if-else 和只有 if 条件的情况下列表理解的内部工作吗?