【发布时间】:2018-09-06 18:28:06
【问题描述】:
我正在连接到具有 SSL 证书的 TLS 支持的服务器。我在 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)
这就是我生成频道的方式:
ManagedChannel mChannel = OkHttpChannelBuilder.forAddress(host, port)
.useTransportSecurity()
.build();
感谢您的时间和帮助。
【问题讨论】:
标签: android ssl tls1.2 grpc grpc-java