如何解决如何为tomcat webserver连接启用TLS1.2 我们使用的是tomcat 7.0.82
我有一个客户端使用 TLS1.2 的 tomcat webapp,但技术扫描发现服务器仍在使用 TLS1.0。我想启用 TLS1.2。我们使用的是 Java 7,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
解决方法
sslProtocol
配置协议几乎没有任何作用:它只指定要使用哪个 SSLContext
,但从服务器的角度来看,这没有任何限制。任何版本的 SSLContext
都会将默认 SSL 服务器协议设置为支持协议的完整列表(参见 source code)。
因此,您需要设置 sslEnabledProtocols="TLSv1.2"
(参见 Tomcat documentation)以将接受的协议版本限制为仅 TLS 1.2。然后您可以测试您的配置 using curl
。
但是,如果使用低于 1.2 的 TLS 版本是整个系统的安全约束(参见 this question),请在 $JRE_HOME/lib/security/java.security
中添加以下行:
jdk.tls.disabledAlgorithms=SSLv3,TLSv1,TLSv1.1
警告:这将影响 Java 中的所有 TLS 连接,即使是那些使用旧数据库的连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。