我已经在Apache Tomcat 9.x.x中部署了我的Web应用程序,我有两个Java选项
我只需要允许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中不再使用
您必须在$ 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"/>
请参考这个configuration guide并尝试一下。
我使用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
如果您需要按请求检查请求以确保某人没有错误配置您的服务器,您可以添加ContainerRequestFilter然后在过滤器内(RequestContext requestContext)方法插入一个检查,以验证TLS连接是否符合您的要求。
if("TLSv1.2".equals(requestContext.getProperty("org.apache.tomcat.util.net.secure_protocol_version"))
{
throw new IllegalStateException("Invalid TLS version");
}
此示例来自Tomcat 8,但我怀疑其他容器可能有一个选项。