第22章 Certificate System 8 から 9 への移行
Red Hat Certificate System は、8.2 から 9 など、古いメジャーバージョンからのインプレースアップグレードをサポートしていません。メジャーバージョンアップグレードの場合は、古いインスタンスを移行する必要があります。さらに、同じ手順を使用して、テストおよびデバッグの目的で実稼働環境のコピーを作成できます。
重要
移行する前に、『Red Hat Certificate System のリリースノート』 をお読みください。
証明書システムの移行には、次の手順が必要です。
22.1. 以前のシステムからのデータのエクスポート
新しい Certificate System インスタンスを設定する前に、現在の認証局 (CA) のデータをエクスポートします。
Certificate System インスタンスを実行するホストで以下を実行します。
- エクスポートするファイルのディレクトリーを作成します。以下に例を示します。
# mkdir -m 770 /tmp/cs_bak/
- 署名証明書とキーをエクスポートします。
- ハードウェアセキュリティーモジュール (HSM) を使用する場合:
- CA 署名証明書のニックネームを一覧表示します。以下に例を示します。
# grep ca.cert.signing.nickname /etc/pki/instance_name/ca/CS.cfg ca.signing.nickname=<nickname>
- CA 証明書をエクスポートします。
# certutil -L -d /var/lib/pki/instance_name/alias/ \ -n <nickname> \ -a > /tmp/cs_bak/ca_signing.crt
キーは HSM に保存され、新しいインスタンスで使用できる必要があります。
- HSM を使用しない場合:
- 設定ファイルで、CA Network Security Service (NSS) データベースを保護するパスワードを見つけて、ファイルに書き込みます。
# grep "internal=" /var/lib/pki/instance_name/conf/password.conf | \ awk -F= '{print $2;}' > /tmp/cs_bak/nss_password.txt
- 次のステップで使用するパスワードを含むファイルを作成します。以下に例を示します。
# echo Secret123 > /tmp/cs_bak/pkcs12_password.txt
- 署名証明書とキーをエクスポートします。
# PKCS12Export -d /var/lib/instance_name/alias/ \ -p /tmp/cs_bak/nss_password.txt \ -w /tmp/cs_bak/pkcs12_password.txt \ -o /tmp/cs_bak/ca.p12
- 証明書署名要求 (CSR) をエクスポートします。
# echo "-----BEGIN NEW CERTIFICATE REQUEST-----" > /tmp/cs_bak/ca_signing.csr # sed -n "/^ca.signing.certreq=/ s/^[^=]*=// p" /etc/pki/instance_name/ca/CS.cfg \ >> /tmp/cs_bak/ca_signing.csr # echo "-----END NEW CERTIFICATE REQUEST-----" >> /tmp/cs_bak/ca_signing.csr
- CA が中間 CA の場合は、NSS データベースからルート CA または証明書チェーンを展開します。
# certutil -L -d /var/lib/pki/instance_name/alias/ -n "root_CA_nickname" \ -a > /tmp/cs_bak/ca_rootca_signing.crt
- エクスポートされたファイルを含むディレクトリーを新しいサーバーにコピーします。以下に例を示します。
# scp -r /tmp/cs_bak/ new_server:/tmp/
- Directory Server で CA データベースの名前を見つけます。
# grep internaldb.database /etc/pki/instance_name/ca/CS.cfg \ internaldb.database=<CS_database_name>
この名前は、後でデータベースをエクスポートするために必要です。
Directory Server インスタンスを実行するホストで以下を実行します。
- ファイルをエクスポートするためのディレクトリーを作成し、Directory Server ユーザーに書き込み権限を付与します。以下に例を示します。
# mkdir -m 770 /tmp/ds_bak/ # chown root:dirsrv /tmp/ds_bak/
注記db2ldif コマンドは、Directory Server ユーザー (dirsrv など) の下で実行されます。したがって、宛先ディレクトリーはこのユーザーが書き込み可能である必要があります。 - Directory Server データベースをエクスポートします。
# db2ldif -Z<DS_instance_name> -n <CS_database_name> -a /tmp/ds_bak/old_ca.ldif
上記の例では、以下のようになります。DS_instance_name
CA が使用する Directory Server インスタンス名です。以下に例を示します。CS_database_name
以前に取得した CA データベースの名前です。
- エクスポートされたファイルを含むディレクトリーを新しいサーバーにコピーします。以下に例を示します。
# scp -r /tmp/ds_bak/ new_server:/tmp/