提问人:c_sagan 提问时间:3/31/2023 最后编辑:c_sagan 更新时间:4/4/2023 访问量:120
如何在 Java 中的 Apache Arrow FlightClient 上启用 TLS?
How do I enable TLS on an Apache Arrow FlightClient in Java?
问:
Java Apache Arrow () 的文档包含几种与构建启用 TLS 的客户端相关的方法:v11.0.0
FlightClient.Builder
clientCertificate(InputStream clientCertificate, InputStream clientKey)
useTls()
overrideHostname(String hostname)
trustedCertificates(InputStream stream)
verifyServer(boolean verifyServer)
这些描述不够详细,我无法理解在与 .我对 TLS 的理解很容易存在一些差距,这将有助于我更轻松地使用本文档。FlightServer
我需要使用所有这些吗?其中一些是多余的吗?它们有什么关系?
答:
1赞
c_sagan
4/4/2023
#1
我看了一下实现此 API 的代码,以获得一些见解。
useTls
只需告诉底层客户端构建器开始为启用 TLS 的客户端组合 SSL 上下文。通过将方案附加到 location 属性,可以实现相同的效果。grpc+tls
其余选项用于添加到 SSL 上下文。上下文构建器由 提供。io.netty.handler.ssl.SslContextBuilder
clientCertificate(cert, key)
将提供的证书/密钥添加到 SSL 上下文的密钥管理器。trustedCertificates(cert)
将提供的证书添加到信任管理器(用于第三方连接验证)。verifyServer(bool)
如果提供了上述两个中的任何一个,则不能,因为它们是验证服务器所必需的。如果是 ,则只需使用 来设置信任管理器。false
false
InsecureTrustManagerFactory.INSTANCE
overrideHostname(hostname)
在通道生成器上调用底层。这与我想做的事情无关。overrideAuthority()
我需要使用所有这些(忽略)吗?这取决于客户端将连接到的服务器上如何配置 TLS。overrideHostname
它们中的任何一个都是多余的吗? 如果属性已附加了 TLS 方案,则为冗余。useTls()
location
评论