首页 > 数据库 >Mysql开启ssl加密协议及Java客户端配置操作指南

Mysql开启ssl加密协议及Java客户端配置操作指南

时间:2022-12-09 14:02:06浏览次数:44  
标签:Java 证书 ca 配置 ssl Mysql pem


Mysql开启ssl加密协议及Java客户端配置操作指南

  • ​​Mysql配置​​
  • ​​验证Mysql开启SSL​​
  • ​​Java客户端操作​​
  • ​​生成证书密码​​
  • ​​配置数据库连接​​
  • ​​工具配置​​

Mysql配置

Mysql需要配置对应的ssl账号密码,同时对该账号开启ssl验证,具体操作由DBA完成,这里我就不再赘述,作为Java客户端只需要拿到DBA配置的账号对应的ca.pem证书信息即可开启后面的操作。

验证Mysql开启SSL

验证命令

show global variables like '%ssl%';

验证结果如图

Mysql开启ssl加密协议及Java客户端配置操作指南_ssl


Mysql开启ssl加密协议及Java客户端配置操作指南_SSL_02


开启ssl协议之后可以看到对应Mysql服务器的证书路径,拿到证书文件后放在windows本地目录等待下一步操作

Mysql开启ssl加密协议及Java客户端配置操作指南_mysql_03

Java客户端操作

这里我测试本地windows环境的操作,linux的操作基本相同,只是文件路径的区别而已

生成证书密码

首先需要基于上一步Mysql配置完ssl账户生成对应的ca.pem证书,通过jvm的keytool工具将ca.pem证书放入到truststore仓库中;
windows操作系统可以直接在上一步存放ca.pem证书的目录通过快捷键【Ctrl+Shift+鼠标右键】唤起Powershell窗口,执行命令

keytool -importcert -alias MySQLCACert -file ca.pem -keystore truststore -storepass 123456

其中:truststore 是存储证书的密钥库,123456是密钥库口令

Mysql开启ssl加密协议及Java客户端配置操作指南_mysql_04


生成之后可以查看一下是否生成成功,操作命令

keytool -list -keystore truststore

输入密钥库口令之后可以看到证书信息

Mysql开启ssl加密协议及Java客户端配置操作指南_java_05


回到唤起Powershell窗口的文件夹(即存放ca.pem)的文件夹下可以看到生成的证书密钥库文件truststore,如图

Mysql开启ssl加密协议及Java客户端配置操作指南_sql_06


这样证书密码就算生成成功了,证书密码路径为: E:\2022mycomputer\mysql_cert\truststore

配置数据库连接

数据库连接如下

datasource.masterUrl=jdbc:mysql://127.0.0.1:3306/ei_app?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&verifyServerCertificate=true&requireSSL=true&sslMode=verify_ca&trustCertificateKeyStoreUrl=file:E:/2022mycomputer/mysql_cert/truststore&trustCertificateKeyStorePassword=123456

参数说明:

Mysql开启ssl加密协议及Java客户端配置操作指南_java_07


配置完成之后再使用对应ca.pem证书的账户密码即可以正常连接Mysql了

工具配置

这里举例工具为navicat ,个人测试的navicat 15可以通过ssl连接数据库,navicat 11 连接不成功,连接操作如图

Mysql开启ssl加密协议及Java客户端配置操作指南_mysql_08


配置SSL证书信息

Mysql开启ssl加密协议及Java客户端配置操作指南_mysql_09


配置完成之后点击连接测试,如果你当前的navicat版本支持SSL连接的话会提示

Mysql开启ssl加密协议及Java客户端配置操作指南_SSL_10


如果配置没有问题但是连接测试提示失败的,那就是当前版本的navicat 不支持SSL连接

可以升级navicat到高的版本即可.

 


标签:Java,证书,ca,配置,ssl,Mysql,pem
From: https://blog.51cto.com/u_10917175/5925146

相关文章

  • Java格式化日期 微秒
    Java格式化日期微秒​​Date、LocalDateTime格式化微秒值​​​​Date、LocalDateTime互转​​本文主要讲述Java日期格式化及格式化日期到微秒Date、LocalDateTime格式化......
  • Java项目开发小tips
    1、idea对于JS代码的兼容性较差,编写了js代码但是有时候不能正常加载。解决方法:(1)idea缓存清理;  (2)clear-install;先clear,清理完成之后再install。  (3)rebuild重......
  • 小新学Java15-【字节流、字符流】
    一、IO概述1.1什么是IO1.2IO的分类1.3IO的流向说明图解1.4顶级父类们二、字节流2.1一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形......
  • java排序算法
    1.冒泡排序法冒泡排序,轮询两个相邻的数据进行比较,如果条件成立,则数据相互转换。直到数据转换完毕。Integer[]strr={7,5,4,8,6,9,2,3,1,0};for(inti=0;i<strr.l......
  • 关于java程序OOM的优化
    在很多时候,我们使用循环,在循环体中处理逻辑使用的了大量内存,最终导致程序OOM。对此,经过一些测试,最终找出优化方案。策略将不使用的对象赋值为null主动调用GC测试......
  • javascript-代码随想录训练营day24
    77.组合题目链接:https://leetcode.cn/problems/combinations/题目描述:给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案......
  • java-net-php-python-jsp汽车租赁管理系统计算机毕业设计程序
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • 从零开始学Java系列之如何使用记事本编写java程序
    前言在上一篇文章中,壹哥给大家介绍了Java中的标识符及其命名规则、规范,Java里的关键字和保留字,以及Java中的编码规范。我们在之前编写案例时,使用的开发工具都是windows自......
  • 08JavaScript之JavaScript操作DOM对象方法
    通过元素类型的方法来操作:document.getElementById();//id名,在实际开发中较少使用,选择器中多用classid一般只用在顶级层存在不能太过依赖iddocument.getElementsByTagName......
  • java基础题目(面试有可能出现)
    1、面向对象(OO)的优点A.与人类的思维习惯一致B.信息隐藏,提高了程序的可维护性和安全性C.提高了程序的可重用行2.通常什么情况下使用数组?使用数组的好处是什么?当需要储存或......