第20章 IdM レプリカでまだ有効期限が切れていない場合の Web サーバーと LDAP サーバーの証明書の置き換え
Identity Management (IdM) システム管理者は、IdM サーバー上で実行されている Web (または httpd) および LDAP (または Directory) サービスで使用される証明書を手動で置き換えることができます。証明書の有効期限が近づいており、certmonger ユーティリティーによる自動更新が設定されていない場合、または証明書が外部認証局 (CA) によって署名されている場合は、手動での置き換えが必要になることがあります。
この例では、server.idm.example.com IdM サーバー上で実行されているサービスの証明書をインストールする方法を説明します。証明書は外部 CA から取得します。
httpd および LDAP サービスの証明書は、IdM サーバーごとに異なる鍵ペアとサブジェクト名を持っています。そのため、各 IdM サーバー上で証明書を個別に更新する必要があります。
前提条件
-
IdM サーバーがレプリカ合意を結んでいるトポロジー内の他の IdM レプリカのうち、少なくとも 1 台で、Web 証明書と LDAP 証明書がまだ有効である。これは、
ipa-server-certinstallコマンドの前提条件です。このコマンドは、他の IdM レプリカと通信するためにTLS接続を必要とします。証明書が無効な場合、接続を確立できず、コマンドは失敗します。その場合は、IdM デプロイメント全体で期限切れになった Web サーバーと LDAP サーバーの証明書を置き換える を参照してください。 -
IdM サーバーへの
rootアクセス権限がある。 -
Directory Managerパスワードを把握している。 -
新しい
httpd/LDAP 証明書が、以前とは異なる外部 CA によって署名されることになる場合は、その外部 CA の CA 証明書チェーンが格納されたファイルへのアクセス権がある。
手順
新しい
httpd/LDAP 証明書が、以前とは異なる CA によって署名されることになる場合は、新しい外部 CA 証明書と外部 CA の CA 証明書チェーン全体を、追加の CA 証明書として IdM にインストールします。証明書が格納されたファイルは、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
OpenSSLユーティリティーを使用して、秘密鍵と証明書署名要求 (CSR) を生成します。openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout new.key -out new.csr -addext "subjectAltName = DNS:server.idm.example.com" -subj '/CN=server.idm.example.com,O=IDM.EXAMPLE.COM'
$ openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout new.key -out new.csr -addext "subjectAltName = DNS:server.idm.example.com" -subj '/CN=server.idm.example.com,O=IDM.EXAMPLE.COM'Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR を外部 CA に送信します。このプロセスは、外部 CA として使用するサービスにより異なります。CA が証明書に署名したら、証明書を IdM サーバーにインポートします。
IdM サーバーで、Apache Web サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
ipa-server-certinstall -w --pin=password new.key new.crt
# ipa-server-certinstall -w --pin=password new.key new.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドでは、以下のようになります。
-
-wオプションは、Web サーバーに証明書をインストールすることを指定します。 -
--pinオプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Managerパスワードを入力します。 LDAP サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
ipa-server-certinstall -d --pin=password new.key new.cert
# ipa-server-certinstall -d --pin=password new.key new.certCopy 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 サーバー上で subCA が削除または置き換えられている場合は、クライアントを更新します。
ipa-certupdate
# ipa-certupdateCopy to Clipboard Copied! Toggle word wrap Toggle overflow