我需要在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
配置的影响,但其他库只使用默认值。