目錄
- 前言
- 一、Mysql 啟用 SSL 配置
- 1.1 檢查是否開啟 ssl
- 1.2 設(shè)置用戶是否使用 SSL 連接
- 1.3 使用 SSL 登錄
- 二、總結(jié)
前言
國家等級保護(hù)三級安全要求,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 設(shè)置用戶是否使用 SSL 連接
mysql> select ssl_type from user where user = 'dev_fqr' ;
+----------+
| ssl_type |
+----------+
| |
+----------+
1 row in set (0.05 sec)
默認(rèn)用戶是沒有使用 SSL 登錄的。
我們可以強(qiáng)制這個管理用戶使用 SSL 登錄。
alter user 'xxx'@'%' require ssl;
取消ssl驗證:
alter user 'xxx'@'%' require none;
更改后,該賬戶就無法登錄了,查看狀態(tài)變成下面這種
mysql> select ssl_type from user where user = 'dev_fqr' ;
+----------+
| ssl_type |
+----------+
| ANY |
+----------+
1 row in set (0.01 sec)
測試登錄,本機(jī)無法直接登錄。
[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
遠(yuǎn)程客戶端無法直接登錄:

1.3 使用 SSL 登錄
要想通過 SSL 登錄,就需要用到下面這幾個證書,通過 client 證書 與 server 端進(jìn)行校驗通過才能登錄成功。

1) 本機(jī)登錄
在 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 遠(yuǎn)程客戶端登錄
把這三個證書下載下來

配置證書目錄,即可遠(yuǎn)程訪問:

二、總結(jié)
因為測評的時候不會看 JDBC 里面的配置,所以 JDBC 就不改了,不然要改動的地方非常的多,具體演示的時候可以用提前準(zhǔn)備兩個賬號,到時候用客戶端連接即可。
目前兩臺 mysql 的ssl 用戶如下:

到此這篇關(guān)于mysql配置SSL證書登錄的實現(xiàn)的文章就介紹到這了,更多相關(guān)mysql SSL證書登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 通過mysql show processlist 命令檢查mysql鎖的方法
- MySQL 使用 SSL 連接配置詳解
- MySQL SHOW PROCESSLIST協(xié)助故障診斷全過程
- 多種不同的 MySQL 的 SSL 配置
- MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程
- 多種不同的 MySQL 的 SSL 配置
- MySQL配置SSL主從復(fù)制