7.2. CMC の取り消し
CMS (CMC) 登録を介した Certificate Management と同様に、CMC 失効により、ユーザーは失効クライアントをセットアップし、一致する subjectDN
属性を使用するエージェント証明書またはユーザー証明書のいずれかを使用して失効要求に署名できます。これにより、ユーザーは署名済み要求を Certificate Manager に送信できます。
または、Shared Secret Token メカニズムを使用して CMC の失効を認証することもできます。詳細は、CMC 共有シークレット機能の有効化 を参照してください。
ユーザーまたはエージェントが要求に署名するかどうか、または Shared Secret Token が使用されているかどうかに関係なく、Certificate Manager は、有効な失効要求を受信すると、証明書を自動的に失効させます。
Certificate System は、CMC 失効要求用に以下のユーティリティーを提供します。
-
CMCRequest
。詳細は、「CMCRequest
を使用した証明書の取り消し」 を参照してください。 -
CMCRevoke
。詳細は、「CMCRevoke
を使用した証明書の取り消し」 を参照してください。
Red Hat は、CMCRequest
ユーティリティーを使用して、失効要求の生成を推奨します。これは、CMCRevoke
よりも多くのオプションを提供するためです。
7.2.1. CMCRequest
を使用した証明書の取り消し
CMCRequest
を使用して証明書を取り消すには、以下を実行します。
以下の内容で、
/home/user_name/cmc-request.cfg
などの CMC 失効要求の設定ファイルを作成します。#numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 #output: full path for the CMC request in binary format output=/home/user_name/cmc.revoke.userSigned.req #tokenname: name of token where user signing cert can be found #(default is internal) tokenname=internal #nickname: nickname for user signing certificate which will be used #to sign the CMC full request. nickname=signer_user_certificate #dbdir: directory for cert9.db, key4.db and pkcs11.txt dbdir=/home/user_name/.dogtag/nssdb/ #password: password for cert9.db which stores the user signing #certificate and keys password=myPass #format: request format, either pkcs10 or crmf. format=pkcs10 ## revocation parameters revRequest.enable=true revRequest.serial=45 revRequest.reason=unspecified revRequest.comment=user test revocation revRequest.issuer=issuer revRequest.sharedSecret=shared_secret
#numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 #output: full path for the CMC request in binary format output=/home/user_name/cmc.revoke.userSigned.req #tokenname: name of token where user signing cert can be found #(default is internal) tokenname=internal #nickname: nickname for user signing certificate which will be used #to sign the CMC full request. nickname=signer_user_certificate #dbdir: directory for cert9.db, key4.db and pkcs11.txt dbdir=/home/user_name/.dogtag/nssdb/ #password: password for cert9.db which stores the user signing #certificate and keys password=myPass #format: request format, either pkcs10 or crmf. format=pkcs10 ## revocation parameters revRequest.enable=true revRequest.serial=45 revRequest.reason=unspecified revRequest.comment=user test revocation revRequest.issuer=issuer revRequest.sharedSecret=shared_secret
Copy to Clipboard Copied! CMC 要求を作成します。
CMCRequest /home/user_name/cmc-request.cfg
# CMCRequest /home/user_name/cmc-request.cfg
Copy to Clipboard Copied! コマンドが成功すると、
CMCRequest
ユーティリティーは、要求設定ファイルのoutput
パラメーターで指定されたファイルに CMC 要求を保存します。/home/user_name/cmc-submit.cfg
などの設定ファイルを作成します。このファイルは、後で CMC 失効要求を CA に送信します。作成されたファイルに以下の内容を追加します。#host: host name for the http server host=>server.example.com #port: port number port=8443 #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=/home/user_name/cmc.revoke.userSigned.req #output: full path for the response in binary format output=/home/user_name/cmc.revoke.userSigned.resp #tokenname: name of token where SSL client authentication certificate #can be found (default is internal) #This parameter will be ignored if secure=false tokenname=internal #dbdir: directory for cert9.db, key4.db and pkcs11.txt #This parameter will be ignored if secure=false dbdir=/home/user_name/.dogtag/nssdb/ #clientmode: true for client authentication, false for no client #authentication. This parameter will be ignored if secure=false clientmode=true #password: password for cert9.db #This parameter will be ignored if secure=false and clientauth=false password=password #nickname: nickname for client certificate #This parameter will be ignored if clientmode=false nickname=signer_user_certificate
#host: host name for the http server host=>server.example.com #port: port number port=8443 #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=/home/user_name/cmc.revoke.userSigned.req #output: full path for the response in binary format output=/home/user_name/cmc.revoke.userSigned.resp #tokenname: name of token where SSL client authentication certificate #can be found (default is internal) #This parameter will be ignored if secure=false tokenname=internal #dbdir: directory for cert9.db, key4.db and pkcs11.txt #This parameter will be ignored if secure=false dbdir=/home/user_name/.dogtag/nssdb/ #clientmode: true for client authentication, false for no client #authentication. This parameter will be ignored if secure=false clientmode=true #password: password for cert9.db #This parameter will be ignored if secure=false and clientauth=false password=password #nickname: nickname for client certificate #This parameter will be ignored if clientmode=false nickname=signer_user_certificate
Copy to Clipboard Copied! 重要CMC 失効要求が署名されている場合は、
secure
およびclientmode
パラメーターをtrue
に設定し、さらにnickname
パラメーターを入力します。要求に署名したユーザーに応じて、
HttpClient
の設定ファイルのservlet
パラメーターを適切に設定する必要があります。エージェントが要求に署名した場合は、以下を設定します。
servlet=/ca/ee/ca/profileSubmitCMCFull
servlet=/ca/ee/ca/profileSubmitCMCFull
Copy to Clipboard Copied! ユーザーが要求に署名した場合は、以下を設定します。
servlet=/ca/ee/ca/profileSubmitSelfSignedCMCFull
servlet=/ca/ee/ca/profileSubmitSelfSignedCMCFull
Copy to Clipboard Copied!
CMC 要求を送信します。
HttpClient /home/user_name/cmc-submit.cfg
# HttpClient /home/user_name/cmc-submit.cfg
Copy to Clipboard Copied!
CMCRequest
を使用して証明書を取り消す方法の詳細は、CMCRequest(1)
の man ページを参照してください。
7.2.2. CMCRevoke
を使用した証明書の取り消し
CMC 失効ユーティリティー CMCRevoke
は、エージェントの証明書を使用して失効要求に署名するために使用されます。このユーティリティーは、必要な情報 (証明書のシリアル番号、発行者名、失効理由) を渡して取り消す証明書を識別し、次に失効を実行する CA エージェントを識別するための必要な情報 (証明書のニックネームと証明書のあるデータベース) を渡します。
CMCRevoke
を有効にする方法の詳細は、計画、インストール、デプロイメントのガイド の Web ユーザーインターフェイスの CMCRevoke の有効化 を参照してください。
証明書が取り消される理由は、次のいずれかです (数値は、CMCRevoke
に渡される値です)。
-
0
- 指定無し -
1
- キーが侵害されました -
2
- CA キーが侵害されました -
3
- 従業員の所属が変更になりました -
4
- 証明書が置き換えられました -
5
- 運用停止 -
6
- 証明書が保留中です
CMCRevoke のテスト
既存の証明書の CMC 失効要求を作成します。
CMCRevoke -d /path/to/agent-cert-db -n nickname -i issuerName -s serialName -m reason -c comment
CMCRevoke -d /path/to/agent-cert-db -n nickname -i issuerName -s serialName -m reason -c comment
Copy to Clipboard Copied! たとえば、エージェント証明書を含むディレクトリーが
~jsmith/.mozilla/firefox/
、証明書のニックネームがAgentCert
、証明書のシリアル番号が22
の場合、コマンドは次のとおりですCMCRevoke -d "~jsmith/.mozilla/firefox/" -n "ManagerAgentCert" -i "cn=agentAuthMgr" -s 22 -m 0 -c "test comment"
CMCRevoke -d "~jsmith/.mozilla/firefox/" -n "ManagerAgentCert" -i "cn=agentAuthMgr" -s 22 -m 0 -c "test comment"
Copy to Clipboard Copied! 注記引用符で囲まれたスペースを含む値を囲みます。
重要引数とその値の間には空白を入れないでください。たとえば、26 のシリアル番号は -s 26 ではなく -s26 となります。
エンドエンティティーを開きます。
https://server.example.com:8443/ca/ee/ca
https://server.example.com:8443/ca/ee/ca
Copy to Clipboard Copied! - Revocation タブを選択します。
- メニューの CMC Revoke リンクを選択します。
-
CMCRevoke
からの出力をテキストエリアにペーストします。 -
ペーストしたコンテンツから
-----BEGIN NEW CERTIFICATE REQUEST-----
および----END NEW CERTIFICATE REQUEST-----
を削除します。 - をクリックします。
- 返されたページで、正しい証明書が取り消されたことを確認できるはずです。