gpt4 book ai didi

android - 在 gRPC 上处理 TLS

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:09 38 4
gpt4 key购买 nike

我正在连接到一个支持 TLS 和 SSL 证书的服务器。我在 Android 应用程序客户端上收到 SSL 握手错误。我还使用 useTransportSecurity() 来处理 TLS 协商类型。是否有任何解决方法可以在没有证书固定的情况下避免此错误?

遇到错误:

Caused by: java.lang.RuntimeException: protocol negotiation failed

at io.grpc.okhttp.OkHttpProtocolNegotiator.negotiate(OkHttpProtocolNegotiator.java:96)

at io.grpc.okhttp.OkHttpProtocolNegotiator$AndroidNegotiator.negotiate(OkHttpProtocolNegotiator.java:147)

at io.grpc.okhttp.OkHttpTlsUpgrader.upgrade(OkHttpTlsUpgrader.java:63)

at io.grpc.okhttp.OkHttpClientTransport$2.run(OkHttpClientTransport.java:474)

at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)

at java.lang.Thread.run(Thread.java:764)

这就是我生成 channel 的方式:

ManagedChannel mChannel = OkHttpChannelBuilder.forAddress(host, port)
.useTransportSecurity()
.build();



感谢您的宝贵时间和帮助。

最佳答案

ALPN 在 TLS 握手期间失败,这会阻止 gRPC 协商 HTTP/2。您没有连接到 gRPC/HTTP/2 服务器,或者您的客户端的 TLS 库太旧。

请查看 SECURITY.md文档。也就是说,您可能希望在应用启动时将 Play 服务动态安全提供程序“安装”到运行时中。

关于android - 在 gRPC 上处理 TLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210169/

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