Mysql启用SSL以及JDBC连接Mysql配置

文章目录

  • 一、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

Mysql启用SSL以及JDBC连接Mysql配置_第1张图片

shell>show variables like '%ssl%';

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

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

在这里插入图片描述

shell>use mysql;

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

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

Mysql启用SSL以及JDBC连接Mysql配置_第2张图片

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

shell>FLUSH PRIVILEGES;

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

在这里插入图片描述

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

4.取消用户使用ssl连接

Mysql启用SSL以及JDBC连接Mysql配置_第3张图片

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%’;查看,

Mysql启用SSL以及JDBC连接Mysql配置_第4张图片

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

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

Mysql启用SSL以及JDBC连接Mysql配置_第5张图片

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

2.jdbc连接mysql配置

1.将密钥仓库文件拷贝到项目的目录下
2.数据源设置(编辑settings文件)
Mysql启用SSL以及JDBC连接Mysql配置_第6张图片

3.设置jvm环境变量(编辑ltts脚本)
Mysql启用SSL以及JDBC连接Mysql配置_第7张图片

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

三、可能出现的错误

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

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

Mysql启用SSL以及JDBC连接Mysql配置_第8张图片

你可能感兴趣的:(数据库)