ApsaraDB RDS for MySQL インスタンスの SSL 暗号化を設定する際、ApsaraDB が提供するクラウド証明書またはカスタム証明書のいずれかを使用できます。このトピックでは、カスタム証明書を使用して SSL 暗号化を有効にする方法について説明します。
前提条件
OpenSSL がインストール済みであること。
SSL 暗号化 機能は、次のエディションとバージョンの ApsaraDB RDS for MySQL インスタンスでのみ利用できます。
High-availability Edition : 8.4、8.0、5.7、5.6
Cluster Edition : 8.4、8.0、5.7
Basic Edition : 8.4、8.0、5.7
強制 SSL 暗号化 機能は、次の要件を満たすインスタンスでのみ利用できます。
メジャーエンジンバージョン : 8.4、8.0、または 5.7
製品エディション : Basic Edition、High-availability Edition、または Cluster Edition
マイナーエンジンバージョンが 20241130 以降であること。
Linux システムでは、通常 OpenSSL はプリインストールされています。
Windows システムでは、OpenSSL パッケージをダウンロードしてインストールする必要があります。
注意事項
SSL 暗号化を有効にすると、CPU 使用率と読み書きのレイテンシーが増加します。
SSL 暗号化を有効にした後、暗号化を適用するには、既存の接続を再確立する必要があります。
カスタム証明書の設定や変更、または SSL 暗号化を無効にすると、データベースインスタンスが再起動します。再起動には約 3 分かかります。この操作は、オフピーク時に実行することを推奨します。
強制 SSL 暗号化を有効にすると、クライアントとデータベースプロキシは SSL 暗号化を使用してのみ ApsaraDB RDS for MySQL インスタンスに接続できます。暗号化されていない接続は拒否されます。
操作手順
ステップ 1: カスタム証明書の取得
サーバーの秘密鍵または自己署名証明書の秘密鍵を生成する際、パスワードで暗号化しないでください。暗号化した場合、SSL 暗号化を有効にできません。
以下の手順では、CentOS を例として使用します。
お使いのオペレーティングシステムが Windows の場合、openssl コマンドは CentOS システム上の openssl コマンドと同様に設定されます。cp コマンドは手動でのコピー操作に、vim コマンドは手動でのファイル編集操作に置き換えてください。
自己署名 CA 証明書 (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) (server.csr) とサーバーの秘密鍵 (server.key) を生成します。
ApsaraDB RDS for MySQL インスタンスのカスタム証明書は、現在 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は一例です。保護したいエンドポイントに置き換えてください。インスタンスのエンドポイントを表示するには、「インスタンスのエンドポイントとポートの表示と管理」をご参照ください。CSR ファイル (server.csr) を生成すると、次のパラメーターを設定するように求められます。
Parameter
Description
Example
Country name
The two-letter ISO country code.
CN
State or province name
The name of the province.
Zhejiang
Locality name
The name of the city.
Hangzhou
Organization name
The name of the company.
Alibaba
Organizational unit name
The name of the department.
Aliyun
Common name
The domain name for which you request the SSL certificate. This is configured in the openssl.cnf file and no input is required.
-
Email address
Leave this field blank.
-
A challenge password
Leave this field blank.
-
An optional company name
Leave this field blank.
-
サーバー証明書 (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 : 自己署名 CA 証明書。
server-ca.key : 自己署名 CA 証明書の秘密鍵。
ステップ 2: カスタム証明書を使用した SSL の有効化
カスタム証明書を設定した後、インスタンスの [ステータス] は約 3 分間、[SSL 設定を変更中] に変わります。インスタンスのステータスが [実行中] に変わるまで待ってから、続行してください。
RDS インスタンス リストに移動します。上部メニューで、対象インスタンスのリージョンを選択し、インスタンス ID をクリックします。
左側メニューで、 を選択します。
カスタム証明書 で、[カスタム証明書を使用] を選択します。無効 の横にあるスイッチをクリックして SSL を有効にします。サーバー証明書 と サーバー証明書の秘密鍵 の内容を入力します。強制暗号化を有効にするかどうか を有効にするかどうかを選択し、決定 をクリックします。
パラメーター
値
サーバー証明書
「ステップ 1: カスタム証明書の取得」 で取得した server.crt ファイルの内容を貼り付けます。内容は、 -----BEGIN CERTIFICATE----- 行から -----END CERTIFICATE----- 行までをすべて含める必要があります。
サーバーの秘密鍵
「ステップ 1: カスタム証明書の取得」 で取得した server.key ファイルの内容を貼り付けます。内容は、 -----BEGIN PRIVATE KEY----- 行から -----END PRIVATE KEY----- 行までをすべて含める必要があります。
強制 SSL 暗号化
ビジネス要件に基づいてこの機能を有効または無効にします。
この機能は、マイナーエンジンバージョンが 20241130 以降の MySQL 8.4、8.0、または 5.7 を実行するインスタンスで利用できます。
強制 SSL 暗号化を有効にすると、クライアントとデータベースプロキシは SSL 暗号化を使用してのみ ApsaraDB RDS for MySQL インスタンスに接続できます。暗号化されていない接続は拒否されます。
ステップ 3: データベースへの接続
SSL 経由で ApsaraDB RDS for MySQL インスタンスにリモート接続できます。詳細については、「ApsaraDB RDS for MySQL インスタンスへの SSL 経経由での接続」をご参照ください。
ステップ 4: (任意)証明書の更新
MySQL 8.0 を除くすべての MySQL バージョンで、証明書を更新するとインスタンスが再起動します。慎重に操作してください。
証明書を更新するには、SSL ページで [SSL の更新] をクリックし、新しいサーバー証明書とサーバーの秘密鍵を入力します。
ステップ 5: (任意)SSL 暗号化の無効化
SSL 暗号化を無効にすると、インスタンスが再起動します。慎重に操作してください。
[SSL 暗号化] ページの [有効] の横にあるスイッチをクリックして、SSL 暗号化を無効にします。
よくある質問
Q: カスタム証明書の有効期限が切れた場合はどうすればよいですか。
A: カスタム証明書の有効期間はユーザーが定義します。証明書の有効期限が切れる前に、システムから通知が届きます。ワークロードの中断を避けるため、通知を受け取ったら速やかに証明書を更新してください。