第14章 IdM レプリカでまだ有効期限が切れていない場合の Web サーバーと LDAP サーバーの証明書の置き換え
Identity Management (IdM) システム管理者は、IdM サーバー上で実行されている Web (または httpd) および LDAP (または Directory) サービスで使用される証明書を手動で置き換えることができます。証明書の有効期限が近づいており、certmonger ユーティリティーによる自動更新が設定されていない場合、または証明書が外部認証局 (CA) によって署名されている場合は、手動での置き換えが必要になることがあります。
この例では、server.idm.example.com IdM サーバー上で実行されているサービスの証明書をインストールする方法を説明します。外部 CA から証明書を取得する。
httpd および LDAP サービスの証明書は、IdM サーバーごとに異なる鍵ペアとサブジェクト名を持っています。そのため、各 IdM サーバー上で証明書を個別に更新する必要があります。
前提条件
-
IdM サーバーが複製合意を持つトポロジー内の少なくとも 1 つの他の IdM レプリカで、Web および LDAP 証明書は引き続き有効です。これは、
ipa-server-certinstallコマンドの前提条件です。このコマンドは、他の IdM レプリカと通信するためにTLS接続を必要とします。証明書が無効な場合、接続を確立できず、コマンドは失敗します。その場合は、Web サーバーと LDAP サーバーの証明書が IdM デプロイメント全体で期限切れになった場合の置き換え を参照してください。 -
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重要サブジェクトは同じだが秘密鍵が異なる CA 証明書をインストールしようとすると、
サブジェクト公開鍵情報の不一致というメッセージが表示されて失敗します。これは、IdM が重複するサブジェクトを禁止しているためです。残りの証明書チェーンを追加の 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/root-ca.crt証明書チェーンからの証明書を使用して、ローカルの IdM 証明書データベースを更新します。
# ipa-certupdate
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'CSR を外部 CA に送信します。このプロセスは、外部 CA として使用するサービスにより異なります。CA が証明書に署名したら、証明書を IdM サーバーにインポートします。
IdM サーバーで、Apache Web サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
# ipa-server-certinstall -w --pin=password new.key new.crt上記のコマンドでは、以下のようになります。
-
-wオプションは、Web サーバーに証明書をインストールすることを指定します。 -
--pinオプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Managerパスワードを入力します。 LDAP サーバーの古い秘密鍵および証明書を、新しい鍵と、新しく署名した証明書に置き換えます。
# ipa-server-certinstall -d --pin=password new.key new.cert上記のコマンドでは、以下のようになります。
-
-dオプションは、LDAP サーバーに証明書をインストールすることを指定します。 -
--pinオプションは、秘密鍵を保護するパスワードを指定します。
-
-
プロンプトが表示されたら、
Directory Managerパスワードを入力します。 httpdサービスを再起動します。# systemctl restart httpd.serviceDirectoryサービスを再起動します。# systemctl restart dirsrv@IDM.EXAMPLE.COM.serviceサーバー上で subCA が削除または置き換えられている場合は、クライアントを更新します。
# ipa-certupdate