spring +mysql 8.0 ssl配置

spring +mysql 8.0 ssl配置,第1张

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}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/740628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存