Red Hat Training
A Red Hat training course is available for RHEL 8
第71章 IdM デプロイメント全体で期限切れになった Web サーバーと LDAP サーバーの証明書を置き換える
Identity Management (IdM) は、以下のサービス証明書を使用します。
-
LDAP (または
Directory
) サーバー証明書 -
Web (または
httpd
) サーバー証明書 - PKINIT 証明書
CA を使用しない IdM デプロイメントでは、certmonger
はデフォルトで IdM サービス証明書を追跡したり、その有効期限を通知したりしません。IdM システム管理者がこれらの証明書の通知を手動で設定しない場合、または証明書を追跡するように certmonger
を設定しない場合、証明書は予告なしに期限切れになります。
以下の手順に従って、server.idm.example.com IdM サーバーで実行している httpd
および LDAP サービスの期限切れの証明書を手動で置き換えます。
HTTP および LDAP サービス証明書は、異なる IdM サーバーで異なるキーペアとサブジェクト名を持ちます。したがって、各 IdM サーバーで個別に証明書を更新する必要があります。
前提条件
- トポロジー内の すべての IdM レプリカで、HTTP および LDAP 証明書の有効期限が切れています。そうでない場合は、Web サーバーと LDAP サーバーの証明書が IdM レプリカで期限切れになっていない場合の置き換え を参照してください。
-
IdM サーバーとレプリカへの
root
アクセス権がある。 -
Directory Manager
パスワードを把握している。 次のディレクトリーとファイルのバックアップを作成しました:
-
/etc/dirsrv/slapd-IDM-EXAMPLE-COM/
-
/etc/httpd/alias
-
/var/lib/certmonger
-
/var/lib/ipa/certs/
-
手順
新しい証明書の署名に同じ CA を使用していない場合、またはすでにインストールされている CA 証明書が無効になっている場合は、ローカルデータベース内の外部 CA に関する情報を、外部 CA の有効な CA 証明書チェーンを含むファイルで更新します。.このファイルは、PEM および DER 証明書、PKCS#7 証明書チェーン、PKCS#8、生の秘密鍵、および PKCS#12 形式で受け入れられます。
ca_certificate_chain_file.crt で利用可能な証明書を追加の CA 証明書として IdM にインストールします。
# ipa-cacert-manage install ca_certificate_chain_file.crt
ca_certicate_chain_file.crt からの証明書を使用して、ローカルの IdM 証明書データベースを更新します。
# ipa-certupdate
httpd
および LDAP の証明書を要求します。OpenSSL
ユーティリティーを使用して、IdM インスタンスで実行している Apache Web サーバーの証明書署名要求 (CSR) をサードパーティー CA に作成します。$ openssl req -new -newkey rsa:2048 -nodes -keyout /var/lib/ipa/private/httpd.key -out /tmp/http.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:HTTP/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
新しい秘密鍵の作成は任意です。元の秘密鍵がまだある場合は、
openssl req
コマンドで-in
オプションを使用して、要求を読み取る入力ファイル名を指定できます。OpenSSL
ユーティリティーを使用して、IdM インスタンスで実行している LDAP サーバーの証明書署名要求 (CSR) をサードパーティー CA に作成します。$ openssl req -new -newkey rsa:2048 -nodes -keyout ~/ldap.key -out /tmp/ldap.csr -addext 'subjectAltName = DNS:server.idm.example.com, otherName:1.3.6.1.4.1.311.20.2.3;UTF8:ldap/server.idm.example.com@IDM.EXAMPLE.COM' -subj '/O=IDM.EXAMPLE.COM/CN=server.idm.example.com'
新しい秘密鍵の作成は任意です。元の秘密鍵がまだある場合は、
openssl req
コマンドで-in
オプションを使用して、要求を読み取る入力ファイル名を指定できます。-
CSR、/tmp/http.csr および tmp/ldap.csr を外部 CA に送信し、
httpd
の証明書と LDAP の証明書を取得します。このプロセスは、外部 CA として使用するサービスにより異なります。
httpd
の証明書をインストールします。# cp /path/to/httpd.crt /var/lib/ipa/certs/
LDAP 証明書を NSS データベースにインストールします。
[オプション] 利用可能な証明書を一覧表示します。
# certutil -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Server-Cert u,u,u
デフォルトの証明書のニックネームは Server-Cert ですが、別の名前が適用された可能性があります。
前の手順の証明書のニックネームを使用して、古い無効な証明書を NSS データベース (
NSSDB
) から削除します。# certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n 'Server-Cert' -f /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
NSSDB
へのインポートプロセスを容易にするために、PKCS12 ファイルを作成します。# openssl pkcs12 -export -in ldap.crt -inkey ldap.key -out ldap.p12 -name Server-Cert
作成した PKCS#12 ファイルを
NSSDB
にインストールします。# pk12util -i ldap.p12 -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -k /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
新しい証明書が正常にインポートされたことを確認します。
# certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
httpd
サービスを再起動します。# systemctl restart httpd.service
Directory
サービスを再起動します。# systemctl restart dirsrv@IDM-EXAMPLE-COM.service
-
すべての IdM レプリカで前のすべての手順を実行します。これは、レプリカ間の
TLS
接続を確立するための前提条件です。 新しい証明書を LDAP ストレージに登録します。
Apache サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
# ipa-server-certinstall -w --pin=password /var/lib/ipa/private/httpd.key /var/lib/ipa/certs/httpd.crt
上記のコマンドでは、以下のようになります。
-
-w
オプションは、Web サーバーに証明書をインストールすることを指定します。 -
--pin
オプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Manager
パスワードを入力します。 LDAP サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
# ipa-server-certinstall -d --pin=password /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ldap.key /path/to/ldap.crt
上記のコマンドでは、以下のようになります。
-
-d
オプションは、LDAP サーバーに証明書をインストールすることを指定します。 -
--pin
オプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Manager
パスワードを入力します。 httpd
サービスを再起動します。# systemctl restart httpd.service
Directory
サービスを再起動します。# systemctl restart dirsrv@IDM-EXAMPLE-COM.service
- 影響を受ける他のすべてのレプリカで、前の手順のコマンドを実行します。
関連情報
IdM で動作するように証明書形式を変換する * man ipa-server-certinstall (1)
* How do I manually renew Identity Management (IPA) certificates on RHEL 8 after they have expired?(CA のない IPA)