7.8. SubCA の作成と設定 (パート II)
このセクションでは、OCSP インスタンスがインストールされていることを前提として、SubCA のインストールを続行します。これは、SubCA のロールユーザー証明書と TLS サーバー証明書に、OCSP インスタンスを指す AIA 拡張が含まれるようにするためです。
7.8.1. ブートストラップ以外のエージェントユーザー証明書の発行
このセクションでは、SubCA のブートストラップ管理者証明書を使用して、PKI エージェントのロールの特権に制限されている証明書 rsa_SubCA_AgentV (エージェントユーザー jsmith 用) を発行します。この証明書は、今後の CMC 証明書要求の承認に使用できます。
前提条件
- root ユーザーとして rhcs10.example.com にログインしている。
pki エージェントユーザーのエージェント証明書の作成
-
「エージェントユーザー」 で説明されている手順に従って、pki エージェントユーザー (jsmith など) に対して発行されたエージェント証明書 (この例では rsa_SubCA_AgentV) を取得します。注: そのパートの冒頭で説明したように、単に製品をテスト/評価する場合は、便宜上、root 以外のユーザー (jsmith など) を使用する代わりに、同じ証明書データベースで rsa_SubCA_AgentV の CSR を生成できます。root としてブートストラップユーザー (
/root/.dogtag/pki_rsa_bootstrap/certs_db
) の証明書を使用し、さらに証明書を同じ certdb にインポートして使用します。それを選択した場合は、以下の手順に従って user/certs_db に置き換えてください。
検証:
インストールされている SubCA のステータスを表示します。
pki-server status rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server status rhcs10-RSA-SubCA
Secure Agent、Admin、および pkiconsole の URL を書き留めます。
新しい SubCA 管理者証明書が正常に追加されたことを確認するために健全性テストを実行します。
まず、「CRL 公開のテスト」 で作成した user1 証明書のシリアル番号を見つけます。
pki -p 31443 -h rhcs10.example.com ca-cert-find --uid user1
Copy to clipboardCopied# pki -p 31443 -h rhcs10.example.com ca-cert-find --uid user1
SubCA エージェントの認証情報を使用して、
user1
の証明書を保留にします。pki -d /home/jsmith/certs_db -n rsa_SubCA_AgentV -p 31443 -h rhcs10.example.com ca-cert-hold <user1 serial number>
Copy to clipboardCopied# pki -d /home/jsmith/certs_db -n rsa_SubCA_AgentV -p 31443 -h rhcs10.example.com ca-cert-hold <user1 serial number>
-
rhcs10.example.com
で SubCA の EE ページにアクセスできることを確認します。
7.8.2. 一時 DS 証明書を置き換える (SubCA)
SubCA のインストールが完了すると、Directory Server の公式 SSL サーバー証明書を発行して、一時的な証明書を置き換えることができます。Directory Server 証明書の証明書署名要求 (CSR) を作成し、SubCA エージェントユーザー (rsa_SubCA_AgentV) の認証情報を使用してこの要求を CA に送信します。
必ず DS サーバーの FQDN (例: cn=rhds11.example.com
/ host=rhds11.example.com
) を使用してください。
実際の DS 証明書の CSR を生成する
rhds11.example.com で、実際の DS 証明書の PKCS10 証明書署名要求を生成します。
DS を停止します。
dsctl slapd-CC-RSA-SubCA-LDAP stop
Copy to clipboardCopied# dsctl slapd-CC-RSA-SubCA-LDAP stop
certutil
ツールを使用して CSR を生成します。certutil -R -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr -z /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/noise.txt
Copy to clipboardCopied# certutil -R -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr -z /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/noise.txt
重要上記で取得した
Server-Cert-subca.csr
出力ファイルを編集して、"Begin Certificate Request" の前の数行を削除します。以下に例を示します。
vi /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr
Copy to clipboardCopied# vi /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr
CSR ファイルは、"-----BEGIN CERTIFICATE REQUEST-----" の行で始まり、"-----END CERTIFICATE REQUEST-----" の行で終わる必要があります。
DS を起動します。
dsctl slapd-CC-RSA-SubCA-LDAP start
Copy to clipboardCopied# dsctl slapd-CC-RSA-SubCA-LDAP start
Server-Cert-subca.csr
ファイルを CA が存在するシステムにリモートコピーします。以下に例を示します。scp /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.csr
Copy to clipboardCopied# scp /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.csr
実際の DS 証明書を発行する
rhcs10.example.com で、実際の SSL サーバー証明書を発行します。
CMC 要求を生成します。
CMCRequest
設定ファイルを作成します。以下に例を示します。vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.cfg
Copy to clipboardCopied# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.cfg
### numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 ### input: full path for the PKCS10 request or CRMF request, ### The content must be in Base-64 encoded format. ### Multiple files are supported. They must be separated by a space. ### For input on a different host, specify where to find the CSR. input=/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.csr ### output: full path for the CMC request in binary format ### For output on a different host, specify the destination. output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.req ### tokenname: name of the token where the agent signing cert can be found (default is internal) tokenname=internal ### nickname: nickname for the agent certificate that will be used to sign the CMC full request. nickname=PKI Bootstrap Administrator for RSA-SubCA ### dbdir: directory for cert8.db, key3.db and secmod.db dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### password: password for cert8.db that stores the agent certificate password=SECret.123 ### format: request format, either pkcs10 or crmf format=pkcs10
Copy to clipboardCopied### numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 ### input: full path for the PKCS10 request or CRMF request, ### The content must be in Base-64 encoded format. ### Multiple files are supported. They must be separated by a space. ### For input on a different host, specify where to find the CSR. input=/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.csr ### output: full path for the CMC request in binary format ### For output on a different host, specify the destination. output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.req ### tokenname: name of the token where the agent signing cert can be found (default is internal) tokenname=internal ### nickname: nickname for the agent certificate that will be used to sign the CMC full request. nickname=PKI Bootstrap Administrator for RSA-SubCA ### dbdir: directory for cert8.db, key3.db and secmod.db dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### password: password for cert8.db that stores the agent certificate password=SECret.123 ### format: request format, either pkcs10 or crmf format=pkcs10
CMCRequest
コマンドを使用してリクエストを生成します。CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.cfg
Copy to clipboardCopied# CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.cfg cert/key prefix = path = /root/.dogtag/pki_rsa_bootstrap/certs_db CryptoManger initialized token internal logged in... got signerCert: PKI Bootstrap Administrator for RSA-SubCA createPKIData: begins k=0 createPKIData: format: pkcs10 useSharedSecret is false... signData: begins: getPrivateKey: got signing cert signData: got signer privKey createSignedData: begins getSigningAlgFromPrivate: begins. getSigningAlgFromPrivate: found signingKeyType=RSA getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest createSignedData: digest created for pkidata createSignedData: digest algorithm =RSASignatureWithSHA256Digest createSignedData: building cert chain signData: signed request generated. getCMCBlob: begins getCMCBlob: generating signed data The CMC enrollment request in base-64 encoded format: . . . Output omitted . . . The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.req
CMC 要求を送信します。
HttpClient
設定ファイルを作成します。以下に例を示します。vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-subca.cfg
Copy to clipboardCopied# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-subca.cfg
### host: host name for the http server host=rhcs10.example.com ### port: port number port=31443 ### secure: true for secure connection, false for nonsecure connection secure=true ### input: full path for the enrollment request, the content must be in binary format input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.req ### output: full path for the response in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.resp ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal) ### This parameter will be ignored if secure=false tokenname=internal ### dbdir: directory for cert8.db, key3.db and secmod.db ### This parameter will be ignored if secure=false dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### clientmode: true for client authentication, false for no client authentication ### This parameter will be ignored if secure=false clientmode=true ### password: password for cert8.db ### This parameter will be ignored if secure=false and clientauth=false password=SECret.123 ### nickname: nickname for client certificate ### This parameter will be ignored if clientmode=false nickname=PKI Bootstrap Administrator for RSA-SubCA ### servlet: servlet name servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCserverCertWithCRLDP
Copy to clipboardCopied### host: host name for the http server host=rhcs10.example.com ### port: port number port=31443 ### secure: true for secure connection, false for nonsecure connection secure=true ### input: full path for the enrollment request, the content must be in binary format input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.req ### output: full path for the response in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.resp ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal) ### This parameter will be ignored if secure=false tokenname=internal ### dbdir: directory for cert8.db, key3.db and secmod.db ### This parameter will be ignored if secure=false dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### clientmode: true for client authentication, false for no client authentication ### This parameter will be ignored if secure=false clientmode=true ### password: password for cert8.db ### This parameter will be ignored if secure=false and clientauth=false password=SECret.123 ### nickname: nickname for client certificate ### This parameter will be ignored if clientmode=false nickname=PKI Bootstrap Administrator for RSA-SubCA ### servlet: servlet name servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCserverCertWithCRLDP
注記EC 証明書の場合は、次のように設定して ECC プロファイルを使用します。
servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCECserverCertWithCRLDP
Copy to clipboardCopiedservlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCECserverCertWithCRLDP
HttpClient
コマンドを使用して要求を送信します。HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-subca.cfg
Copy to clipboardCopied# HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-subca.cfg Total number of bytes read = 3096 after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key client cert is not null handshake happened writing to socket ##Response Headers begin## HTTP/1.1 200 Content-Type: application/pkcs7-mime Content-Length: 2492 Date: Tue, 29 Sep 2020 15:20:21 GMT Connection: close ##end## . . . Output omitted . . . The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.resp
CMC 応答を処理します。
CMCResponse
を使用して応答を処理し、チェーン内のすべての証明書を PEM 形式で個別に表示します。重要"-v" オプションを指定して CMCResponse を実行すると、チェーン内の各証明書の PEM が Cert:0、Cert:1 などとして返されます。この出力では、すべての PEM の下に、チェーン内の各証明書も整った出力形式で表示されます。証明書は決まった順序で表示されないため、チェーン内での位置を確認するには、各 "Certificate" の下にある "Subject:" を確認する必要があります。対応する PEM が上と同じ位置に表示されます。
CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.resp -v
Copy to clipboardCopied# CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-subca_pkcs10.resp -v Cert:0 ... === Cert:1 ... === Cert:2 ... === Certificates: Certificate: Data: Version: v3 Serial Number: 0xA383694 Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-SubCA Validity: Not Before: Tuesday, April 5, 2022 8:41:36 AM EDT America/New_York Not After: Monday, March 25, 2024 8:41:36 AM EDT America/New_York Subject: CN=rhds11.example.com . . . Output omitted . . . Certificate: Data: Version: v3 Serial Number: 0x5C8FAD4 Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA Validity: Not Before: Tuesday, April 5, 2022 8:36:21 AM EDT America/New_York Not After: Saturday, April 5, 2042 8:36:21 AM EDT America/New_York Subject: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA . . . Output omitted . . . Certificate: Data: Version: v3 Serial Number: 0x80296C3 Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-SubCA Validity: Not Before: Tuesday, April 5, 2022 8:39:43 AM EDT America/New_York Not After: Friday, April 5, 2041 8:39:43 AM EDT America/New_York Subject: CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA . . . Output omitted . . . Number of controls is 1 Control #0: CMCStatusInfoV2 OID: {1 3 6 1 5 5 7 7 25} BodyList: 1 Status: SUCCESS CMC Full Response.
新しい
Server-Cert
DS 証明書を、適切な名前でブートストラップ証明書ディレクトリー (例:/root/.dogtag/pki_rsa_bootstrap/certs_db/
) 内のファイルに保存します。.pem
ファイルは、ヘッダー-----BEGIN CERTIFICATE-----
で開始し、フッター-----END CERTIFICATE-----
で終了する必要があります。以下に例を示します。vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.pem
Copy to clipboardCopied# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.pem
この場合の
Server-Cert-subca.pem
は、SubCA の内部データベースとして機能する Directory Server インスタンスの新しいServer-Cert
証明書です。注記RootCA の署名証明書は、次のコマンドからの出力と一致する必要があります。
certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -a
Copy to clipboardCopied# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -a
新しい
Server-Cert
証明書を rhds11.example.com にリモートコピーします。以下に例を示します。scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/
Copy to clipboardCopied# scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-subca.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/
一時 DS 証明書を置き換える
rhds11.example.com で、一時的な DS 証明書を実際の DS 証明書に置き換えます。
SubCA の LDAP インスタンスを停止します。
dsctl slapd-CC-RSA-SubCA-LDAP stop
Copy to clipboardCopied# dsctl slapd-CC-RSA-SubCA-LDAP stop
dirsrv
ディレクトリーの内容をバックアップディレクトリーに保存します。cp -r /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-SubCA-LDAP/
Copy to clipboardCopied# cp -r /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-SubCA-LDAP/
古い DS 証明書を削除します。
certutil -D -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -n "Server-Cert"
Copy to clipboardCopied# certutil -D -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -n "Server-Cert"
certutil -D -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -n "Self-Signed-CA"
Copy to clipboardCopied# certutil -D -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -n "Self-Signed-CA"
新しく作成した DS 証明書とそのチェーン内の CA 証明書を 1 つずつインポートします。以下に例を示します。
certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pem
Copy to clipboardCopied# certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pem
certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pem
Copy to clipboardCopied# certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pem
certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.pem
Copy to clipboardCopied# certutil -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/Server-Cert-subca.pem
証明書をリスト表示します。
certutil -L -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/
Copy to clipboardCopied# certutil -L -d /etc/dirsrv/slapd-CC-RSA-SubCA-LDAP/ Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI CA Signing Cert - rhcs10-RSA-RootCA CT,C,C CA Signing Cert - rhcs10-RSA-SubCA CT,C,C Server-Cert u,u,u
DS を起動します。
dsctl slapd-CC-RSA-SubCA-LDAP start
Copy to clipboardCopied# dsctl slapd-CC-RSA-SubCA-LDAP start
LDAP サーバーが稼働していることをテストして確認します (別のシステムの場合は、CA ホストでもテストします)。
ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:7636 -b "dc=example,dc=com" -w SECret.123
Copy to clipboardCopied# ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:7636 -b "dc=example,dc=com" -w SECret.123
別のシステムでテストする場合は、次のように CA 証明書チェーンを
ldapsearch
コマンドの前に追加します。LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:7636 -b "dc=example,dc=com" -w SECret.123
Copy to clipboardCopied# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:7636 -b "dc=example,dc=com" -w SECret.123
SubCA インスタンスの一時 DS 証明書の信頼を削除する
rhcs10.example.com で、SubCA インスタンスデータベースから一時 DS 証明書を削除します。
SubCA を停止します。
pki-server stop rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server stop rhcs10-RSA-SubCA
証明書をリスト表示します。
certutil -L -d /var/lib/pki/rhcs10-RSA-SubCA/alias/
Copy to clipboardCopied# certutil -L -d /var/lib/pki/rhcs10-RSA-SubCA/alias/ Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI DS temp CA certificate CT,C,C ...
nssdb から一時証明書を削除します。
certutil -D -d /var/lib/pki/rhcs10-RSA-SubCA/alias/ -n "DS temp CA certificate"
Copy to clipboardCopied# certutil -D -d /var/lib/pki/rhcs10-RSA-SubCA/alias/ -n "DS temp CA certificate"
証明書失効チェックを有効にする
Directory Server 証明書の置き換えが完了しているため、証明書失効チェックを有効にすると、CA の起動時に CRL 配布ポイントが検出されます。
証明書失効チェックを有効にするには、それぞれの
/var/lib/pki/rhcs10-RSA-SubCA/conf/server.xml
ファイルで以下を実行します。enableOCSP
またはenableRevocationCheck
をtrue
に設定します。enableOCSP=true or enableRevocationCheck=true
Copy to clipboardCopiedenableOCSP=true or enableRevocationCheck=true
さらに、次の 2 つのパラメーターと割り当てられた値を削除します。
ocspResponderURL ocspResponderCertNickname
Copy to clipboardCopiedocspResponderURL ocspResponderCertNickname
CA の
CS.cfg
ファイルを編集し、以下をfalse
に設定して、従来の失効チェック方法を無効にします。auths.revocationChecking.enabled=false
Copy to clipboardCopiedauths.revocationChecking.enabled=false
SubCA インスタンスを起動します。
pki-server start rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server start rhcs10-RSA-SubCA
CRL 配布ポイントの検証
プロファイル caCMCserverCertWithCRLDP
を使用して下位 CA のディレクトリーサーバーの server-cert
を置き換えたため、起動時に CA が内部ディレクトリーサーバーとの接続を開始するときに、CRL 配布ポイントが CA によって参照されるようになります。
このセクションでは、CA の CRL 配布ポイントの設定を確認するための基本的な方法を説明します (「CRL 配布ポイントのサポートを設定する」)。
ファイルベースの CRL の公開を確認します。
ls -l /var/lib/pki/rhcs10-RSA-SubCA/crl
Copy to clipboardCopied# ls -l /var/lib/pki/rhcs10-RSA-SubCA/crl total 4 -rw-r--r--. 1 pkiuser pkiuser 573 Jun 21 18:43 ServerCertCRL-20240621-175339.der lrwxrwxrwx. 1 pkiuser pkiuser 67 Jun 21 18:43 ServerCertCRL.crl -> /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL-20240621-175339.der
CRL の内容を表示し、検証します。
BtoA /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.crl /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.bin PrettyPrintCrl /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.bin
Copy to clipboardCopied# BtoA /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.crl /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.bin # PrettyPrintCrl /var/lib/pki/rhcs10-RSA-SubCA/crl/ServerCertCRL.bin Certificate Revocation List: Data: Version: v2 Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA This Update: Friday, June 21, 2024 5:53:39 PM EDT America/New_York Next Update: Friday, June 21, 2024 9:00:00 PM EDT America/New_York Revoked Certificates: Extensions: Identifier: CRL Number - 2.5.29.20 Critical: no Number: 4 Signature: Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Signature: 9E:8A:E1:38:C4:B8:EF:E0:34:2A:92:2D:96:F2:7C:DF: 71:F8:4E:8E:EF:AD:C1:CA:65:86:BD:27:45:1C:7E:DD: 32:E6:16:94:83:E9:83:3F:24:1F:A1:89:74:7E:70:B6: 04:20:36:7F:45:9C:A9:6C:7D:63:37:A3:9F:FD:F2:E1: CE:64:FA:D8:75:82:09:42:AB:B6:83:73:40:1A:C7:98: 53:BC:65:81:3C:C3:71:D2:12:F9:A6:EA:00:80:B7:D8: A9:56:37:CD:CF:B9:59:64:B1:7F:31:39:16:11:1C:DC: 93:64:87:F9:97:CC:EF:58:23:92:77:FC:2E:22:3A:57: AA:D7:7B:D1:1E:2B:3F:AE:FF:17:1A:62:C4:0C:A0:1E: 0D:68:00:C4:68:4C:B5:27:4D:4B:DB:33:17:AC:8C:DF: 8D:FE:77:EE:B9:B1:17:55:8F:42:A2:5C:84:1B:6F:B8: 82:A6:F6:6E:E9:10:37:50:94:C4:33:D3:3C:18:22:7C: D6:6E:5E:89:34:E1:55:F5:80:F6:8F:B9:49:AE:A0:86: 2E:B5:8A:B1:00:8C:B0:4C:81:37:A6:BA:D1:7D:77:81: F3:68:6C:16:D6:0A:BA:E7:F6:65:4F:44:A1:5B:31:0F: C2:F7:F9:FE:DC:55:BA:38:F2:AE:AA:34:9E:D0:7D:64: E1:90:68:E2:68:DE:C9:D0:90:26:56:6B:3A:74:AF:E8: CA:55:AE:E8:A1:DF:81:D1:E4:C8:46:DD:E3:12:6D:46: BE:A5:F2:C4:12:4E:15:D5:0F:30:10:3D:77:62:A2:41: F6:85:77:6F:EF:5C:78:0C:FE:F1:C5:4B:C5:C4:69:B5: 84:0A:7B:4B:E3:D7:39:9A:66:43:AB:E9:DD:25:8E:EA: 58:2F:AD:1D:D4:CD:1A:EE:50:73:B2:0C:F1:29:67:B3: 2D:49:E1:54:95:51:9A:36:82:C3:D2:3F:32:7E:73:20: 86:0F:28:6F:CC:89:9F:DF:4A:A9:64:CD:30:4A:80:EE
CRL ファイル (ソフトリンクファイル ServerCertCRL.crl
と、それに関連付けられた der ファイル) は削除しないでください。
CRL ファイルが見つからない、または誤って /var/lib/pki/rhcs10-RSA-SubCA/crl/
から削除されているため CA が起動できない状況が発生した場合は、以下の手順に従って CRL ファイルを再生成します。
CA サービスを停止します。
pki-server stop rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server stop rhcs10-RSA-SubCA
-
CA の
server.xml
で、enableRevocationCheck
またはenableOCSP
パラメーターをfalse
に設定します (現在true
に設定されている場合)。 -
CA の
CS.cfg
でca.crl.ServerCertCRL.publishOnStart=
パラメーターをtrue
に設定します。 欠落している CRL ファイルを再生成するには、CA サービスを開始します。
pki-server start rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server start rhcs10-RSA-SubCA
- CRL ファイルを復元した後、CA サービスをもう一度停止します。
-
CA の
CS.cfg
でca.crl.ServerCertCRL.publishOnStart=
パラメーターをfalse
に戻します。 -
CA の
server.xml
でenableRevocationCheck
またはenableOCSP
パラメーターをtrue
に設定します。 - 変更を適用するには、CA サービスを再度開始します。
これらの手順に従うことで、欠落している CRL ファイルが正常に復元され、CA が正しく起動されます。
CA が機能していることを確認する
CA に証明書をリスト表示します。
pki -p 31443 ca-cert-find
Copy to clipboardCopied# pki -p 31443 ca-cert-find
ブートストラップ管理ユーザーとして、SubCA にユーザーをリストします。
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 -n "PKI Bootstrap Administrator for RSA-SubCA" ca-user-find
Copy to clipboardCopied# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 -n "PKI Bootstrap Administrator for RSA-SubCA" ca-user-find
7.8.3. SubCA pkiconsole タイムアウト時間の延長
rhcs10.example.com の場合:
SubCA を停止します。
pki-server stop rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server stop rhcs10-RSA-SubCA
/var/lib/pki/rhcs10-RSA-SubCA/conf/server.xml
を編集して、タイムアウトの時間を増やします。<Connector name="Secure" port="31443" … connectionTimeout="3000000"
Copy to clipboardCopied<Connector name="Secure" port="31443" … connectionTimeout="3000000"
SubCA を開始します。
pki-server start rhcs10-RSA-SubCA
Copy to clipboardCopied# pki-server start rhcs10-RSA-SubCA
7.8.5. ランダムなシリアル番号の確認
すべてのサブシステム証明書にランダムなシリアル番号があることを確認します。
- SubCA の EE ページにアクセスし、証明書をリスト表示して、ランダムなシリアル番号があることを確認します。
または、次のコマンドを使用してランダムなシリアル番号を確認することもできます。
pki -p 31443 ca-cert-find | grep -i serial
Copy to clipboardCopied# pki -p 31443 ca-cert-find | grep -i serial
7.8.6. 他の SubCA ロールユーザーの作成
先ほど、agent ロールユーザーと rsa_SubCA_AgentV の証明書を作成しました。
作成していない場合は、「PKI ロールユーザーの作成」 の手順に従って、admin および audit ロール用の他の単一ロールユーザーを作成できます。
7.8.7. クライアント認証を使用した SubCA pkiconsole へのログイン
-
sslclientauth
を使用して SubCA を設定し、「クライアント認証を使用した pkiconsole ログイン設定」 の説明に従ってロールユーザー証明書をインポートします。 ロールユーザーのクライアント認証証明書を使用して
pkiconsole
にログインします。pkiconsole -d <home .redhat-idm-console dir> -n <client cert> https://rhcs10.example.com:31443/ca
Copy to clipboardCopied# pkiconsole -d <home .redhat-idm-console dir> -n <client cert> https://rhcs10.example.com:31443/ca
そして、リストからロールユーザー証明書のニックネームを選択します (例 rsa_SubCA_AdminV)。コンソールへのログインは成功するはずです。
7.8.8. インストール後の設定
追加の RHCS インスタンスをインストールする場合は、次のセクションに進んでください。必要なすべての RHCS インスタンスのインストールが完了したら、「インストール後の設定」 にアクセスして追加セットアップを完了します。