mysql配置SSL证书登录的实现

 更新时间:2021年09月03日 10:37:58   作者:潇雷  
应国家等级保护三级安全要求,mysql 的 ssl 需要安全证书加密,本文主要介绍了mysql配置SSL证书登录,感兴趣的可以了解一下

前言

国家等级保护三级安全要求,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

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

1.3 使用 SSL 登录

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

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 远程客户端登录

把这三个证书下载下来

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

二、总结

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

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

相关文章

  • 详解MySQL查询时区分字符串中字母大小写的方法

    详解MySQL查询时区分字符串中字母大小写的方法

    MySQL默认是不区分大小写的,这个涉及到collate字符集与校验规则方面的知识,下面会讲到,这里我们就来详解MySQL查询时区分字符串中字母大小写的方法.
    2016-05-05
  • MySQL日期与时间函数的使用汇总

    MySQL日期与时间函数的使用汇总

    这篇文章主要给大家汇总介绍了关于MySQL日期与时间函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 面试官问订单ID是如何生成的?难道不是MySQL自增主键

    面试官问订单ID是如何生成的?难道不是MySQL自增主键

    最近在考虑订单id怎么生成,下面这篇文章主要给大家介绍了关于面试官问订单ID是如何生成的?难道不是MySQL自增主键的相关资料,需要的朋友可以参考下
    2023-02-02
  • 解决mysql ERROR 1045 (28000)-- Access denied for user问题

    解决mysql ERROR 1045 (28000)-- Access denied for user问题

    这篇文章主要介绍了mysql ERROR 1045 (28000)-- Access denied for user解决方法,需要的朋友可以参考下
    2018-03-03
  • 连接mysql连接超时报错问题以及解决

    连接mysql连接超时报错问题以及解决

    这篇文章主要介绍了连接mysql连接超时报错问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • MySQL8.4实现RPM部署指南

    MySQL8.4实现RPM部署指南

    MySQL8.4是一个稳定和高性能的关系型数据库管理系统,本文主要介绍了MySQL8.4实现RPM部署指南,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • 教你一招永久解决mysql插入中文失败问题

    教你一招永久解决mysql插入中文失败问题

    mysql经常会遇到某些中文插入异常,最近有同学反馈了这样一个问题,所以下面这篇文章主要给大家介绍了关于如何永久解决mysql插入中文失败问题的相关资料,需要的朋友可以参考下
    2021-11-11
  • 带你学习MySQL执行计划

    带你学习MySQL执行计划

    前面文章,我们学习了 MySQL 慢日志相关内容,当我们筛选得到具体的慢 SQL 后,就要想办法去优化啦。优化 SQL 的第一步应该是读懂 SQL 的执行计划。本篇文章,我们一起来学习下 MySQL explain 执行计划相关知识。
    2021-05-05
  • 一文了解MySQL的四大子查询

    一文了解MySQL的四大子查询

    本文主要介绍了一文了解MySQL的四大子查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • mysql 全文检索中文解决方法及实例代码

    mysql 全文检索中文解决方法及实例代码

    这篇文章主要介绍了mysql 全文检索中文解决方法及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论