設定資料庫節點和路由器
使用類似以下的設定值,設定透過安全 SSL 連線連線的資料庫節點和路由器。
路由器
在「路由器」組態檔中,確定下列設定值存在:
CLIENT_SSL_MODE=PREFERRED
CLIENT_SSL_CERT=*absolute path of the generated router certificate*
CLIENT_SSL_KEY=*absolute path of the generated router key*
SERVER_SSL_MODE=AS_CLIENT
SERVER_SSL_VERIFY=VERIFY_IDENTITY
SERVER_SSL_CA=*absolute path of the common ca.pem placed on this server*
設定之後,請提供讀取權限給所有使用者,並撤銷群組與其他使用者的寫入權限。
資料庫節點
在每個 MySQL 資料庫節點中,請確定已在適當的區段下設定下列項目:
SSL_CAPATH=*absolute path of the common ca.pem placed on this node*
SSL_CA=ca.pem
SSL_CERT=server-cert.pem
SSL_KEY=server-key.pem
GROUP_REPLICATION_SSL_MODE=REQUIRED
REQUIRE_SECURE_TRANSPORT=ON
設定資料庫節點之後,請提供所有使用者的讀取權限,以及撤銷群組與其他使用者的寫入權限。
測試連線
設定組態並已提供適當的權限給組態檔之後,請重新啟動資料庫節點和路由器來測試設定值。
測試資料庫節點連線
確定資料庫節點未終止。請查看組態檔中日誌錯誤設定底下的日誌,瞭解未接受 SSL 設定值的任何錯誤或警告。嘗試使用下列命令行連線至特定節點 (使用憑證中為此節點指定的一般名稱):
mysql -u *username* -p *password* -h *db_common_name* -P *db_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
請確定連線未產生任何錯誤。
同樣地,提供適當的參數值,以連接不同的 SSL 模式。注意:VERIFY_IDENTITY 不需要 ssl-cert 和 ssl-key。不過,如果資料庫使用者需要 X509 認證,則 ssl-cert 和 ssl-key 都必須提供 client-cert 和 client-key。
使用此方法測試所有資料庫節點,然後測試路由器連線。
測試路由器連線
資料庫節點啟動後,請重新啟動路由器並監控路由器,以確保路由器不會終止。
請查看組態檔中日誌錯誤設定底下的日誌,瞭解未接受 SSL 設定值的任何錯誤或警告。如果沒有錯誤或警告,請嘗試使用下列命令,從路由器連線至資料庫。請確定使用路由器憑證中指定的通用名稱:
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
確定連線通過,沒有任何錯誤。
驗證路由器與資料庫節點的連線
請先使用下列命令判斷目前作用中的主要節點:
MySQL> SHOW VARIABLES like '%hosts%';
現在登出資料庫,並將資料庫切換至另一個節點。然後使用下列命令,從路由器再次登入資料庫:
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
再次使用相同的命令檢查目前作用中的主要節點:
MySQL> SHOW VARIABLES like '%hosts%';