java - 如何使用 spring boot 和嵌入式 tomcat 禁用 TLSv1.0?

标签 java spring spring-mvc tomcat

我想用 spring boot(版本 1.3.3)停用 TLSv1.0,但如果 application.yml 如下所示,它不起作用:

SSL: 协议(protocol):TLSv1.2 keystore :/E:/key/server.jks keystore 密码:serverpkcs12

如果只在IE中选择“USE TLS 1.0”我仍然可以访问网页。 See this pic--not work.

但是,如果不使用嵌入式 tomcat,并为位于 server.xml 中的连接器添加这些参数,它对我来说工作正常——网页被 IE 阻止。 See this pic--worked for me

sslProtocols="TLSv1.2"sslEnabledProtocols="TLSv1.2"

我也尝试了一些 VM 参数,例如 -Dhttps.protocols="TLSv1.2",它们都没有用。

那么我能为此做什么呢?

最佳答案

最透明和可读的方法是在您的应用程序配置文件中明确配置有效的 TLS 协议(protocol),当然是排除不需要的协议(protocol)。

例如在 YAML 中

server.ssl.enabled-protocols=TLSv1.1,TLSv1.2

然后您可以启动服务器并通过执行以下操作检查 TLSv1.0 是否正常工作

openssl s_client -connect localhost:443 -tls1

上面的连接应该被拒绝,而下面的两个连接将被接受并打印证书的详细信息

openssl s_client -connect localhost:443 -tls1_1
openssl s_client -connect localhost:443 -tls1_2

关于java - 如何使用 spring boot 和嵌入式 tomcat 禁用 TLSv1.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38302683/

相关文章:

java - Spring ehcache no such method错误

具有二维数组的 Java 可变参数

java - Finalize() 方法

javascript - 从 Spring 表达式中修改 rootObject

java - 如何在没有mvn jboss-as :deploy的情况下测试从eclipse到jboss as7的Web项目

java - 在 @RequestParam 中绑定(bind)列表包含方括号

java - 如何在不使用 Spring 引导和使用单独的 Apache tomcat 服务器的情况下在 Spring WS 中配置双向 SSL 连接?

java - java中运算符^代表什么?

java - 如何移动所有 Glassfish 端口?

java - Spring Web 服务客户端和服务器 - 未找到端点映射