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执行计划
May 31 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
详细谈谈MYSQL中的COLLATE是什么
Jun 11 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
Feb 24 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MySql中的json_extract函数处理json字段详情
Jun 05 MySQL
数据设计之权限的实现
Aug 05 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 db类库进行数据库操作
2009/03/19 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
毕业生实习鉴定
2013/12/11 职场文书
有创意的广告词
2014/03/18 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
同事离别感言
2015/08/04 职场文书
德能勤绩工作总结
2015/08/11 职场文书
解析目标检测之IoU
2021/06/26 Python