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

简介: 本文主要讲述的是Mysql开启了ssl协议之后,Java客户端如何正确的链接Mysql访问数据

Mysql配置

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

验证Mysql开启SSL

验证命令

show global variables like '%ssl%';

验证结果如图

image.png

image.png

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

image.png

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是密钥库口令

image.png

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

keytool -list -keystore truststore

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

image.png

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

image.png

这样证书密码就算生成成功了,证书密码路径为: 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

参数说明:

参数

说明

useSSL

是否建立SSL连接

verifyServerCertificate

是否需要检验Mysql服务器证书

requireSSL

SSL连接,如果Mysql服务器不支持会失败

sslMode

SSL的连接模式

trustCertificateKeyStoreUrl truststore密钥库文件
trustCertificateKeyStorePassword truststore密钥库口令

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

工具配置

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

image.png

配置SSL证书信息

image.png

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

image.png

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

image.png

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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
关系型数据库 MySQL 网络安全
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
【YashanDB知识库】如何使用MySQL客户端链接YashanDB
|
存储 Java 关系型数据库
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
|
人工智能 Java API
MCP客户端调用看这一篇就够了(Java版)
本文详细介绍了MCP(Model Context Protocol)客户端的开发方法,包括在没有MCP时的痛点、MCP的作用以及如何通过Spring-AI框架和原生SDK调用MCP服务。文章首先分析了MCP协议的必要性,接着分别讲解了Spring-AI框架和自研SDK的使用方式,涵盖配置LLM接口、工具注入、动态封装工具等步骤,并提供了代码示例。此外,还记录了开发过程中遇到的问题及解决办法,如版本冲突、服务连接超时等。最后,文章探讨了框架与原生SDK的选择,认为框架适合快速构建应用,而原生SDK更适合平台级开发,强调了两者结合使用的价值。
15055 33
MCP客户端调用看这一篇就够了(Java版)
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
585 13
|
存储 网络协议 Java
Java获取客户端IP问题:返回127.0.0.1
总结:要解决Java获取客户端IP返回127.0.0.1的问题,首先要找出原因,再采取合适的解决方案。请参考上述方案来改进代码,确保在各种网络环境下都能正确获取客户端IP地址。希望本文对您有所帮助。
962 25
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
1029 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
存储 Java 数据安全/隐私保护
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
1026 5
|
人工智能 Java 关系型数据库
Java的时间处理与Mysql的时间查询
本文总结了Java中时间与日历的常用操作,包括时间的转换、格式化、日期加减及比较,并介绍了MySQL中按天、周、月、季度和年进行时间范围查询的方法,适用于日常开发中的时间处理需求。
318 0
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
734 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战

推荐镜像

更多