将 BoringSSL 与 Hazelcast IMDG 一起使用的正确配置设置是什么?

What is the correct config settings to use BoringSSL with Hazelcast IMDG?

我是 运行 Hazelcast 作为缓存服务,看来我可以用 BoringSSL 提高性能而且这更简单,因为我不需要安装额外的软件

正在阅读他们的文档:https://docs.hazelcast.com/imdg/4.1.2/security/integrating-openssl.html

我看到我只需要两个罐子,但我没有看到任何配置设置。我是否仅将 Java SSL 设置与 BasicSSLContextFactory 一起使用?

我知道我可以使用此处提到的 com.hazelcast.nio.ssl.BasicSSLContextFactory https://docs.hazelcast.com/imdg/4.1.2/security/tls-ssl.html#tlsssl-for-hazelcast-members 来实现 Java SSL

他们还提供 com.hazelcast.nio.ssl.OpenSSLEngineFactory 用于 OpenSSL 集成 (https://docs.hazelcast.com/imdg/4.1.2/security/integrating-openssl.html#using-openssl)

BoringSSL 是使用 OpenSSL 的库。所以 this link 是一个很好的来源。然而,如果你没有绑定到旧的 Java 版本,那么现在 Java TLS 比 OpenSSL 更快,所以不需要 BoringSSL。

由于 SSL 是 Hazelcast Enterprise 的一项功能,如果您需要更详细的帮助,请随时提出 Hazelcast Zendesk Ticket

从 Hazelcast 4.0 版开始,决定使用哪个 TLS 引擎的逻辑如下:

  • Java 版本 <11netty-tcnative 包(包装 OpenSSL、BoringSSL、.. .) 在类路径上:使用 OpenSSLEngineFactory;
  • 所有其他情况下:使用BasicSSLContextFactory.

当然,您不需要使用默认值,但您可以使用您选择的工厂指定 factory-class-name 配置属性。

您可以在 OpenSSLEngineFactory 中使用与 BasicSSLContextFactory 中相同的属性(例如 keyStore*trustStore*)。然而,配置 OpenSSLEngineFactory 的本机方法是使用 keyFile 和文档 section about OpenSSL.

中提到的其他属性

为什么 Java 11 检查

如上所述,OpenSSLEngineFactory 默认情况下不用于 Java 11 和更新版本。该决定基于 Hazelcast 性能测试,该测试显示了与 Java 8 一起使用时 OpenSSL 的性能优势,但与 Java 11(或更新版本)一起使用时则没有。

以下是这些测试(2019 年执行)的吞吐量图表。

TLSv1.2

TLSv1.3