第三方库或JDK的openliberty配置中sslDefault的通知和最佳实践



我需要在server.xml中定义一个自定义SSL配置,并将其用作openliberty服务器中的默认配置。

在server.xml配置中定义sslDefault会产生什么影响。这是否会覆盖JVM默认值,并且所有第三方库都将透明地使用此sslDefault?或者我们需要使用SSLContext sslContext = JSSEHelper.getInstance().getSSLContext("defaultSSLConfig", Collections.emptyMap(), null)获取SSL配置(如中所示https://openliberty.io/docs/latest/access-nosql-databases.html)并将其注入这些库中。

有什么最佳实践可以分享吗?

如果配置transportSecurity-1.0功能,那么在server.xml中配置sslDefault将影响SSLContext.getDefault返回的内容,因此任何使用此功能的库都将获得配置。然而,使用SSLContext.getInstance方法之一的库不会,这是因为它会创建一个新的SSLContext实例,该实例将由调用init方法的库初始化。如果库调用init(null, null, null),那么它将被初始化为JVM认为未调用SSLContext.setDefault时的默认值。

不同的库的反应不同,因为我记得okhttp创建了自己的SSLContext并对其进行初始化,因此不会受到LibertysslDefault配置的影响,但其他库只使用默认值。

最新更新