我有一个tomcat webapp,其中客户端使用的是TLS1.2,但技术扫描发现服务器仍在使用TLS1.0。我想启用TLS1.2。我们使用的是Java7,server.xml的连接器片段如下所示:
<Connector SSLEnabled="true" acceptCount="100" clientAuth="true" disableUploadTimeout="true" enableLookups="true" connectionTimeout="300000"
socket.soLingerOn="false" maxKeepAliveRequests="1000" maxThreads="50" port="2024" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"
keystoreFile="/cert/fic_rest.jks" keystorePass="********"
truststoreFile="/cert/fic_rest.jks" server="UnIdentified" compression="on" compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"
/>
<!-- Define an AJP 1.3 Connector on port 2023 -->
<Connector port="2023" protocol="AJP/1.3" redirectPort="2022" />
<Connector acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="true" connectionTimeout="300000"
socket.soLingerOn="false" maxKeepAliveRequests="1000" maxThreads="50" port="2020" protocol="org.apache.coyote.http11.Http11NioProtocol" server="UnIdentified"
/>
仅仅将"sslProtocol="TLS"
更改为"sslProtocol="TLSv1.2"
就足够了吗?我们使用的是tomcat 7.0.82
发布于 2021-03-08 16:07:07
sslProtocol
配置协议几乎什么也不做:它只指定要使用的SSLContext
,但从服务器的角度来看,这不会限制任何内容。任何版本的SSLContext
都会将默认的server协议设置为所支持协议的整个列表(参见,source code)。
因此,您需要设置sslEnabledProtocols="TLSv1.2"
(参见Tomcat documentation)将接受的协议版本限制为仅TLS1.2。然后,您可以测试配置using curl
。
但是,如果使用低于1.2的TLS版本是整个系统的安全限制(参见this question),方法是将以下行添加到$JRE_HOME/lib/security/java.security
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1
警告:这将影响Java中的所有TLS连接,即使是那些使用旧数据库的TLS连接。
https://stackoverflow.com/questions/66524288
复制相似问题