mysql配置SSL证书登录的实现


Posted in MySQL onSeptember 04, 2021

前言

国家等级保护三级安全要求,mysql 的 ssl 需要安全证书加密,这里需要研究一下,选几个账户演示下即可。mysql 的版本为 8.0.20

一、Mysql 启用 SSL 配置

1.1 检查是否开启 ssl

mysql> show variables like '%ssl%';
+--------------------+-----------------+
| Variable_name      | Value           |
+--------------------+-----------------+
| have_openssl       | YES             |  
| have_ssl           | YES             |  # 已开启ssl
| mysqlx_ssl_ca      |                 |
| mysqlx_ssl_capath  |                 |
| mysqlx_ssl_cert    |                 |
| mysqlx_ssl_cipher  |                 |
| mysqlx_ssl_crl     |                 |
| mysqlx_ssl_crlpath |                 |
| mysqlx_ssl_key     |                 |
| ssl_ca             | ca.pem          |
| ssl_capath         |                 |
| ssl_cert           | server-cert.pem |
| ssl_cipher         |                 |
| ssl_crl            |                 |
| ssl_crlpath        |                 |
| ssl_fips_mode      | OFF             |
| ssl_key            | server-key.pem  |
+--------------------+-----------------+
17 rows in set (0.56 sec)

1.2 设置用户是否使用 SSL 连接

mysql> select ssl_type from user where user = 'dev_fqr' ;
+----------+
| ssl_type |
+----------+
|          |
+----------+
1 row in set (0.05 sec)

默认用户是没有使用 SSL 登录的。
我们可以强制这个管理用户使用 SSL 登录。

alter user 'xxx'@'%' require ssl;
取消ssl验证:
alter user 'xxx'@'%' require none;

更改后,该账户就无法登录了,查看状态变成下面这种

mysql> select ssl_type from user where user = 'dev_fqr' ;
+----------+
| ssl_type |
+----------+
| ANY      |
+----------+
1 row in set (0.01 sec)

测试登录,本机无法直接登录。

[root@localhost data]# mysql -u dev_fqr -p
Enter password: 
ERROR 2026 (HY000): SSL connection error: SSL is required but the server doesn't support it

远程客户端无法直接登录:

mysql配置SSL证书登录的实现

1.3 使用 SSL 登录

要想通过 SSL 登录,就需要用到下面这几个证书,通过 client 证书 与 server 端进行校验通过才能登录成功。

mysql配置SSL证书登录的实现

1) 本机登录

在 data 目录下的三个文件证书登录。

[root@localhost data]# mysql -udev_fqr -pDev@fqr2021 --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 8.0.22 MySQL Community Server - GPL
​
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
You are enforcing ssl connection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql>

2)navicate 远程客户端登录

把这三个证书下载下来

mysql配置SSL证书登录的实现

配置证书目录,即可远程访问:

mysql配置SSL证书登录的实现

二、总结

因为测评的时候不会看 JDBC 里面的配置,所以 JDBC 就不改了,不然要改动的地方非常的多,具体演示的时候可以用提前准备两个账号,到时候用客户端连接即可。
目前两台 mysql 的ssl 用户如下:

mysql配置SSL证书登录的实现

到此这篇关于mysql配置SSL证书登录的实现的文章就介绍到这了,更多相关mysql SSL证书登录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木! 

MySQL 相关文章推荐
MySQL学习总结-基础架构概述
Apr 05 MySQL
详解MySQL InnoDB存储引擎的内存管理
Apr 08 MySQL
MySQL 如何分析查询性能
May 12 MySQL
Mysql Online DDL的使用详解
May 20 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
Mar 17 MySQL
一次Mysql update sql不当引起的生产故障记录
Apr 01 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
Sep 23 MySQL
MySQL约束超详解
Sep 04 #MySQL
MySQL中的隐藏列的具体查看
Sep 04 #MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 #MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 #MySQL
MySQL8.0的WITH查询详情
Aug 30 #MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 #MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 #MySQL
You might like
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
vue实现图片上传功能
2020/05/28 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
Django接受前端数据的几种方法总结
2016/11/04 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
如何完美的建立一个python项目
2020/10/09 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
历史学专业推荐信
2013/11/06 职场文书
市场营销工作计划书
2014/05/06 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
产品质量保证书范本
2015/02/27 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
政工师工作总结2015
2015/05/26 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
五年级作文之成长
2019/09/16 职场文书