如何配置Spring启动应用程序以通过MySQL使用SSL / TLS?

时间:2017-04-26 13:19:20

标签: java mysql spring ssl spring-boot

我在MySQL服务器上设置了SSL。

我为客户端(client-cert.pem,client-key.pem)和服务器(server-cert.pem和server-key.pem)生成了很少的CA(ca.pem,ca-key.pem)证书。 )。

在spring boot配置文件中,这里是application.yml文件中定义的MySQL链接 : jdbc:mysql:// host:3306 / bdd_name?useUnicode = true& characterEncoding = utf8& useSSL = true& requireSSL = true

我验证我的证书是使用openssl验证的,我也通过使用mysql客户端验证来建立连接。

如何将Spring Boot应用程序链接设置为我的证书(我有* .pem文件)来完成我的配置?

2 个答案:

答案 0 :(得分:4)

您需要在密钥库中添加" *。pem" 文件(证书和密钥),并在&中添加CA #34;信任"

此链接解释了如何创建自己的密钥库和信任库[link] http://roopindersingh.com/programming/converting-pem-certificates-and-private-keys-to-jks/

必须添加JVM参数后

-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

答案 1 :(得分:4)

检查我的答案:https://stackoverflow.com/a/51879119/173149

我不想污染java选项或系统属性,这些选项或系统属性在任何情况下在应用程序容器中都是无用的...

您可以通过以下方式为MySQL连接设置SSL证书:

  

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

记录在案: