28.2.4. CRL を生成するサーバーの変更
マスター CA は権威 CA です。これにはルート CA 署名キーがあり、トポロジー内の他のサーバーおよびレプリカに配布される CRL を生成します。通常、最初にインストールされた IdM サーバーは、PKI 階層でマスター CA を所有します。後続のレプリカデータベースはすべて、ipa-replica-install の実行時にそのマスターデータベースから直接クローン (またはコピー) さます。
注記
マスターサーバーを置き換える唯一の理由は、マスターサーバーがオフラインの場合に限られます。CRL を発行し、最終的に証明書チェックを検証することができるルート CA が必要です。
「IdM サーバーおよびレプリカの概要」の説明にあるように、すべてのサーバーとレプリカが連携してデータを共有します。この配置は サーバートポロジー です。
サーバー (ipa-server-install で作成したもの) は、認証局サービスをホストするためにほぼ常に作成されます。[9].これらは 元 の CA サービスです。レプリカが (ipa-replica-install) 作成されるとき、これは既存サーバーの設定に基づきます。レプリカは CA サービスをホス できます が、これは必須ではありません。
作成後、サーバーとレプリカはサーバートポロジーのピアと等しくなります。これらはすべて読み取り/書き込みデータマスターであり、マルチマスターレプリケーションを介して情報を相互に複製します。CA をホストするサーバーおよびレプリカも、トポロジーのピアと同等です。IdM クライアントに証明書と鍵をすべて発行し、それぞれで情報を複製できます。
サーバーとレプリカの違いは、CRL を発行する IdM インスタンスのみです。
最初のサーバーがインストールされると、CRL を発行するよう設定されます。CA 設定ファイル
/var/lib/pki-ca/conf/CS.cfg
では、CRL 生成が有効にされています。
ca.crl.issuingPointId.enableCRLCache=true ca.crl.issuingPointId.enableCRLUpdates=true ca.listenToCloneModifications=false
すべてのレプリカは、マスター CA を CRL 情報のソースとして参照し、CRL 設定を無効にします。
ca.crl.issuingPointId.enableCRLUpdates=false
CRL を発行する IdM トポロジーにあるインスタンスが 1 つ必要です。元のサーバーがオフラインまたは使用を停止する場合は、レプリカをオフラインにするか、または使用停止するように設定する必要があります。レプリカをマスターサーバーにプロモート すると、設定が変更され、CRL を発行し、ルート CA として機能できるようになります。
CRL 生成をサーバーからレプリカに移動するには、まず元のマスター CA を廃止します。
- マスター CA サーバーであるサーバーインスタンスを特定します。CRL の生成 および 更新操作は、いずれも同じ CA サーバーによって処理されます。したがって、マスター CA は、certmonger で追跡されている renew_ca_cert 証明書を利用して識別できます。
[root@server ~]# getcert list -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" | grep post-save post-save command: /usr/lib64/ipa/certmonger/renew_ca_cert "subsystemCert cert-pki-ca"
- 元のマスター CA で、元の CA 証明書の追跡を無効にします。
[root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca" Request "20131127184547" removed. [root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca" Request "20131127184548" removed. [root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" Request "20131127184549" removed. [root@server ~]# getcert stop-tracking -d /etc/httpd/alias -n ipaCert Request "20131127184550" removed.
- 元のマスター CA を再設定し、新規マスター CA から更新された証明書を取得します。
- 更新ヘルパーを certmonger ディレクトリーにコピーし、適切なパーミッションを設定します。
[root@server ~]# cp /usr/share/ipa/ca_renewal /var/lib/certmonger/cas/ca_renewal [root@server ~]# chmod 0600 /var/lib/certmonger/cas/ca_renewal
- SELinux 設定を更新します。
[root@server ~]# /sbin/restorecon /var/lib/certmonger/cas/ca_renewal
- certmonger を再起動します。
[root@server ~]# service certmonger restart
- CA が証明書を取得するようになっているかチェックします。これは CA 設定で出力されます。
[root@server ~]# getcert list-cas ... CA 'dogtag-ipa-retrieve-agent-submit': is-default: no ca-type: EXTERNAL helper-location: /usr/libexec/certmonger/dogtag-ipa-retrieve-agent-submit
- CA 証明書データベースの PIN を取得します。
[root@server ~]# grep internal= /var/lib/pki-ca/conf/password.conf
- 外部更新の証明書 certmonger 追跡を設定します。これには、データベース PIN が必要です。
[root@server ~]# getcert start-tracking -c dogtag-ipa-retrieve-agent-submit -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/restart_pkicad "auditSigningCert cert-pki-ca"' -T "auditSigningCert cert-pki-ca" -P database_pin New tracking request "20131127184743" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-retrieve-agent-submit -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/restart_pkicad "ocspSigningCert cert-pki-ca"' -T "ocspSigningCert cert-pki-ca" -P database_pin New tracking request "20131127184744" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-retrieve-agent-submit -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/restart_pkicad "subsystemCert cert-pki-ca"' -T "subsystemCert cert-pki-ca" -P database_pin New tracking request "20131127184745" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-retrieve-agent-submit -d /etc/httpd/alias -n ipaCert -C /usr/lib64/ipa/certmonger/restart_httpd -T ipaCert -p /etc/httpd/alias/pwdfile.txt New tracking request "20131127184746" added.
- 元のマスター CA で CRL 生成を停止します。
- CA サービスを停止します。
[root@server ~]# service pki-cad stop
- CA 設定ファイルを開きます。
[root@server ~]# vim /var/lib/pki-ca/conf/CS.cfg
ca.crl.MasterCRL.enableCRLCache
およびca.crl.MasterCRL.enableCRLUpdates
パラメーターの値を false に変更して CRL 生成を無効にします。ca.crl.MasterCRL.enableCRLCache=false ca.crl.MasterCRL.enableCRLUpdates=false
- CA サービスを起動します。
[root@server ~]# service pki-cad start
- CRL 要求を新規マスターにリダイレクトするように Apache を設定します。
- CA プロキシー設定を開きます。
[root@server ~]# vim /etc/httpd/conf.d/ipa-pki-proxy.conf
- 最後の行で RewriteRule のコメントを解除します。
RewriteRule ^/ipa/crl/MasterCRL.bin https://server.example.com/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC]
- Apache を再起動します。
[root@server ~]# service httpd restart
次に、レプリカを新しいマスターとして設定します。
- CA の証明書の追跡を停止して、更新設定を変更します。クローンとして、CA はマスターから更新された証明書を取得するよう設定されています。マスター CA として、更新した証明書を発行します。
[root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca" Request "20131127163822" removed. [root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca" Request "20131127163823" removed. [root@server ~]# getcert stop-tracking -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" Request "20131127163824" removed. [root@server ~]# getcert stop-tracking -d /etc/httpd/alias -n ipaCert Request "20131127164042" removed.
- CA 証明書データベースの PIN を取得します。
[root@server ~]# grep internal= /var/lib/pki-ca/conf/password.conf
- 更新エージェントプロファイルを使用して certmonger で追跡される証明書を設定します。
[root@server ~]# getcert start-tracking -c dogtag-ipa-renew-agent -d /var/lib/pki-ca/alias -n "auditSigningCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/renew_ca_cert "auditSigningCert cert-pki-ca"' -P database_pin New tracking request "20131127185430" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-renew-agent -d /var/lib/pki-ca/alias -n "ocspSigningCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/renew_ca_cert "ocspSigningCert cert-pki-ca"' -P database_pin New tracking request "20131127185431" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-renew-agent -d /var/lib/pki-ca/alias -n "subsystemCert cert-pki-ca" -B /usr/lib64/ipa/certmonger/stop_pkicad -C '/usr/lib64/ipa/certmonger/renew_ca_cert "subsystemCert cert-pki-ca"' -P database_pin New tracking request "20131127185432" added. [root@server ~]# getcert start-tracking -c dogtag-ipa-renew-agent -d /etc/httpd/alias -n ipaCert -C /usr/lib64/ipa/certmonger/renew_ra_cert -p /etc/httpd/alias/pwdfile.txt New tracking request "20131127185433" added.
- 新規マスター CA が CRL を生成するように設定します。
- CA サービスを停止します。
[root@server ~]# service pki-cad stop
- CA 設定ファイルを開きます。
[root@server ~]# vim /var/lib/pki-ca/conf/CS.cfg
ca.crl.MasterCRL.enableCRLCache
およびca.crl.MasterCRL.enableCRLUpdates
パラメーターの値を true に変更して、CRL 生成を有効にします。ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCRLUpdates=true
- CA サービスを起動します。
[root@server ~]# service pki-cad start
- Apache を設定してリダイレクト CRL 要求を無効にします。クローンとして、すべての CRL 要求は元のマスターにルーティングされました。新規マスターとして、このインスタンスは CRL リクエストに応答します。
- CA プロキシー設定を開きます。
[root@server ~]# vim /etc/httpd/conf.d/ipa-pki-proxy.conf
- 最後の行で RewriteRule 引数をコメントアウトします。
#
RewriteRule ^/ipa/crl/MasterCRL.bin https://server.example.com/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC] - Apache を再起動します。
[root@server ~]# service httpd restart
[9]
唯一の例外は、インストール時に CA なしのインストールでシステム証明書を手動で読み込まれる場合です。それ以外の場合は、Dogtag Certificate System インスタンスがインストールされ、設定されています。