我在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文件)来完成我的配置?
答案 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 +
记录在案: