java - 如何为 tomcat webserver 连接启用 TLS1.2 我们使用的是 tomcat 7.0.82

标签 java ssl tomcat tomcat7 server.xml

我有一个客户端使用 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配置协议(protocol)几乎什么都不做:它只指定哪个 SSLContext使用,但从服务器的角度来看,这并没有限制任何东西。 SSLContext 的任何版本将默认 SSL 服务器协议(protocol)设置为支持的协议(protocol)的完整列表(参见 source code)。
因此您需要设置 sslEnabledProtocols="TLSv1.2" (参见 Tomcat documentation )将接受的协议(protocol)版本限制为仅 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 连接,即使是那些使用旧数据库的连接。

关于java - 如何为 tomcat webserver 连接启用 TLS1.2 我们使用的是 tomcat 7.0.82,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66524288/

相关文章:

德尔福:idHttp+SSL

java - 如何在 Servlet 处理程序中使用 utf-8 作为请求参数?

java - 实例控制类和多线程

java - 触摸时不显示 Google map 对话框/信息窗口

java - 如何在Java中导入两个同名的类

c# - Silverlight 客户端 HTTP 堆栈与浏览器 HTTP 堆栈

java - 尝试通过 SSL 连接时出错。无法找到到请求目标的有效证书路径

tomcat - 为什么tomcat类加载器打破双亲委派

eclipse - Web 服务部署错误

java - 获取 JDBC 类型的异常无方言映射