SpringBoot设置mysql的ssl连接
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SpringBoot设置mysql的ssl连接,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1830字,纯文字阅读大概需要3分钟。
内容图文
![SpringBoot设置mysql的ssl连接](/upload/InfoBanner/zyjiaocheng/1121/0a9f31075fca49b5b870d92c8f13b83b.jpg)
因工作需要,mysql连接需要开启ssl认证,本文主要讲述客户端如何配置ssl连接。
开发环境信息:
SpringBoot: 2.0.5.RELEASE mysql-connector-java: 8.0.18 mysql version:8.0.18
一、检查服务端是否开启ssl认证
show variables like‘%ssl%‘;
二、确认用户强制使用ssl认证
1.检查用户是否启动ssl认证
use mysql; select ssl_type fromuserwhereuser=‘username‘and host=‘%‘;
ps:username替换成具体的用户名。
2.强制用户使用ssl认证
ALTER USER ‘ username ‘@‘%‘ REQUIRE SSL; FLUSH PRIVILEGES;
三、生成客户端证书
1.找服务端提供三个原始文件
2.生成truststore文件
keytool -importcert -alias Cacert -file ca.pem -keystore truststoremysql -storepass password123
3.生成keystore文件
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name "mysqlclient" -passout pass:mypassword -out client-keystore.p12 keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass mypassword -destkeystore keystoremysql -deststoretype JKS -deststorepass password456
以上两个文件生成的参数可以自己修改,windows环境中没有openssl,在linux环境中执行。红色部分的参数是后面配置要用到的。
四、修改mysql的连接参数
1.正常的请求如下
spring.datasource.url = jdbc:mysql://1.2.3.4:3306/db?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false
2.ssl双向认证的请求如下
ssl.cert.path = /home/app/cert ssl.config = true&verifyServerCertificate=true&requireSSL=true&clientCertificateKeyStoreUrl=file:${ssl.cert.path}/keystoremysql&clientCertificateKeyStorePassword=password456&trustCertificateKeyStoreUrl=file:${ssl.cert.path}/truststoremysql&trustCertificateKeyStorePassword=password123 spring.datasource.url = jdbc:mysql://1.2.3.4:3306/db?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=${ssl.config}
因为加上ssl认证后url太长了,所以提取了两个变量。
ssl.cert.path表示生成的两个证书文件存放路径
ssl.config的value里根据证书生成的参数对应修改,如果不需要ssl认证值设置为false即可。
以上就完成了客户端的配置,如常启动服务,验证连接正常即可。
参考资料:
Connecting Securely Using SSL
原文:https://www.cnblogs.com/ccgood/p/13034426.html
内容总结
以上是互联网集市为您收集整理的SpringBoot设置mysql的ssl连接全部内容,希望文章能够帮你解决SpringBoot设置mysql的ssl连接所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。