仅在apache-tomcat-9和Java 8中启用TLS 1.2

时间:2018-10-17 14:59:40

标签: java tomcat ssl java-8 tomcat9

我已经在Apache Tomcat 9.x.x中部署了Web应用程序,并且对于Java有两种选择

  • Openjdk版本1.8.x
  • Oracle Java 1.8.x

我只需要允许使用TLS 1.2。

请帮助指导我实现这一目标。

我试图遵循以下链接(不确定它们是否过时)。

但是https://www.ssllabs.com/ssltest/analyze.html?d= <<我的公共IP >>说:TLS 1.1和TLS 1.0仍处于启用状态。

how to enable TLS v1.2 in Apache tomcat 8 , I am using Java 8

How do I disable SSLv3 in tomcat?

Does Tomcat support TLS v1.2? oraclesoon 提到的两个步骤似乎无效)

How do I disable SSLv3 support in Apache Tomcat?

还有HOW TO -- Disable weak ciphers in Tomcat 7 & 8 sslProtocol 在Java 8中不再使用

3 个答案:

答案 0 :(得分:0)

您必须在$ CATALINA_BASE / conf / server.xml文件中配置连接器。 APR配置的示例是:

<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
           protocol="org.apache.coyote.http11.Http11AprProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           SSLCertificateFile="/usr/local/ssl/server.crt"
           SSLCertificateKeyFile="/usr/local/ssl/server.pem"
           SSLVerifyClient="optional" SSLProtocol="TLSv1.2"/>

请参阅此https://github.com/qoomon/docker-host并尝试一下。

答案 1 :(得分:0)

我使用Tomcat 9.0.14和JSSE。它工作正常。 (使用TLSV1.1和TLSV1.2)

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig protocols="TLSv1.1,TLSv1.2">     
    <Certificate certificateKeystoreFile="conf/keystore.jks" 
                     type="RSA" />
    </SSLHostConfig>
</Connector>

请参阅:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support

答案 2 :(得分:0)

如果您需要逐个请求检查以确保没有配置错误的服务器,则可以添加 ContainerRequestFilter ,然后在 filter(RequestContext requestContext)< / em>方法插入一个检查,以验证TLS连接是否符合您的要求。

if("TLSv1.2".equals(requestContext.getProperty("org.apache.tomcat.util.net.secure_protocol_version"))
{
   throw new IllegalStateException("Invalid TLS version");
}

此示例来自Tomcat 8,但我怀疑其他容器可能有可用的选项。