MySQL8開啟ssl加密


1 概述

MySQL從5.7開始默認開啟SSL加密功能,進入MySQL控制台后輸入status可以查看ssl的狀態,出現下圖表示在使用ssl:
在這里插入圖片描述
另外,ssl加密需要密鑰與證書,可以使用openssl手動生成或使用mysql_ssl_rsa_setup自動生成,這里使用了mysql_ssl_rsa_setup.
下面從安裝開始.

2 安裝(可選)

系統CentOS,直接使用yum安裝(編譯安裝可以看這里),先用list查看一下:
在這里插入圖片描述
這里的版本是8.0.17,不算太舊,就不去官網下載了,直接install:

yum install mysql
yum install mysql-server

好了之后啟動服務:

systemctl start mysqld

然后獲取臨時密碼后修改root密碼:

grep password /var/log/mysql/mysqld.log

在這里插入圖片描述
這里顯示密碼為空,直接root登錄修改密碼:

mysql -u root -p
alter user root@localhost identified by 'xxxxx

在這里插入圖片描述

3 生成證書與密鑰

首先查看有沒有開啟ssl,MySQL控制台輸入

show variables like '%ssl%';

在這里插入圖片描述
這里have_ssl顯示yes,表示已經開啟了,表示本地的使用了ssl連接,如果顯示為no,使用MySQL自帶的工具即可開啟ssl:

mysqld_ssl_rsa_setup

然后默認在/var/lib/mysql下會有幾個pem文件(ls查看),說明如下:

名字 描述
ca-key.pem CA私鑰
ca.pem 自簽名的CA證書
client-key.pem 連接服務器提供的私鑰
client-cert.pem 連接服務器需要提供的證書
server-key.pem 服務器端私鑰
server-client.pem 服務器端證書
pulibc_key.pem 密鑰對公鑰
private_key.pem 密鑰對私鑰

接着重啟服務:

systemctl restart mysqld

4 測試

進入服務器的MySQL控制台,新建兩個測試用戶,一個使用ssl,一個不使用ssl:
在這里插入圖片描述
然后在本機上測試,首先測試不需要ssl的用戶,輸入密碼123456后可以直接登錄:
在這里插入圖片描述
然后測試需要ssl的用戶:
在這里插入圖片描述
輸入密碼123456后登錄不了,使用scp從服務器復制CA證書與客戶端證書與私鑰:

scp username@xxx.xxx.xxx.xxx:/var/lib/mysql/\{ca.pem,client-key.pem,client-cert.pem} .

然后在登錄時加上

--ssl-ca=ca.pem
--ssl-cert=client-cert.pem
--ssl-key=client-key.pem

在這里插入圖片描述
登錄成功.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM