第21章 IdM デプロイメント全体で期限切れになった Web サーバーと LDAP サーバーの証明書を置き換える
Identity Management (IdM) は、以下のサービス証明書を使用します。
-
LDAP (または
Directory) サーバー証明書 -
Web (または
httpd) サーバー証明書 - PKINIT 証明書
統合認証局 (CA) のない IdM デプロイメントでは、certmonger サービスはデフォルトで IdM サービス証明書を追跡せず、有効期限の警告も提供しません。IdM システム管理者が証明書の追跡を手動で設定していない場合や、通知を設定していない場合、証明書が予告なく期限切れになる可能性があります。
server.idm.example.com IdM サーバー上で実行されている httpd および LDAP サービスの期限切れの証明書を、有効な証明書チェーンに手動で置き換えるには、次の手順を実行してください。
httpd および LDAP サービスの証明書は、IdM サーバーごとに異なる鍵ペアとサブジェクト名を持っています。したがって、各 IdM サーバーで個別に証明書を更新する必要があります。
前提条件
-
トポロジー内の すべて の IdM レプリカで、
httpdおよび LDAP 証明書の有効期限が切れている。そうでない場合は、Web サーバーと LDAP サーバーの証明書が IdM レプリカで期限切れになっていない場合の置き換え を参照してください。 -
IdM サーバーとレプリカへの
rootアクセス権がある。 -
Directory Managerパスワードを把握している。 次のディレクトリーとファイルのバックアップを作成しました:
-
/etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -
/etc/httpd/alias -
/var/lib/certmonger -
/var/lib/ipa/certs/
-
-
新しい
httpd/LDAP 証明書が、以前とは異なる外部 CA によって署名されることになる場合、またはすでにインストールされている CA 証明書が有効でなくなった場合は、その外部 CA の CA 証明書チェーンが格納されたファイルへのアクセス権がある。
手順
-
オプション:
/var/lib/ipa/privateと/var/lib/ipa/passwdsのバックアップを実行します。 新しい証明書の署名に同じ認証局 (CA) を使用していない場合、またはすでにインストールされている CA 証明書が有効ではなくなった場合は、ローカルデータベース内の外部 CA に関する情報を、外部 CA の有効な CA 証明書チェーンを含むファイルで更新します。.このファイルは、PEM および DER 証明書、PKCS#7 証明書チェーン、PKCS#8 および生の秘密鍵、および PKCS#12 形式で受け入れられます。
CA 証明書をインストールします。
ipa-cacert-manage install /path/to/ca.crt
# ipa-cacert-manage install /path/to/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要新しい外部 CA 証明書のサブジェクトが古いものと同じであっても、使用している鍵が異なるために別の証明書となっている場合は、次の条件を満たしている場合にのみ、その証明書を使用できます。
- 2 つの証明書に同一の信頼フラグが付けられている。
- CA が同じニックネームを共有している。
-
証明書にリストされている X509 拡張に、
Authority Key Identifier(AKI) 拡張が含まれている。
残りの証明書チェーンを追加の CA 証明書として IdM にインストールします。
ipa-cacert-manage installコマンドは、ファイル内の最初の証明書しか読み取りません。そのため、完全な CA チェーンをインストールするには、証明書を 1 つずつインストールする必要があります。たとえば、チェーンに 2 つの証明書が含まれている場合は、各証明書を個別のファイルに保存し、ファイルごとにipa-cacert-manage installを個別に実行します。ipa-cacert-manage install /path/to/intermediate-ca.crt
# ipa-cacert-manage install /path/to/intermediate-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa-cacert-manage install /path/to/root-ca.crt
# ipa-cacert-manage install /path/to/root-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書チェーンからの証明書を使用して、ローカルの IdM 証明書データベースを更新します。
ipa-certupdate
# ipa-certupdateCopy to Clipboard Copied! Toggle word wrap Toggle overflow
httpdおよび LDAP の証明書を要求します。OpenSSLユーティリティーを使用して、IdM インスタンスで実行している Apache Web サーバーの証明書署名要求 (CSR) をサードパーティー CA に作成します。新しい秘密鍵の作成は任意です。元の秘密鍵がまだある場合は、
openssl reqコマンドで-inオプションを使用して、要求を読み取る入力ファイル名を指定できます。openssl req -new -nodes -in /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 -new -nodes -in /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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいキーを作成する場合:
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 -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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 -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'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
CSR、/tmp/http.csr および tmp/ldap.csr を外部 CA に送信し、
httpdの証明書と LDAP の証明書を取得します。このプロセスは、外部 CA として使用するサービスにより異なります。
httpdの証明書をインストールします。cp /path/to/httpd.crt /var/lib/ipa/certs/
# cp /path/to/httpd.crt /var/lib/ipa/certs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 証明書を NSS データベースにインストールします。
オプション: 利用可能な証明書をリスト表示します。
certutil -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -L
# certutil -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Server-Cert u,u,uCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの証明書のニックネームは 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
# certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n 'Server-Cert' -f /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow NSSDBへのインポートプロセスを容易にするために、PKCS12 ファイルを作成します。openssl pkcs12 -export -in ldap.crt -inkey ldap.key -out ldap.p12 -name Server-Cert
# openssl pkcs12 -export -in ldap.crt -inkey ldap.key -out ldap.p12 -name Server-CertCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作成した PKCS#12 ファイルを
NSSDBにインストールします。pk12util -i ldap.p12 -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -k /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txt
# pk12util -i ldap.p12 -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -k /etc/dirsrv/slapd-IDM-EXAMPLE-COM/pwdfile.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい証明書が正常にインポートされたことを確認します。
certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
# certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
httpdサービスを再起動します。systemctl restart httpd.service
# systemctl restart httpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Directoryサービスを再起動します。systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
すべての IdM レプリカで前のすべての手順を実行します。これは、レプリカ間の
TLS接続を確立するための前提条件です。 新しい証明書を LDAP ストレージに登録します。
Apache サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
ipa-server-certinstall -w --pin=password /var/lib/ipa/private/httpd.key /var/lib/ipa/certs/httpd.crt
# ipa-server-certinstall -w --pin=password /var/lib/ipa/private/httpd.key /var/lib/ipa/certs/httpd.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドでは、以下のようになります。
-
-wオプションは、Web サーバーに証明書をインストールすることを指定します。 -
--pinオプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Managerパスワードを入力します。 LDAP サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
ipa-server-certinstall -d --pin=password /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ldap.key /path/to/ldap.crt
# ipa-server-certinstall -d --pin=password /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ldap.key /path/to/ldap.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドでは、以下のようになります。
-
-dオプションは、LDAP サーバーに証明書をインストールすることを指定します。 -
--pinオプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Managerパスワードを入力します。 httpdサービスを再起動します。systemctl restart httpd.service
# systemctl restart httpd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Directoryサービスを再起動します。systemctl restart dirsrv@IDM-EXAMPLE-COM.service
# systemctl restart dirsrv@IDM-EXAMPLE-COM.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 影響を受ける他のすべてのレプリカで、前の手順のコマンドを実行します。