ApsaraDB RDS for MySQL インスタンスの SSL 暗号化機能を構成する場合、Alibaba Cloud によって管理される証明書とカスタム証明書を使用できます。このトピックでは、カスタム証明書を使用して RDS インスタンスの SSL 暗号化を有効にする方法について説明します。
前提条件
OpenSSL がインストールされていること。
RDS インスタンスは、SSL 暗号化機能を使用するために、次の MySQL バージョンと RDS エディションのいずれかを実行します。
RDS High-availability Edition での MySQL 8.0、MySQL 5.7、または MySQL 5.6
RDS Cluster Edition での MySQL 8.0 または MySQL 5.7
RDS Basic Edition での MySQL 8.0 または MySQL 5.7
RDS インスタンスが [強制 SSL 暗号化] 機能を使用するための次の要件を満たしている必要があります。
RDS インスタンスで MySQL 5.7 または MySQL 8.0 が実行されている。
RDS インスタンスで RDS Basic Edition、RDS High-availability Edition、または RDS Cluster Edition が実行されている。
RDS インスタンスで 20241130 以降のマイナーエンジンバージョンが実行されている。
Linux を使用している場合、OpenSSL はプリインストールされています。 OpenSSL を再度インストールする必要はありません。
Windows を使用している場合は、OpenSSL パッケージ を入手して OpenSSL をインストールする必要があります。
使用上の注意
SSL 暗号化が有効になると、CPU 使用率と読み取りおよび書き込みレイテンシが増加します。
SSL 暗号化を有効にした後、SSL 暗号化を有効にするには、既存の接続を閉じて新しい接続を確立する必要があります。
カスタム証明書を構成または変更するか、SSL 暗号化を無効にすると、RDS インスタンスが再起動されます。再起動には約 3 分かかります。オフピーク時に操作を実行することをお勧めします。
RDS インスタンスの強制 SSL 暗号化機能を有効にした後、クライアントまたはデータベースプロキシを RDS インスタンスに接続できるのは、SSL で暗号化された接続経由のみになります。 SSL で暗号化されていない接続は拒否されます。
構成プロセス
ステップ 1: カスタム証明書を取得する
サーバー証明書または自己署名証明書の秘密鍵を作成する場合、秘密鍵にパスワードを追加しないでください。秘密鍵にパスワードを追加すると、SSL 暗号化を有効にできません。
証明書の生成方法を説明するために、CentOS を例として使用します。
Windows オペレーティングシステムを使用している場合は、CentOS オペレーティングシステムで使用しているのと同じ方法で、次の openssl
コマンドを実行できます。さらに、cp
コマンドと vim
コマンドを使用する代わりに、コマンドを手動でコピーまたは編集する必要があります。
自己署名証明書と自己署名証明書の秘密鍵を作成します。自己署名証明書は server-ca.crt という名前のファイルに保存されます。秘密鍵は server-ca.key という名前のファイルに保存されます。
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-ca"
証明書署名要求 (CSR) ファイルとサーバー証明書の秘密鍵を作成します。 CSR ファイルの名前は server.csr です。秘密鍵は server.key という名前のファイルに保存されます。
カスタム証明書を使用して保護できるエンドポイントは 1 つだけです。ビジネス要件に基づいて CSR ファイルを生成するには、次のコマンドを実行できます。
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=rm-bpxxxxx.mysql.rds.aliyuncs.com"
説明rm-bpxxxxx.mysql.rds.aliyuncs.com
を保護するエンドポイントに置き換えます。エンドポイントを表示する方法の詳細については、「インスタンスのエンドポイントとポートを表示および管理する」をご参照ください。server.csr ファイルの作成中に、ビジネス要件に基づいてパラメータを構成するように求められます。次の表にパラメータを示します。
パラメーター
説明
値の例
国名
国のコード。国際標準化機構 (ISO) で定義されている 2 文字の国別コードを指定します。
CN
都道府県名
県。
ZheJiang
地域名
市。
HangZhou
組織名
企業の名前。
Alibaba
組織単位名
部署の名前。
Aliyun
共通名
証明書を使用して保護するドメイン名。ドメイン名は openssl.cnf ファイルで指定されています。このパラメータを構成する必要はありません。
-
メールアドレス
このパラメータを構成する必要はありません。
-
チャレンジパスワード
このパラメータを構成する必要はありません。
-
オプションの会社名
このパラメータを構成する必要はありません。
-
サーバー証明書を作成します。サーバー証明書は server.crt という名前のファイルに保存されます。
エンドポイントを保護する場合は、次のコマンドを実行します。
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt
構成が完了したら、ls
コマンドを実行して、生成されたファイルを表示します。
# ls
server-ca.crt server-ca.key ca.srl server.crt server.csr server.key
以下に、ファイルの説明を示します。
server.crt:サーバー証明書を含むファイル
server.key:サーバー証明書の秘密鍵を含むファイル
server-ca.crt:自己署名証明書を含むファイル
server-ca.key:自己署名証明書の秘密鍵を含むファイル
手順 2: カスタム証明書を構成して SSL 暗号化を有効にする
カスタム証明書を構成すると、RDS インスタンスの [ステータス] が [SSL 設定の変更中] に変わります。 RDS インスタンスはこの状態が 3 分間続きます。後続の操作に進む前に、RDS インスタンスが [実行中] 状態になるまで待ちます。
ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択し、RDS インスタンスを見つけて、インスタンス ID をクリックします。
表示されるページの左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。表示されるページで、[SSL] タブをクリックします。
[カスタム証明書] をクリックします。次に、[無効] の横にあるスイッチをクリックします。表示されるダイアログボックスで、[サーバー証明書]、[サーバー証明書の秘密鍵]、および [強制暗号化] パラメータを構成し、[OK] をクリックします。
パラメーター
説明
サーバー証明書
作成した server.crt ファイルの内容を入力します。詳細については、「手順 1:カスタム証明書を作成する」をご参照ください。 -----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- までのすべてのコンテンツがこのフィールドにコピーされていることを確認してください。
サーバー証明書の秘密鍵
作成した server.key ファイルの内容を入力します。詳細については、「手順 1:カスタム証明書を作成する」をご参照ください。 -----BEGIN PRIVATE KEY----- から -----END PRIVATE KEY----- までのすべてのコンテンツがこのフィールドにコピーされていることを確認してください。
強制暗号化
ビジネス要件に基づいて機能を有効または無効にします。
強制 SSL 暗号化機能は、RDS インスタンスで MySQL 5.7 および 20241130 以降のマイナーエンジンバージョンが実行されている場合にのみ有効にできます。
RDS インスタンスの強制 SSL 暗号化機能を有効にした後、クライアントまたはデータベースプロキシを RDS インスタンスに接続できるのは、SSL で暗号化された接続経由のみになります。 SSL で暗号化されていない接続は拒否されます。
手順 3:クライアントから RDS インスタンスに接続する
SSL 経由で RDS インスタンスに接続できます。詳細については、「SSL 経由で ApsaraDB RDS for MySQL インスタンスに接続する」をご参照ください。
手順 4:(オプション)作成したカスタム証明書を更新する
カスタム証明書を更新すると、MySQL 8.0 を使用していない限り、RDS インスタンスが再起動されます。注意して進めてください。
カスタム証明書を更新する場合は、[SSL] タブの SSL を更新する をクリックします。表示されるダイアログボックスで、[サーバー証明書] パラメータと [サーバー証明書の秘密鍵] パラメータを構成します。
手順 5:(オプション)SSL 暗号化を無効にする
この操作により、RDS インスタンスが再起動されます。注意して進めてください。
[SSL] タブで、[有効] の横にあるスイッチをクリックします。
よくある質問
カスタム証明書の有効期限が切れた場合はどうすればよいですか?
ApsaraDB RDS for MySQL のカスタム証明書の有効期間はユーザー定義です。証明書の有効期限が切れる前に、システムから通知が送信されます。通知を受け取ったら、ワークロードへの影響を防ぐために、できるだけ早く証明書の有効期間を更新することをお勧めします。