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获取所有分类的前N条记录
May 07 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
May 29 MySQL
MySQL不使用order by实现排名的三种思路总结
Jun 02 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
一条 SQL 语句执行过程
Mar 17 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
MySql分区类型及创建分区的方法
Apr 13 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
python实现分页效果
2017/10/25 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python实现单向链表详解
2018/02/08 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
日语专业毕业生求职信
2013/12/04 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
房产委托公证书
2014/04/08 职场文书
租房协议书范文
2014/08/20 职场文书
教书育人演讲稿
2014/09/11 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
机关作风建设整改方案
2014/10/27 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
现实表现证明材料
2015/06/19 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书