データベース・ノードおよびルーターの構成

次のような設定を使用して、セキュアな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

データベース・ノードを構成した後、すべてのユーザーに読取り権限を付与し、グループおよび他のユーザーからの書込み権限を取り消します。

接続のテスト

構成が実施され、適切な権限を構成ファイルに付与されたら、データベース・ノードおよびルーターを再起動して設定をテストします。

データベース・ノード接続のテスト

データベース・ノードが終了していないことを確認します。構成ファイルのlog-error設定の下にあるログで、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%';