首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL SSL 加密連線配置實戰指南

     編輯:MySQL 綜合教學

前言

為了保障資料傳輸安全,MySQL 支援 SSL/TLS 加密連線。本文透過實際操作範例,詳細說明如何在 MySQL 伺服器與客戶端啟用 SSL,包含憑證配置、參數設定與連線測試。

SSL 憑證與配置檔設定

在選項檔 my.cnf 中分別設定客戶端與伺服器端的 SSL 參數:

客戶端區塊 [client]

[client]
ssl-ca=$DIR/cacert.pem
ssl-cert=$DIR/client-cert.pem
ssl-key=$DIR/client-key.pem

伺服器區塊 [mysqld]

[mysqld]
ssl-ca=$DIR/cacert.pem
ssl-cert=$DIR/server-cert.pem
ssl-key=$DIR/server-key.pem
說明: $DIR 為 my.cnf 檔案所在路徑。請確保憑證檔案權限正確,私鑰僅限擁有者讀取。

啟動測試與驗證

1. 以指定配置檔啟動伺服器

shell> mysqld --defaults-file=$DIR/my.cnf &

2. 客戶端以相同配置檔連線

shell> mysql --defaults-file=$DIR/my.cnf

3. 實際操作指令範例(含權限設定)

[root@localhost mysql-5.0.20a]# chown -R root /usr/local/mysql
[root@localhost mysql-5.0.20a]# chown -R mysql /usr/local/mysql/var
[root@localhost mysql-5.0.20a]# chgrp -R mysql /usr/local/mysql
[root@localhost mysql-5.0.20a]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhost mysql]# ./bin/mysql -u root --socket=/tmp/mysql.sock

註冊為系統服務

將 mysql/share/mysql/mysql.server 複製到 /etc/init.d/ 並命名為 mysql:

chmod 775 /etc/init.d/mysql
chkconfig --add mysql

建立需 SSL 連線的使用者

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON mydb2.* TO 'd_admin'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON mydb2.* TO 'bodd'@'192.168.18.14' IDENTIFIED BY 'domainssl' REQUIRE SSL;
mysql> FLUSH PRIVILEGES;
重點: 最後一行 REQUIRE SSL 強制該帳號必須走加密連線。

驗證 SSL 連線狀態

連線成功後,執行 SHOW STATUS LIKE 'Ssl_cipher'; 若回傳加密套件名稱(如 DHE-RSA-AES256-SHA),即確認已啟用 SSL。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved