如何通过spring更新MySQL连接以处理TLSv1.2?

时间:2019-05-16 20:15:26

标签: mysql spring spring-mvc spring-data

我有一个以前使用Spring Boot,Spring JPA,Spring Data的Spring MVC项目。我的DBA将MySQL服务器上的安全性更新为仅接受TLSv1.1和TLSv1.2,现在我的网站Spring MVC无法连接到它。该网站确实在将TLS 1.2放入其中的那一刻就死了,所以这是我的安全问题。

请注意,我的开发箱是完全隔离的。我无法复制和粘贴多行代码,而必须手动输入。

首先,尝试通过JDBC字符串添加SSL:

jdbc:mysql://host:3306/bdd_name?useUnicode=true&characterEncoding=utf8&useSSL=true&requireSSL=true

第二,尝试添加更多信息(在此示例中):

jdbc:mysql://example.com:3306/MYDB?verifyServerCertificate=true&useSSL=true&requireSSL=true&clientCertificateKeyStoreUrl=file:cert/keystore.jks&clientCertificateKeyStorePassword=123456&trustCertificateKeyStoreUrl=file:cert/truststore.jks&trustCertificateKeyStorePassword=123456

第三,尝试添加Java安全性:

-Djavax.net.ssl.keyStore=/path/to/keystore/keystore.jks
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=/path/to/keystore/truststore.jks
-Djavax.net.ssl.trustStorePassword=password

第四,尝试通过Spring属性添加

server.ssl.enabled=true
server.ssl.enabled-protocols=TLSv1.2

经过多次尝试解决此问题后,我将安装位置设置为2和4。 jdbc connection属性可解析并找到我的密钥文件并对其进行解锁,因此URL更改(2)确实起作用。

所以,毕竟,我仍然得到:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Caused by: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)

0 个答案:

没有答案