mysql 服务端配置ssl
mysql默认证书存储在data目录如下所示
mysql配置文件设置ssl服务端证书路径:
mysql 客户端工具配置 (mysql workbench)
客户端配置如下:
spring boot 客户端代码配置
1 客户端需要如下证书文件:ca证书、客户端证书、客户端私钥文件
2 证书文件转换
需要将如上所示3个文件转换为java需要的秘钥库和信任库文件。
生成信任库文件:
keytool -importcert -alias Cacert -file ca.pem -keystore truststoremysql -storepass 123456
生成中间文件p12:
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name “mysqlclient” -passout pass:12345678 -out client-keystore.p12
根据p12文件生成秘钥库文件:
keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass 12345678 -destkeystore keystoremysql -deststoretype JKS -deststorepass 12345678
备注:如果p12文件密码和秘钥库文件密码不一致。java代码会报错,不能获取秘钥。
3 spring boot 配置文件
ssl:
cert:
path: /home/wangjs1/software/mysql-cert
config: true&verifyServerCertificate=true&requireSSL=true&clientCertificateKeyStoreUrl=file:${ssl.cert.path}/keystoremysql&clientCertificateKeyStorePassword=mypassword&trustCertificateKeyStoreUrl=file:${ssl.cert.path}/truststoremysql&trustCertificateKeyStorePassword=wjs123456
spring:
#数据库配置
datasource:
username: root
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://117.11.111.111:3306/xx-platform?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=${ssl.config}