文章目录

  • 一、Mysql启用SSL配置
  • 1.检查mysql是否支持ssl
  • 2.设置用户是否使用ssl连接
  • 1.查看用户是否使用SSL连接
  • 2.强制某用户使用SSL连接
  • 3.测试不使用ssl能否连接上
  • 4.取消用户使用ssl连接
  • 二、JDBC连接Mysql配置
  • 1.使用jdk自带的keytool工具导入mysql客户端证书到密钥仓库,并生成秘钥仓库文件;
  • 2.jdbc连接mysql配置
  • 三、可能出现的错误
  • 1.jdk版本不支持,无法生成密钥对


一、Mysql启用SSL配置

1.检查mysql是否支持ssl

在linux端用root账号进入mysql命令行界面,查看当前版本mysql数据库是否支持ssl,如果出现以下结果表示支持,如果没有考虑更换版本,或者编译一个带有SSL版本的mysql

SSL mysql 连接 mysql开启ssl连接_mysql

shell>show variables like '%ssl%';

2.设置用户是否使用ssl连接

1.查看用户是否使用SSL连接

SSL mysql 连接 mysql开启ssl连接_mysql_02

shell>use mysql;

shell>select ssl_type from user where user='cbmain' and host='%';

2.强制某用户使用SSL连接

SSL mysql 连接 mysql开启ssl连接_sql_03

shell>ALTER USER 'cbmain'@'%' REQUIRE SSL;

shell>FLUSH PRIVILEGES;

3.测试不使用ssl能否连接上

SSL mysql 连接 mysql开启ssl连接_SSL mysql 连接_04

shell>./mysql -ucbmian -p -h10.22.xx.xx --ssl-mode=DISABLED;

4.取消用户使用ssl连接

SSL mysql 连接 mysql开启ssl连接_mysql_05

shell>update user set ssl_type='' where user='cbmain' and host='%';

shell>FLUSH PRIVILEGES;

二、JDBC连接Mysql配置

1.使用jdk自带的keytool工具导入mysql客户端证书到密钥仓库,并生成秘钥仓库文件;

1.找到mysql证书生成的位置,可用show variables like ‘%ssl%’;查看,

SSL mysql 连接 mysql开启ssl连接_mysql_06

2.确认是否安装了jdk,并配置了环境变量,如果没有配置环境变量,只能到jdk安装的目录下使用keytoll工具

3.执行shell命令将ca.pem文件导入到密钥仓库,并生成密钥仓库文件

SSL mysql 连接 mysql开启ssl连接_sql_07

shell>keytool -import -alias mysqlServerCACert -file ca.pem -keystore truststore.jks

2.jdbc连接mysql配置

1.将密钥仓库文件拷贝到项目的目录下

2.数据源设置(编辑settings文件)

SSL mysql 连接 mysql开启ssl连接_数据库_08

3.设置jvm环境变量(编辑ltts脚本)

SSL mysql 连接 mysql开启ssl连接_mysql_09

shell>-Djavax.net.ssl.trustStore=密钥仓库文件路径 -Djavax.net.ssl.trustStorePassword=密钥仓库密码

三、可能出现的错误

1.jdk版本不支持,无法生成密钥对

部分jdk7版本以及早期版本是只支持 1024 位的 DH Parma的,尝试了些网上的解决方案依旧没有作用,最终升级到jdk1.8解决了这个问题

SSL mysql 连接 mysql开启ssl连接_mysql_10