Tomcat设置sslEnabledProtocols为TLSv1.2失败警告:能否忽略及解决方案
警告 [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin 匹配 [Server/Service/Connector/SSLHostConfig] 时,无法将属性 [sslEnabledProtocols] 设置为 [TLSv1.2]
能否忽略?
这个警告不建议忽略,它说明Tomcat无法识别你配置的SSL协议参数,可能导致SSL连接使用默认协议(可能包含不安全的旧版本协议),存在安全风险,同时也明确你的配置存在错误,需要修正。
解决方案
问题核心是**sslEnabledProtocols属性配置位置错误**:Tomcat 8.5及以后版本中,该属性不能直接放在SSLHostConfig节点下,需根据你使用的SSL实现调整配置位置:
正确配置示例
场景1:使用OpenSSL作为SSL实现
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <OpenSSLConf> <OpenSSLConfCmd name="Protocol" value="TLSv1.2"/> </OpenSSLConf> <!-- 填写你的证书、密钥库相关配置 --> </SSLHostConfig> </Connector>
场景2:使用JSSE作为SSL实现(Java默认)
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" sslEnabledProtocols="TLSv1.2" keystoreFile="/你的密钥库路径/keystore.jks" keystorePass="你的密钥库密码"> </Connector>
补充说明
你之前完成的X.509证书转PKCS12再转JKS的步骤是正确的,只需确保配置文件中密钥库的路径和密码填写准确即可。修改配置后重启Tomcat,该警告会消失,同时SSL连接会强制使用TLSv1.2协议。
内容的提问来源于stack exchange,提问作者sayali satpute
相关产品推荐
相关产品推荐

