如果未經授權訪問您的數據,使用 SSL/TLS 保護 MySQL 服務器是至關重要的一步。SSL (Secure Sockets Layer 安全套接字層) 和 TLS (Transport Layer Security 傳輸層安全) 是加密協議,確保 MySQL 服務器和户端之間的數據傳輸是加密的。這意味着即使有人攔截了數據,他們也無法閲讀它。
SSL/TLS 要求
要使用 SSL/TLS 保護 MySQL 服務器,您需要:
- MySQL 服務器端和客户端軟件
- SSL 證書(CA 證書、服務器證書和服務器密鑰)
生成 SSL 證書
您需要創建 SSL 證書以啓用加密,您可以使用免費工具 OpenSSL 生成這些證書。
Install OpenSSL
sudo apt-get install openssl
Create a CA Certificate
openssl genpkey -algorithm RSA -out ca-key.pem
openssl req -new -x509 -key ca-key.pem -out ca-cert.pem
Create a Server Certificate
openssl genpkey -algorithm RSA -out server-key.pem
openssl req -new -key server-key.pem -out server-req.pem
openssl x509 -req -in server-req.pem -CA ca-cert.pem -CAkey ca-key.pem -out server-cert.pem
Create a Client Certificate
openssl genpkey -algorithm RSA -out client-key.pem
openssl req -new -key client-key.pem -out client-req.pem
openssl x509 -req -in client-req.pem -CA ca-cert.pem -CAkey ca-key.pem -out client-cert.pem
配置 MySQL 服務器
在生成證書之後,您需要配置 MySQL 服務器來使用它們。
Copy Certificates to MySQL Directory
將 ca-cert. pem、 server-cert. pem 和 server-key. pem 放在 MySQL 目錄中 (例如:/etc/MySQL)
Edit MySQL Configuration File
打開 MySQL 配置文件(my.cnf 或 my.ini),在添加 [mysqld] 配置塊中添加以下行:
[mysqld]
ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
Restart MySQL Server
sudo systemctl restart mysql
配置 MySQL 客户端
MySQL 客户端在連接服務器時需要配置為使用 SSL/TLS
Copy Client Certificates
確保客户端機器可以訪問 ca-cert.pem, client-cert.pem 和 client-key.pem 文件
Connect Using SSL
Use the following command to connect with SSL:
使用 SSL 連接服務器
mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -u username -p
驗證 SSL/TLS 連接
要驗證連接是否使用 SSL/TLS,可以在連接到 MySQL 後運行以下命令:
SHOW VARIABLES LIKE '%ssl%';
查找 ssl_cipher 變量,如果它顯示一個值,則表示您的連接已加密。
我的開源項目
- course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github倉庫)