做的网站不能放视频软件,自己做网站要学什么软件下载,上海网络维护服务,广东新闻联播林红因工作需要#xff0c;mysql连接需要开启ssl认证#xff0c;本文主要讲述客户端如何配置ssl连接。 开发环境信息#xff1a;
SpringBoot#xff1a; 2.0.5.RELEASE
mysql-connector-java#xff1a; 8.0.18
mysql version#xff1a;8.0.18 一、检查服务端是否开启ssl认…因工作需要mysql连接需要开启ssl认证本文主要讲述客户端如何配置ssl连接。 开发环境信息
SpringBoot 2.0.5.RELEASE
mysql-connector-java 8.0.18
mysql version8.0.18 一、检查服务端是否开启ssl认证
show variables like %ssl%; 二、确认用户强制使用ssl认证
1.检查用户是否启动ssl认证
use mysql;
select ssl_type from user where userusername and host%;
psusername替换成具体的用户名。 2.强制用户使用ssl认证
ALTER USER username% REQUIRE SSL;
FLUSH PRIVILEGES; 三、生成客户端证书
1.找服务端提供三个原始文件 2.生成truststore文件
keytool -importcert -alias Cacert -file ca.pem -keystore truststoremysql -storepass passwordzzzz 3.生成keystore文件
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name mysqlclient -passout pass:passwordzzzz -out client-keystore.p12keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass passwordzzzz -destkeystore keystoremysql -deststoretype JKS -deststorepass passwordzzzz
以上两个文件生成的参数可以自己修改windows环境中没有openssl在linux环境中执行。红色部分的参数是后面配置要用到的。所有的密码保持一致 四、修改mysql的连接参数
1.正常的请求如下
spring.datasource.url jdbc:mysql://1.2.3.4:3306/db?serverTimezoneAsia/ShanghaiuseUnicodetruecharacterEncodingutf-8useSSLfalse
2.ssl双向认证的请求如下 ssl.cert.path/utxt/soft/zpy/rkzl/key
ssl.configtrueverifyServerCertificatetruerequireSSLtrueclientCertificateKeyStoreUrlfile:${ssl.cert.path}/keystoremysqlclientCertificateKeyStorePasswordpasswordzzzztrustCertificateKeyStoreUrlfile:${ssl.cert.path}/truststoremysqltrustCertificateKeyStorePasswordpasswordzzzz
spring.datasource.druid.master.urljdbc:mysql://192.11.11.11:3306/111?useUnicodetruecharacterEncodingUTF-8serverTimezoneGMT%2B8allowMultiQueriestrueuseSSL${ssl.config}
spring.datasource.druid.master.username11
spring.datasource.druid.master.password111 因为加上ssl认证后url太长了所以提取了两个变量。 ssl.cert.path表示生成的两个证书文件存放路径
ssl.config的value里根据证书生成的参数对应修改如果不需要ssl认证值设置为false即可。以上就完成了客户端的配置如常启动服务验证连接正常即可。参考资料
Connecting Securely Using SSL