mysql数据库使用useSSL=true,并配置ca证书和密钥连接

这篇具有很好参考价值的文章主要介绍了mysql数据库使用useSSL=true,并配置ca证书和密钥连接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:Mysql5.7开启SSL并且支持Springboot客户端验证
https://blog.csdn.net/weixin_42911645/article/details/127070812

前提:已安装好数据库,这里以mysql5.7为例

一、配置mysql服务器

  1. 确认数据库目录位置,可以输入以下指令查看:
show variables like 'datadir';

mysql数据库使用useSSL=true,并配置ca证书和密钥连接
数据库安装好后,在数据库目录下存在默认生成好的证书文件:
ca.pemca-key.pemclient-cert.pemclient-key.pemserver-cert.pemserver-key.pem
如果没有以上文件,需要手工生成,-> 【制作证书】

  1. 修改mysql配置文件,添加ssl调用配置
[client]
ssl-cert = "C:/ProgramData/MySQL/MySQL Server 5.7/Data/client-cert.pem"
ssl-key = "C:/ProgramData/MySQL/MySQL Server 5.7/Data/client-key.pem"
注意:如果是做了主从,需要把主的证书拷贝到从
    
[mysqld]
ssl-ca="C:/ProgramData/MySQL/MySQL Server 5.7/Data/ca.pem"
ssl-cert="C:/ProgramData/MySQL/MySQL Server 5.7/Data/server-cert.pem"
ssl-key="C:/ProgramData/MySQL/MySQL Server 5.7/Data/server-key.pem"
  1. 重启mysql服务,检查数据库ssl是否开启状态,have_openssl 与 have_ssl 值都为YES表示ssl开启成功
show variables like '%ssl%';
show variables like 'have%ssl%';
  1. 通过客户端密钥与证书ssl+密码连接测试,并查看属性
    指定证书文件位置client-cert.pemclient-key.pem
mysql -uroot -proot -h 127.0.0.1 -P 13306 --ssl-cert=D:/server/config/client-cert.pem --ssl-key=D:/server/config/client-key.pem

要确定当前与服务器的连接是否使用加密,请检查Ssl_cipher状态变量的会话值 。如果该值为空,则连接未加密。否则,连接被加密并且该值指示加密密码。例如:

mysql> SHOW SESSION STATUS LIKE 'Ssl_cipher';

+---------------+---------------------------+
| Variable_name | Value                     |
+---------------+---------------------------+
| Ssl_cipher    | DHE-RSA-AES128-GCM-SHA256 |
+---------------+---------------------------+

对于mysql客户端,另一种方法是使用STATUSor\s 命令并检查该SSL行:

# 1.未使用
mysql> \s
...
SSL: Not in use
...
 
 # 2.已使用
mysql> \s
...
SSL: Cipher in use is DHE-RSA-AES128-GCM-SHA256  
...

二、JAVA客户端连接数据库

  1. 找服务端提供三个原始文件
    mysql数据库使用useSSL=true,并配置ca证书和密钥连接
    在原始文件目录下,依次执行以下指令,生成keystoremysqltruststoremysql 文件。
    可自行修改密码,默认是123456
1. 生成truststore文件

keytool -importcert -alias Cacert -file ca.pem -keystore truststoremysql -storepass 123456

2. 生成中间文件

openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name "mysqlclient" -passout pass:123456 -out client-keystore.p12

3. 生成keystore文件

keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore keystoremysql -deststoretype JKS -deststorepass 123456

以上两个文件生成的参数可以自己修改,windows环境中没有openssl,在linux环境中执行。密码注意自行更改为统一的值,后续配置要用到
生成结果:
mysql数据库使用useSSL=true,并配置ca证书和密钥连接
另:
为了方便,已经将上述指令封装为脚本:
mysql数据库使用useSSL=true,并配置ca证书和密钥连接
create.sh:文章来源地址https://www.toymoban.com/news/detail-403260.html

#!/bin/bash

passwd=$1
outpath=$(pwd)/out
echo "outpath: ${outpath}"

if [ -z "$passwd" ];then
  echo '密码不能为空,使用示例:./create 123456'
  exit 0
fi

rm -rf $outpath
if [ ! -d $outpath ];then
  mkdir $outpath
fi



echo '1【生成truststore文件...】'
keytool -importcert -alias Cacert -file ca.pem -keystore ${outpath}/truststoremysql -storepass ${passwd}

echo '2【生成中间文件...】'
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name "mysqlclient" -passout pass:${passwd} -out ${outpath}/client-keystore.p12

echo '3【生成keystore文件...】'
keytool -importkeystore -srckeystore ${outpath}/client-keystore.p12 -srcstoretype pkcs12 -srcstorepass ${passwd} -destkeystore ${outpath}/keystoremysql -deststoretype JKS -deststorepass ${passwd}

echo " "
echo "=======文件生成成功======"
echo "请拷贝目录${outpath}下的 truststoremysql 和 keystoremysql 文件"
echo "========================="
  1. 使用目标文件keystoremysqltruststoremysql和密码123456进行客户端链接
    以下为spring配置文件application.properties示例:
# 目标文件目录(keystoremysql、truststoremysql)
ssl.cert.path=C:\\Users\\cmc\\Desktop

