gpt4 book ai didi

ssl - Flutter 上 gRPC 的自签名证书

转载 作者:行者123 更新时间:2023-12-03 02:52:44 28 4
gpt4 key购买 nike

我有一个使用 gRPC 与服务器通信的 Flutter 应用程序。服务器正在为 TLS 使用自签名证书。我已将证书添加到我的 Flutter 应用程序中,这适用于 Android。但是在 iOS 上我得到 CERTIFICATE_VERIFY_FAILED 错误。 iOS 只是不允许自签名证书吗?

我正在按如下方式设置我的 gRPC 客户端:

    var cert = await rootBundle.load('assets/cert.crt');
var creds = ChannelCredentials.secure(
certificates: cert.buffer.asUint8List().toList()
);
var channel = ClientChannel(
host,
port: port,
options: new ChannelOptions(credentials: creds));
return GrpcClient(channel);

最佳答案

在 iOS 上似乎没有明显的解决方案来添加受信任的自签名根 CA。由于生产环境可能会有一个公开信任的 CA,因此您可以通过禁用 TLS 验证来解决此问题,仅用于开发。

这是我的 full example repo 的相关片段:

Future<ClientChannel> makeChannel() async {
final caCert = await rootBundle.loadString('assets/pki/ca/ca.crt');

return ClientChannel(
'localhost',
port: 13100,
options: ChannelOptions(
credentials: ChannelCredentials.secure(
certificates: utf8.encode(caCert),

// --- WORKAROUND FOR SELF-SIGNED DEVELOPMENT CA ---
onBadCertificate: (certificate, host) => host == 'localhost:13100',
),
),
);
}

在这种情况下,我的服务器正在监听 localhost:13100 .

关于ssl - Flutter 上 gRPC 的自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59761842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com