mysql配置SSL证书登录的实现

应国家等级保护三级安全要求,mysql 的 ssl 需要安全证书加密,本文主要介绍了mysql配置SSL证书登录,感兴趣的可以了解一下

前言

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

一、Mysql 启用 SSL 配置

1.1 检查是否开启 ssl

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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 连接

?

1

2

3

4

5

6

7

mysql> select ssl_type from user where user = 'dev_fqr' ;

+———-+

| ssl_type |

+———-+

| |

+———-+

1 row in set (0.05 sec)

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

?

1

2

3

alter user 'xxx'@'%' require ssl;

取消ssl验证:

alter user 'xxx'@'%' require none;

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

?

1

2

3

4

5

6

7

mysql> select ssl_type from user where user = 'dev_fqr' ;

+———-+

| ssl_type |

+———-+

| ANY |

+———-+

1 row in set (0.01 sec)

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

?

1

2

3

[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 目录下的三个文件证书登录。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[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证书登录内容请搜索钦钦技术栈以前的文章或继续浏览下面的相关文章希望大家以后多多支持钦钦技术栈!

原文链接:https://juejin.cn/post/7003228937635495972

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/5663/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-07-26 10:00:14
下一篇 2022-07-26 10:00:27

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!