すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:カスタム証明書を使用してSSL暗号化を有効にする

最終更新日:Sep 27, 2024

ApsaraDB RDS for MySQLインスタンスにSSL暗号化機能を設定する場合、Alibaba Cloudによって管理されている証明書とカスタム証明書を使用できます。 このトピックでは、カスタム証明書を使用してRDSインスタンスのSSL暗号化を有効にする方法について説明します。

前提条件

  • OpenSSLがインストールされています。

  • RDSインスタンスは、次の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

説明
  • Linuxを使用する場合は、OpenSSLがプリインストールされます。 OpenSSLを再度インストールする必要はありません。

  • Windowsを使用する場合は、OpenSSLパッケージを入手してOpenSSLをインストールする必要があります。

使用上の注意

  • SSL暗号化を有効にすると、CPU使用率と読み取りおよび書き込みのレイテンシが増加します。

  • SSL暗号化を有効にした後、SSL暗号化を有効にするには、既存の接続を閉じて新しい接続を確立する必要があります。

  • カスタム証明書を設定または変更するか、SSL暗号化を無効にすると、RDSインスタンスが再起動されます。 再起動には約3分かかります。 オフピーク時に操作を実行することを推奨します。

設定プロセス

手順1: カスタム証明書の取得

警告

サーバー証明書または自己署名証明書の秘密鍵を作成するときは、秘密鍵にパスワードを追加しないでください。 秘密鍵にパスワードを追加すると、SSL暗号化を有効にできません。

証明書の生成方法を説明する例としてCentOSを使用します。

説明

Windowsオペレーティングシステムを使用している場合は、CentOSオペレーティングシステムで使用しているのと同じ方法で、次のopensslコマンドを実行できます。 さらに、cpおよびvimコマンドを使用する代わりに、コマンドを手動でコピーまたは編集する必要があります。

  1. 自己署名証明書と自己署名証明書の秘密鍵を作成します。 自己署名証明書は、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"
  2. 証明書署名要求 (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

    州または省名

    都道府県

    浙江省

    ローカリティ名

    市町村

    杭州

    組織名

    企業の名前。

    Alibaba

    組織単位名

    部門の名前。

    Aliyun

    共通名

    証明書を使用して保護するドメイン名。 ドメイン名はopenssl.cn fファイルで指定します。 このパラメーターを設定する必要はありません。

    -

    電子メールアドレス

    このパラメーターを設定する必要はありません。

    -

    チャレンジパスワード

    このパラメーターを設定する必要はありません。

    -

    オプションの会社名

    このパラメーターを設定する必要はありません。

    -

  3. サーバー証明書を作成します。 サーバー証明書は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インスタンスが [実行中] 状態になるまで待ってから、以降の操作を続行します。

  1. ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択し、RDSインスタンスを見つけて、インスタンスIDをクリックします。

  2. 表示されるページの左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。 表示されるページで、[SSL] タブをクリックします。

  3. [カスタム証明書] をクリックします。 次に、[無効] の横にあるスイッチをクリックします。 表示されるダイアログボックスで、[サーバー証明書] および [サーバー証明書の秘密鍵] パラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    サーバー証明書

    作成したserver.crtファイルの内容を入力します。 詳細については、「手順1: カスタム証明書の作成」をご参照ください。 ----- BEGIN CERTIFICATE ----- から ----- END CERTIFICATE ----- までのすべてのコンテンツがこのフィールドにコピーされていることを確認します。

    サーバー証明書の秘密鍵

    作成したserver.keyファイルの内容を入力します。 詳細については、「手順1: カスタム証明書の作成」をご参照ください。 ----- BEGIN PRIVATE KEY ----- から ----- END PRIVATE KEY ----- までのすべてのコンテンツがこのフィールドにコピーされていることを確認します。

設定が完了すると、次の図のような情報が表示されます。

ステップ3: クライアントからRDSインスタンスに接続する

SSL経由でRDSインスタンスに接続できます。 詳細については、「SSL経由でApsaraDB RDS For MySQLインスタンスに接続する」をご参照ください。

ステップ4: (オプション) 作成したカスタム証明書を更新する

説明

カスタム証明書を更新すると、MySQL 8.0を使用しない限り、RDSインスタンスは再起動されます。 作業は慎重に行ってください。

カスタム証明書を更新する場合は、[SSL] タブの [SSLの更新] をクリックします。 表示されるダイアログボックスで、サーバー証明書とサーバー証明書の秘密鍵のパラメーターを設定します。

ステップ5: (オプション) SSL暗号化を無効にする

説明

この操作により、RDSインスタンスの再起動がトリガーされます。 作業は慎重に行ってください。

SSL暗号化を無効にする場合は、SSLタブの [有効] の横にあるスイッチをクリックします。

よくある質問

カスタム証明書の有効期限が切れた場合はどうすればよいですか。

ApsaraDB RDS for MySQLのカスタム証明書の有効期間はユーザー定義です。 証明書の有効期限が切れる前にシステムが通知を送信します。 通知を受け取った後、ワークロードへの影響を防ぐために、証明書の有効期間をできるだけ早く更新することを推奨します。