微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Grpc.core TLS 握手与本地主机自签名证书

如何解决Grpc.core TLS 握手与本地主机自签名证书

我在本地机器上运行了一个 gRPC 服务,它期望通过 TLS 发出请求。

当我使用 Grpc.Net.Client 库时,以下工作:

var channelGrpcNetClient = GrpcChannel.ForAddress("https://localhost:5003");
var clientGrpcNetClient = new ProvisionClient(channelGrpcNetClient);
await clientGrpcNetClient.CreateAsync(createRequest);

然而,当我尝试在 Grpc.Core 中做类似的事情时,它不再起作用

var channelGrpcCore = new Channel("https://127:0:0:1",5003,new SslCredentials());
var clientGrpcCore= new ProvisionClient(channelGrpcCore );
await clientGrpcCore.CreateAsync(createRequest);

这是我得到的例外:

Grpc.Core.RpcException: 'Status(StatusCode="Unavailable",Detail="无法连接到所有地址",DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1622691838.697000000","description":"选择子频道失败","file":"......\src\core\ext\filters\client_channel\client_channel.cc","file_line":5420,"referenced_errors":[{ "created":"@1622691838.697000000","description":"无法连接到所有地址","file":"......\src\core\ext\filters\client_channel\lb_policy\pick_first\pick_first. cc","file_line":398,"grpc_status":14}]}")'

Grpc.Core 库是否不允许使用本地主机自签名证书的 TLS 连接?似乎 Grpc.Core 使用 BoringSSL,它与 Grpc.Net.Client 使用的库不同。我想知道是否有解决此问题的方法,允许在本地运行客户端和服务器,并且仅使用自签名证书。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。