mysql配置SSL證書(shū)登錄的實(shí)現(xiàn)
前言
國(guó)家等級(jí)保護(hù)三級(jí)安全要求,mysql 的 ssl 需要安全證書(shū)加密,這里需要研究一下,選幾個(gè)賬戶演示下即可。mysql 的版本為 8.0.20
一、Mysql 啟用 SSL 配置
1.1 檢查是否開(kāi)啟 ssl
mysql> show variables like '%ssl%'; +--------------------+-----------------+ | Variable_name | Value | +--------------------+-----------------+ | have_openssl | YES | | have_ssl | YES | # 已開(kāi)啟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)用戶是沒(méi)有使用 SSL 登錄的。
我們可以強(qiáng)制這個(gè)管理用戶使用 SSL 登錄。
alter user 'xxx'@'%' require ssl; 取消ssl驗(yàn)證: alter user 'xxx'@'%' require none;
更改后,該賬戶就無(wú)法登錄了,查看狀態(tài)變成下面這種
mysql> select ssl_type from user where user = 'dev_fqr' ; +----------+ | ssl_type | +----------+ | ANY | +----------+ 1 row in set (0.01 sec)
測(cè)試登錄,本機(jī)無(wú)法直接登錄。
[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)程客戶端無(wú)法直接登錄:

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

1) 本機(jī)登錄
在 data 目錄下的三個(gè)文件證書(shū)登錄。
[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)程客戶端登錄
把這三個(gè)證書(shū)下載下來(lái)

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

二、總結(jié)
因?yàn)闇y(cè)評(píng)的時(shí)候不會(huì)看 JDBC 里面的配置,所以 JDBC 就不改了,不然要改動(dòng)的地方非常的多,具體演示的時(shí)候可以用提前準(zhǔn)備兩個(gè)賬號(hào),到時(shí)候用客戶端連接即可。
目前兩臺(tái) mysql 的ssl 用戶如下:

到此這篇關(guān)于mysql配置SSL證書(shū)登錄的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mysql SSL證書(shū)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在golang中操作mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了在golang中操作mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
Windows下Mysql啟動(dòng)報(bào)1067的解決方法
這篇文章主要為大家詳細(xì)介紹了Windows下Mysql啟動(dòng)報(bào)1067的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
MySql增量恢復(fù)的幾種實(shí)現(xiàn)方法
本文主要介紹了MySql增量恢復(fù)的幾種實(shí)現(xiàn)方法,通過(guò)增量備份與恢復(fù),可以在系統(tǒng)發(fā)生故障或數(shù)據(jù)損壞時(shí)快速恢復(fù)到最新?tīng)顟B(tài),提高系統(tǒng)的可靠性和可用性,感興趣的可以了解一下2023-08-08
mysql中engine=innodb和engine=myisam的區(qū)別介紹
MyISAM類(lèi)型不支持事務(wù)處理等高級(jí)處理,而InnoDB類(lèi)型支持,本文為大家講解下mysql中engine=innodb和engine=myisam的區(qū)別,不懂的朋友可以學(xué)習(xí)下,希望對(duì)大家有所幫助2013-07-07
MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的操作方法
MySQL是常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),為了支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,MySQL引入了對(duì)JSON數(shù)據(jù)類(lèi)型的支持,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,在現(xiàn)代應(yīng)用程序中得到了廣泛應(yīng)用,處理和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)變得越來(lái)越重要,本文給大家介紹mysql查詢JSON數(shù)據(jù)的相關(guān)知識(shí),一起看看吧2024-01-01