# 生成目标文件时填写的密码
ssl.password=123456

ssl.config=useSSL=true&verifyServerCertificate=true&requireSSL=true&clientCertificateKeyStoreUrl=file:${ssl.cert.path}/keystoremysql&clientCertificateKeyStorePassword=${ssl.password}&trustCertificateKeyStoreUrl=file:${ssl.cert.path}/truststoremysql&trustCertificateKeyStorePassword=${ssl.password}

# datasource配置:
spring.datasource.master.url=jdbc:mysql://127.0.0.1:13306/db1?nullCatalogMeansCurrent=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8&${ssl.config}

到了这里,关于mysql数据库使用useSSL=true,并配置ca证书和密钥连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac 系统配置 MySql 数据库

    https://www.aliyundrive.com/s/8tKz92o6FJq 提取码: 3u3q 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 1.1 双击打开安装包 mysql-8.0.19-macos10.15-x86_64.dmg: 1.2 双击 mysql-8.0.19-macos10.15-x86_64.pkg 运行安装包,并点击 继续 按钮: 1.3 进入

    2024年02月12日
    浏览(45)
  • C#控制台连接Mysql数据库,有配置数据库连接字符串的配置文件

    实现功能 读取. .txt 中的配置文件,来初始化连接字符串 让连接字符串的配置文件不存在会主动创建默认的连接字符串 注意点: 需要引用Newtonsoft 使用mysql

    2024年02月10日
    浏览(59)
  • MySQL数据库内存配置与性能优化:合理分配内存,提升数据库性能

             引言 :MySQL是广泛使用的关系型数据库管理系统,而合理配置数据库的内存是保障其高性能运行的关键之一.本文将介绍如何根据MySQL数据库内存值大小来定义,以及这样配置如何影响数据库的性能   内存配置的基本原则 : innodb_buffer_pool_size :该参数定义了InnoDB存储引擎

    2024年02月22日
    浏览(59)
  • idea中MySQL数据库的配置

    在IntelliJ IDEA中配置数据库可以通过以下步骤进行: 打开IntelliJ IDEA,在菜单栏中选择\\\"View\\\" - \\\"Tool Windows\\\" - \\\"Database\\\",打开Database工具窗口。 在Database工具窗口上方,点击\\\"+\\\"按钮,选择\\\"Data Source\\\",选择相应的数据库类型,如MySQL、Oracle等。 在弹出的对话框中,填写数据库连接信息

    2024年04月10日
    浏览(47)
  • idea配置MySQL数据库,以及将已存在的数据表导入数据库

    首先,确定自己需要的数据库名字,结合jeecg项目,我在项目中得知我需要链接的数据库的名字为     jeecg-boot 打开数据库的可视化软件,     点击开始,即可导入,刷新数据库,就可以看到导入的数据表了。 接下来在idea链接MySQL     点击OK,就完成配置了,刷新一下,就

    2024年02月11日
    浏览(70)
  • MySQL数据库——MySQL配置文件(my.ini)详解

    my.ini 是 MySQL 数据库中使用的配置文件,MySQL 服务器启动时会读取这个配置文件,我们可以通过修改这个文件,达到更新配置的目的。 这里以 Windows 系统下的 my.ini 配置文件为样板,讲解 MySQL 配置文件中的参数。 一般情况下,my.ini 在 MySql 安装的根目录下,也有可能在隐藏文

    2023年04月09日
    浏览(44)
  • 大数据平台环境搭建---- Hive&MySql数据库组件配置

    前置环境 Hadoop集群必须部署完成,如果还没有搭建请先前往Hadoop全分布搭建笔记 程序版本 hive 1.1.0 mysql 5.7.25 mysql-connector-java-5.1.39-bin.jar 资源下载 官网下载: mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar :https://downloads.mysql.com/archives/community/  链接:https://pan.xunlei.com/s/VNoQg4wdxda5by6L8Lvug9e

    2024年01月25日
    浏览(64)
  • 解压版 MySQL 数据库的安装与配置

    安装环境:Win10 64位 软件版本:MySQL 5.7.24 解压版 点击链接 进入如下界面 ❗️注意: 我们一般不会选择最新版本,而是会选择比较稳定的版本 选择选择和自己 系统位数 相对应的版本点击右边的 Download ,就可以下载了 下载完成后我们得到的是一个压缩包,将其解压,我们就可

    2024年02月12日
    浏览(43)
  • MySQL数据库配置及创建用户和授权

    注意: 都是基于MySQL8.0以上版本 需要注意的是,修改 MySQL 的配置参数时需要谨慎,如果参数配置不合理,可能会导致数据库性能下降或出现其他问题。修改 MySQL 的配置参数时,最好具有一定的经验或者了解相关的 MySQL 参数调优知识。 vi /etc/my.cnf 第一步: cd /etc #进入etc目录

    2024年02月15日
    浏览(52)
  • 【MySQL数据库】最全安装过程及配置详解

    🧛‍♂️iecne个人主页: : iecne的学习日志 💡每天 关注 iecne的作品,一起进步 💪一起学习,必看iecne 🐳希望大家多多支持🥰一起进步呀!

    2024年02月02日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包