文章目录
- 一、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
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连接
shell>ALTER USER 'cbmain'@'%' REQUIRE SSL;
shell>FLUSH PRIVILEGES;
3.测试不使用ssl能否连接上
shell>./mysql -ucbmian -p -h10.22.xx.xx --ssl-mode=DISABLED;
4.取消用户使用ssl连接
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%’;查看,
2.确认是否安装了jdk,并配置了环境变量,如果没有配置环境变量,只能到jdk安装的目录下使用keytoll工具
3.执行shell命令将ca.pem文件导入到密钥仓库,并生成密钥仓库文件
shell>keytool -import -alias mysqlServerCACert -file ca.pem -keystore truststore.jks
2.jdbc连接mysql配置
1.将密钥仓库文件拷贝到项目的目录下
2.数据源设置(编辑settings文件)
3.设置jvm环境变量(编辑ltts脚本)
shell>-Djavax.net.ssl.trustStore=密钥仓库文件路径 -Djavax.net.ssl.trustStorePassword=密钥仓库密码
三、可能出现的错误
1.jdk版本不支持,无法生成密钥对
部分jdk7版本以及早期版本是只支持 1024 位的 DH Parma的,尝试了些网上的解决方案依旧没有作用,最终升级到jdk1.8解决了这个问题