我想用 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/