Java Springboot设置MySQL的ssl连接访问

一、需求背景

需要修改应用程序通过SSL连接mysql数据库。

环境配置

数据库:MySQL 8.0.21 (enabled SSL)

Java版本:openjdk version "1.8.0_332"

Springboot版本:v2.5.3

二、生成证书

下面是MySQL数据库服务端提供三个原始文件

Java Springboot设置MySQL的ssl连接访问_第1张图片

 我们需要通过jdk自带的keytool将文件转换成java可以使用的文件

生成truststore文件

keytool -importcert -alias Cacert -file ca.pem -keystore mysql-truststore -storepass 123456Ab

其中红色是密码,可以自己定义。输入yes后完成

生成keystore文件

keytool -importkeystore -srckeystore mysql-truststore -destkeystore mysql-keystore -deststoretype pkcs12

#为mysql-keystore设置密码
Enter destination keystore password: 123456Ab
Re-enter new password: 123456Ab
#输入上面生成mysql-truststore设置的密码
Enter source keystore password: 123456Ab

三、证书使用

在工程resources下创建文件夹,将文件直接copy进去。

Java Springboot设置MySQL的ssl连接访问_第2张图片

 

application.yml配置如下

classpath:mysql_ssl = resources/mysql_ssl

mysql-ssl: true&verifyServerCertificate=true&requireSSL=true&clientCertificateKeyStoreUrl=classpath:mysql_ssl/mysql-keystore&clientCertificateKeyStorePassword=123456Ab&trustCertificateKeyStoreUrl=classpath:mysql_ssl/mysql-truststore&trustCertificateKeyStorePassword=123456Ab

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.1.2:3306/database?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=${mysql-ssl}
    username: root
    password: 123456Ab

启动程序!成功!

你可能感兴趣的:(Java,Spring,Boot,java,spring,boot,mysql)