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 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
MySQL如何使用使用Xtrabackup进行备份和恢复
Jun 21 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
MySQL千万级数据表的优化实战记录
Aug 04 MySQL
MySQL数据库必备之条件查询语句
Oct 15 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
排查并解决MySQL生产库内存使用率高的报警
Apr 11 MySQL
Mysql中常用的join连接方式
May 11 MySQL
面试官问我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
写一个用户在线显示的程序
2006/10/09 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
简单理解Python中基于生成器的状态机
2015/04/13 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Python reduce函数作用及实例解析
2020/05/08 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
商务专员岗位职责
2013/11/23 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
岗位明星事迹材料
2014/05/18 职场文书
单位承诺书格式
2014/05/21 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书