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

ApsaraDB RDS:クライアントCA証明書の設定

最終更新日:Jan 16, 2024

このトピックでは、ApsaraDB RDS for PostgreSQLインスタンスにクライアント認証局 (CA) 証明書を設定する方法について説明します。 クラウド証明書またはカスタム証明書を使用してRDSインスタンスのSSL暗号化を有効にする場合、クライアントはRDSインスタンスに接続する前にRDSインスタンスを検証します。 RDSインスタンスでクライアントを検証する場合は、クライアントCA証明書も設定する必要があります。

前提条件

  • SSL暗号化が設定されているか、カスタム証明書が設定されています。 詳細については、「SSL暗号化の設定」または「カスタム証明書の設定」をご参照ください。

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

    説明

    LinuxオペレーティングシステムにはOpenSSLが提供されます。 Linuxオペレーティングシステムを使用している場合は、OpenSSLをインストールする必要はありません。 Windowsオペレーティングシステムを使用する場合は、OpenSSLソフトウェアパッケージをダウンロードしてOpenSSLをインストールする必要があります。 詳細については、Win32/Win64 OpenSSLページをご覧ください。

使用上の注意

  • クライアントCA証明書を設定した後、SSL暗号化を有効にするには、既存の接続を閉じて新しい接続を確立する必要があります。

  • クライアントCA証明書を設定したり、設定したクライアントCA証明書の内容を変更したり、クライアント証明書失効リスト (CRL) を変更したりすると、RDSインスタンスが再起動します。 再起動プロセスには約3分かかります。 これらの操作は、オフピーク時に実行することを推奨します。

手順

手順1: クライアント証明書の作成

この例では、CentOSが使用されます。 Windowsオペレーティングシステムを使用している場合は、CentOSで使用しているのと同じopenssl構成を使用して、opensslコマンドを構成できます。

  1. 自己署名証明書と自己署名証明書の秘密鍵を作成します。 自己署名証明書は、ca1.crtという名前のファイルに保存されます。 秘密鍵は、ca1.keyという名前のファイルに保存されます。

    openssl req -new -x509 -days 3650 -nodes -out ca1.crt -keyout ca1.key -subj "/CN=root-ca1"
  2. 証明書署名要求 (CSR) とクライアント証明書の秘密鍵を作成します。 CSRはクライアント証明書を要求するために使用され、client.csrという名前のファイルに保存されます。 秘密鍵は、client.keyという名前のファイルに保存されます。

    openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<クライアントからのログオンに使用されるユーザー名>
    "
    説明

    上記のコマンドでは、CNパラメーターは-subjパラメーターの後に続きます。 CNパラメーターは、クライアントがRDSインスタンスに接続するために使用するアカウントのユーザー名に設定する必要があります。

  3. クライアント証明書を作成します。 クライアント証明書はclient.crtという名前のファイルに保存されます。

    openssl x509 -req -in client.csr -text -days 365 -CA ca1.crt -CAkey ca1.key -CAcreateserial -out client.crt

上記の設定が完了したら、lsコマンドを実行して、作成されたファイルを表示します。

# ls
ca1.crt ca1.key ca1.srl client.crt client.csr client.key 

次のリストは、ファイルを示しています。

  • client.crt: クライアント証明書を含むファイル

  • client.key: クライアント証明書の秘密鍵を含むファイル

  • ca1.crt: 自己署名証明書を含むファイル

  • ca1.key: 自己署名証明書の秘密鍵を含むファイル

手順2: クライアントCA証明書の設定

説明

クライアントCA証明書を設定すると、RDSインスタンスのステータスが [実行中] から [SSLの変更] に変わります。 約3分後、ステータスは [実行中] に戻ります。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
  2. 表示されるページの左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。 表示されるページで、[SSL] タブをクリックします。

  3. [クライアントCA証明書の有効化] をクリックします。

    启用客户端CA证书

  4. 表示されるダイアログボックスで、ca1.crtファイルの内容を [公開鍵] フィールドにコピーします。 次に、[OK] をクリックします。 ca1.crtファイルの取得方法の詳細については、「手順1: クライアント証明書の作成」をご参照ください。

    填写证书授权机构公钥

手順3: クライアントからRDSインスタンスに接続

SSL接続を介してクライアントからRDSインスタンスに接続できます。 詳細については、「SSL接続を介したApsaraDB RDS For PostgreSQLインスタンスへの接続」をご参照ください。

ステップ4: (オプション) CRLファイルの設定

クライアント証明書が不要になった場合は、クライアント証明書を取り消すことができます。 クライアント証明書が取り消された後、RDSインスタンスはクライアントからのアクセス要求を拒否します。

説明

CRLファイルを設定すると、RDSインスタンスのステータスが [実行中] から [SSLの変更] に変わります。 約3分後、ステータスは [実行中] に戻ります。

  1. 構成ファイルを準備する

    タッチ /etc/pki/CA/index.txt
    エコー1000 > /etc/pki/CA/crlnumber 
    説明

    Windowsオペレーティングシステムを使用する場合は、次の操作を実行する必要があります。

    1. OpenSSL\binディレクトリにCAフォルダを作成します。

    2. CAフォルダにindex.txtという名前のファイルを作成します。

    3. PostgreSQL CLIを使用して次のコマンドを実行します。

      echo 1000 > <OpenSSLのインストールディレクトリ>\bin\CA\crlnumber
    4. C:\Program Files\Common Files\SSL\openssl.cn fファイルを変更します。

      # [CA_default] 設定項目を見つけます。
      
      dir = "<OpenSSLのインストールディレクトリ >\\ bin\\CA" 
  2. client.crtファイルに含まれているクライアント証明書を取り消します。

    openssl ca -revoke client.crt -cert ca1.crt -keyfile ca1.key
    説明

    上記のコマンドには、自己署名証明書と自己署名証明書の秘密鍵が必要です。 ca1.crtファイルには自己署名証明書が含まれ、ca1.keyファイルには自己署名証明書の秘密鍵が含まれる。 詳細については、「手順1: クライアント証明書の作成」をご参照ください。

  3. CRLを作成します。 CRLは、client.crlという名前のファイルに保存されます。

    openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
  4. 表示されるページの左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。 表示されるページで、[SSL] タブをクリックします。

  5. [証明書失効ファイルの有効化] をクリックします。

    启用证书吊销文件

  6. 表示されるダイアログボックスで、client.crlファイルの内容を [Revocation file] フィールドにコピーします。

    填写客户端证书吊销文件

手順5: (オプション) クライアント証明書の更新

説明

この操作により、RDSインスタンスの再起動がトリガーされます。 注意して進めてください。

[SSL] タブで、[クライアントCA証明書のクリア] をクリックします。 次に、[クライアントCA証明書の有効化] をクリックします。clearclientca