- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个例子中https://github.com/grpc/grpc-java/blob/master/interop-testing/src/test/java/io/grpc/testing/integration/TlsTest.java您会看到 TLS 客户端连接具有各种 TLS 参数,例如
.negotiationType(NegotiationType.TLS)
.sslContext(sslContext)
但到目前为止,我的应用程序使用了 https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/ManagedChannelBuilder.java默认情况下似乎支持 TLS。它采用的唯一参数是可以关闭 TLS 的“usePlaintext”。
注意:我已经按照https://grpc.io/docs/guides/auth.html的推荐在机器上安装了OpenSSL
此页面确实声明:
If the issuing certificate authority is not known to the client then a properly configured SslContext or SSLSocketFactory should be provided to the NettyChannelBuilder or OkHttpChannelBuilder, respectively.
所以也许您只能在客户端知道发出 ca 时使用 ManagedChannelBuilder
...但我不确定这意味着什么。也许这意味着 cacert 在 jvm 的 keystore 中?
为什么我不必在 Managed
channel 构建器上指定 TLS 参数?
最佳答案
Eric Anderson提到我们可以使用 TlsChannelCredentials
和 TlsServerCredentials
自 grpc-java v1.37.0
以来,我们如何为 gRPC 做到这一点
客户:
private ServiceGrpc.ServiceBlockingStub client() {
ChannelCredentials credentials = TlsChannelCredentials.newBuilder()
//You can use your own certificate here .trustManager(new File("cert.pem"))
.trustManager(InsecureTrustManagerFactory.INSTANCE.getTrustManagers())
.build();
ManagedChannel channel = Grpc.newChannelBuilderForAddress("localhost", 443, credentials)
.build();
return ServiceGrpc.newBlockingStub(channel);
}
希望对大家有帮助。
关于java - 为什么 ManagedChannelBuilder 没有用于与服务器建立 TLS 连接的 TLS 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48353718/
当我们创建 managedChannelBuilder 并使用它来调用 grpc-java 服务调用时,我们可以使用它为多少个客户端提供服务?在单独的服务调用后,此 channel 不会关闭吗? 假设
在这个例子中https://github.com/grpc/grpc-java/blob/master/interop-testing/src/test/java/io/grpc/testing/in
我是一名优秀的程序员,十分优秀!