クライアントとサーバの SSL と同様に SSL 接続を使用してレプリケーションをセットアップします。マスタに使用する適切なセキュリティ証明書、ならびに同類の証明書を同一の認証機関から、それぞれのサーバ用に取得します。
レプリケーションに必要なバイナリ ログの暗号化トランスファに SSL を使用するには、まず最初に SSL ネットワークをサポートするようにマスタをセットアップします。SSL 用にコンパイルしていない、あるいは構成していないなどの理由で、マスタが SSL 接続をサポートしない場合は、SSL 接続を介してレプリケーションを行うことはできません。
サーバとクライアントの SSL 接続 をセットアップに関する詳細は、項4.8.7.2. 「SSL接続」 を参照してください。
SSL
をマスタで利用可能にするには、適切な証明書を用意して、次に示すコンフィギュレーション
オプションを mysqld
セクション内にあるマスタのコンフィギュレーションに付加します。
ssl-ca=cacert.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem
オプションは次の通りです。
ssl-ca
が CA 証明書 を認識する。
ssl-cert
がサーバのパブリック
キーを認識する。これをクライアントに送信すると、そこにある
CA 証明書を認証する。
ssl-key
がサーバ プライベート
キーを認識する。
スレーブでは、SSL 情報の設定に 2
つのオプションがあります。スレーブの証明書をスレーブのコンフィギュレーション
ファイルの client
セクションに付加するか、もしくは CHANGE
MASTER
ステートメント を使って SSL
情報を明確に指定します。
前述のオプションを使用して、次の文字列をスレーブのコンフィギュレーション
ファイルの client
セクションに付加します。
[client] ssl-ca=cacert.pem
ssl-cert=server-cert.pem
ssl-key=server-key.pem
スレーブ サーバ
を再稼動し、--skip-slave
をスレーブがマスタへ接続しないようにします。CHANGE
MASTER
を使用して、マスタのコンフィギュレーションを指定し、master_ssl
オプションを使用して、SSL
接続ができるようにします。
mysql> CHANGE MASTER TO \ MASTER_HOST='master_hostname', \ MASTER_USER='replicate', \ MASTER_PASSWORD='password', \ MASTER_SSL=1;
CHANGE MASTER
コマンドで、SSL
証明ルールを指定するには、SSL
ルールを付加します。
CHANGE MASTER TO \ MASTER_HOST='master_hostname', \ MASTER_USER='replicate', \ MASTER_PASSWORD='password', \ MASTER_SSL=1, \ MASTER_SSL_CA = 'ca_file_name', \ MASTER_SSL_CAPATH = 'ca_directory_name', \ MASTER_SSL_CERT = 'cert_file_name', \ MASTER_SSL_KEY = 'key_file_name';
マスタの情報が更新されたら、スレーブのレプリケーション プロセスを開始します。
mysql> START SLAVE;
SHOW SLAVE STATUS
を使用して、SSL
接続が完了したかどうかを確認します。
CHANGE MASTER TO
構文に関する詳細は項12.6.2.1. 「CHANGE MASTER TO
構文」
を参照してください。
レプリケーション中に使用する SSL 接続
を強化する場合は、REPLICATION SLAVE
権限でユーザを作成し、そのユーザ に
REQUIRE_SSL
ルールを使用します。
mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass' REQUIRE SSL;