SSL経由でクラスターに接続するクライアントをクラスターで認証する場合は、クラスターにクライアント認証局 (CA) 証明書を設定する必要があります。 このトピックでは、クラスターでクライアントCA証明書を設定する方法について説明します。
前提条件
クラスタは、リビジョンバージョンが2.0.14.21.0以降のPolarDB for PostgreSQL (Compatible with Oracle) 2.0を実行します。 クラスターがこれらのバージョンのいずれかを実行している場合にのみ、プライマリエンドポイントでカスタム証明書またはクライアントCA証明書を設定できます。
クラスターのPolarProxyバージョンは2.3.51以降です。 PolarProxyがこれらのバージョンのいずれかを実行する場合にのみ、デフォルトのクラスターエンドポイントまたはカスタムクラスターエンドポイントでカスタム証明書またはクライアントCA証明書を設定できます。
クラスターでは、クラウド証明書またはカスタム証明書を使用してSSLを設定します。 詳細については、「クラウド証明書を使用したSSLの設定」または「カスタム証明書の設定」をご参照ください。
OpenSSLがインストールされています。
説明LinuxオペレーティングシステムにはOpenSSLが提供されます。 Linuxオペレーティングシステムを使用している場合は、OpenSSLをインストールする必要はありません。 Windowsオペレーティングシステムを使用している場合は、OpenSSLソフトウェアパッケージをダウンロードしてインストールする必要があります。
使用上の注意
クライアントCA証明書を設定した後、SSLを有効にするために既存の接続を閉じて再確立する必要があります。
クライアントCA証明書の設定、クライアント証明書失効リストファイルの変更、クライアントCA証明書の無効化、またはクライアント証明書失効リストファイルの無効化を行うと、一時的な接続が発生します。 オフピーク時に操作を実行することを推奨します。
手順1: クライアント証明書の作成
この例では、Community Enterprise Operating System (CentOS) が使用されています。 Windowsオペレーティングシステムを使用している場合は、CentOSシステムでコマンドを設定するのと同じ方法でopensslコマンドを設定できます。
自己署名証明書 (ca1.crt) と自己署名証明書 (ca1.key) の秘密鍵を作成します。
openssl req -new -x509 -days 3650 -nodes -out ca1.crt -keyout ca1.key -subj "/CN=root-ca1"クライアント証明書署名要求 (client.csr) とクライアント証明書署名要求 (client.key) の秘密鍵を作成します。
openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<クライアントのユーザー名>"説明上記のコマンドで、-subjパラメーターに続く共通名 (CN) パラメーターを、データベースクライアントがクラスターに接続するために使用するアカウントのユーザー名に設定します。
クライアント証明書 (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 4つのファイルが生成されます。
client.crt: クライアント証明書。
client.key: クライアント証明書の秘密鍵。
ca1.crt: 自己署名証明書。
ca1.key: 自己署名証明書の秘密鍵。
ステップ2: クライアントCA証明書の設定
クライアントCA証明書を設定すると、クラスターのステータスが [SSLの変更] に変わります。 クラスターのステータスが [実行中] に変わるまで待ってから続行します。 クライアントCA証明書を設定するには、次の手順を実行します。
PolarDB コンソールにログインします。
[クラスター] ページの左上隅で、管理するクラスターがデプロイされているリージョンを選択します。
クラスターを見つけて、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、[設定と管理] > [セキュリティ] を選択します。
[SSL設定] タブで、クライアントCA証明書を設定するプライマリエンドポイントまたはクラスターエンドポイントを選択し、[クライアントCA証明書の設定] をクリックします。
[クライアントCA証明書の設定] ダイアログボックスで、[ステータス] パラメーターを [オン] に設定し、自己署名証明書の内容 (ca1.crt) をボックスにコピーして、[OK] をクリックします。
説明自己署名証明書の取得方法については、「手順1: クライアント証明書の作成」をご参照ください。

ステップ3: クライアントからクラスターに接続する
SSL経由で PolarDB for PostgreSQL (Compatible with Oracle) クラスターに接続できます。 詳細については、「」「SSL経由でPolarDB for PostgreSQL (Oracle互換) クラスターに接続する」をご参照ください。
ステップ4: (オプション) クライアント証明書失効リストファイルの設定
不要になったクライアント証明書を取り消すことができます。 クライアント証明書を取り消すと、対応するクライアントはクラスターにアクセスできなくなります。
クライアント証明書失効リストファイルを設定すると、クラスターの実行ステータスが [SSLの変更] に変わります。 クラスターの実行ステータスが [実行中] に変わるまで待ってから続行します。 クライアント証明書失効リストファイルを設定するには、次の手順を実行します。
設定ファイルを作成します。
touch /etc/pki/CA/index.txt echo 1000 > /etc/pki/CA/crlnumber説明Windowsオペレーティングシステムを使用している場合は、次の手順を実行します。
OpenSSLインストールディレクトリ \binにCAフォルダを作成します。
CAフォルダにindex.txtという名前のファイルを作成します。
CLIで次のコマンドを実行します。
echo 1000 > <OpenSSL installation directory>\bin\CA\crlnumberC:\Program Files\Common Files\SSL \ディレクトリのopenssl.cn fファイルを変更します。
# Find the [ CA_default ] configuration item. dir = "<OpenSSL installation directory>\\bin\\CA"
クライアント証明書 (client.crt) を取り消します。
openssl ca -revoke client.crt -cert ca1.crt -keyfile ca1.key説明上記のコマンドには、自己署名証明書 (ca1.crt) と自己署名証明書の秘密鍵 (ca1.key) が必要です。 ファイルの取得方法については、「手順1: クライアント証明書の作成」をご参照ください。
クライアント証明書失効リストファイル (client.crl) を作成します。
openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key[設定と管理] > [セキュリティ] を選択します。 [SSL設定] タブで、クライアント証明書失効リストファイルを設定するプライマリエンドポイントまたはクラスターエンドポイントを選択し、[クライアントの失効ファイルの設定] をクリックします。
[クライアントの失効ファイルの設定] ダイアログボックスで、[ステータス] パラメーターを [オン] に設定し、証明書失効リストファイル (Client. crl) の内容をダイアログボックスにコピーして、[OK] をクリックします。

ステップ5: (オプション) クライアントCA証明書を無効にする
クライアントCA証明書を無効にすると、クラスターのステータスが [SSLの変更] に変わります。 クラスターのステータスが [実行中] に変わるまで待ってから続行します。
プライマリエンドポイントまたはクラスターエンドポイントでクライアントCA証明書を無効にする場合は、[SSL設定] ページに移動し、プライマリエンドポイントまたはクラスターエンドポイントを見つけて、[クライアントCA証明書の設定] をクリックします。 [クライアントCA証明書の設定] ダイアログボックスで、[無効化] をクリックし、[OK] をクリックします。

ステップ6: (オプション) クライアント証明書失効リストファイルを無効にする
クライアント証明書失効リストファイルを無効にすると、クラスターのステータスが [SSLの変更] に変わります。 ステータスが [実行中] に変わるまで待ってから続行します。
プライマリまたはクラスターエンドポイントでクライアント証明書失効リストファイルを無効にする場合は、[SSL設定] ページに移動し、プライマリまたはクラスターエンドポイントを見つけて、[クライアントの失効ファイルの設定] をクリックします。 [クライアントの失効ファイルの設定] ダイアログボックスで、[無効化] をクリックし、[OK] をクリックします。
