5.6.2. CMC 登録プロセス
CMC を使用して証明書を要求および発行するには、次の一般的な手順を使用します。
- Certificate Signing Request (CSR) を、以下のいずれかの形式で作成します。
- PKCS #10 形式
- Certificate Request Message Format (CRMF) 形式
これらの形式で CSR を作成する方法は、「証明書署名リクエストの作成」 を参照してください。 - 管理証明書をクライアントの NSS データベースにインポートします。以下に例を示します。
- 以下のコマンドを実行して、
.p12
ファイルから管理クライアント証明書を抽出します。$
openssl pkcs12 -in /root/.dogtag/instance/ca_admin_cert.p12 -clcerts -nodes -nokeys -out /root/.dogtag/instance/ca_admin_cert.crt - 『Red Hat Certificate System 計画、インストール、およびデプロイメントのガイド』の『証明書/キー暗号化トークンの管理』セクションに従って、管理クライアント証明書の検証およびインポートを行います。
$
PKICertImport -d . -n "CA Admin - Client Certificate" -t ",," -a -i /root/.dogtag/instance/ca_admin_cert.crt -u C重要CA 管理クライアント証明書をインポートする前に、中間証明書とルート CA 証明書がインポートされていることを確認します。 - 証明書に関連付けられた秘密鍵をインポートします。
$ pki -c password pkcs12-import --pkcs12-file /root/.dogtag/instance/ca_admin_cert.p12 --pkcs12-password-file /root/.dogtag/instance/ca/pkcs12_password.conf
- 以下の内容で、
/home/user_name/cmc-request.cfg
などの CMC 要求用の設定ファイルを作成します。# NSS database directory where CA agent certificate is stored dbdir=/home/user_name/.dogtag/nssdb/ # NSS database password password=password # Token name (default is internal) tokenname=internal # Nickname for signing certificate nickname=subsystem_admin # Request format: pkcs10 or crmf format=pkcs10 # Total number of PKCS10/CRMF requests numRequests=1 # Path to the PKCS10/CRMF request # The content must be in Base-64 encoded format. # Multiple files are supported. They must be separated by space. input=/home/user_name/file.csr # Path for the CMC request output=/home/user_name/cmc-request.bin
詳細は、CMCRequest(1) の man ページを参照してください。 - CMC 要求を作成します。
$ CMCRequest /home/user_name/cmc-request.cfg
コマンドが成功すると、CMCRequest ユーティリティーは、要求設定ファイルのoutput
パラメーターで指定されたファイルに CMC 要求を保存します。 /home/user_name/cmc-submit.cfg
などのHttpClient
の設定ファイルを作成します。このファイルは、後で CMC 要求を CA に送信します。作成されたファイルに以下の内容を追加します。# PKI server host name host=server.example.com # PKI server port number port=8443 # Use secure connection secure=true # Use client authentication clientmode=true # NSS database directory where the CA agent certificate is stored. dbdir=/home/user_name/.dogtag/nssdb/ # NSS database password password=password # Token name (default: internal) tokenname=internal # Nickname of signing certificate nickname=subsystem_admin # Path for the CMC request input=/home/user_name/cmc-request.bin # Path for the CMC response output=/home/user_name/cmc-response.bin
重要nickname
パラメーターで指定された証明書のニックネームは、CMC 要求で以前使用された内容と一致させる必要があります。- 要求する証明書のタイプに応じて、前の手順で作成した設定ファイルに次のパラメーターを追加します。
servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=profile_name
CA 署名証明書の場合の例を以下に示します。servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCcaCert
重要エージェントが次のステップで CMC 要求を送信する場合は、このパラメーターで指定したプロファイルはCMCAuth
認証プラグインを使用する必要があります。ユーザーが作成した登録では、プロファイルはCMCUserSignedAuth
プラグインを使用する必要があります。詳細は、「CMC 認証プラグイン」 を参照してください。 - CMC 要求を CA に送信します。
$ HttpClient /home/user_name/cmc-submit.cfg
- CMC の応答を PKCS #7 証明書チェーンに変換するには、
CMCResponse
ユーティリティーの-i
パラメーターに CMC レスポンスファイルを渡します。以下に例を示します。$ CMCResponse -i /home/user_name/cmc-response.bin -o /home/user_name/cert_chain.crt