我需要在server. xml中定义一个自定义的SSL配置,并将其作为默认使用在我的openfree服务器中。
在server. xml config中定义sslDefault有什么影响?这会覆盖JVM默认值,所有第三方库都将透明地使用此sslDefault吗?或者我们需要使用SSLContext sslContext=JSSEHelper.getInstance().getSSLContext("defaultSSLConfig",Collection.emptyMap(),null)
(如https://openliberty.io/docs/latest/access-nosql-databases.html中所示)获取SSL配置并将其注入这些库中。
有什么最佳实践可以分享吗?
如果您配置transportSecurity-1.0
功能,那么在server. xml中配置sslDefault
将影响SSLContext.getDefault
返回的内容,因此任何使用此功能的库都将获得配置。然而,使用SSLContext.getInstance
方法之一的库不会,这是因为这会创建一个新的SSLContext
实例,该实例将由调用init
方法的库初始化。如果库调用init(null,null,null)
,那么它将使用JVM认为未调用SSLContext.setDefault
的默认值进行初始化。
不同的库反应不同,我记得okhttp
创建了自己的SSLContext并对其进行初始化,因此不会受到LibertysslDefault
配置的影响,但其他库只使用默认值。