5.7. 一括発行の実行
管理者が多数の証明書を同時に送信および生成する必要がある場合があります。Certificate System で提供されるツールの組み合わせを使用して、証明書要求を含むファイルを CA に送信できます。この手順例では、リクエストを生成する PKCS10Client コマンドと、CA に要求を送信する sslget コマンドを使用します。
- このプロセスはスクリプト化されているため、CA (ホスト、ポート) と、認証に使用されるアイテム (エージェント証明書と証明書データベースおよびパスワード) を識別するために複数の変数を設定する必要があります。たとえば、ターミナルでエクスポートして、セッションに以下の変数を設定します。
export d=/var/tmp/testDir export p=password export f=/var/tmp/server.csr.txt export nick="CA agent cert" export cahost=1.2.3.4 export caport=8443
export d=/var/tmp/testDir export p=password export f=/var/tmp/server.csr.txt export nick="CA agent cert" export cahost=1.2.3.4 export caport=8443
Copy to Clipboard Copied! 注記ローカルシステムには、エージェントの証明書を持つ有効なセキュリティーデータベースが必要です。データベースを設定するには、以下を行います。- ブラウザーからエージェントユーザー証明書および鍵をエクスポートまたはダウンロードし、
agent.p12
などのファイルに保存します。 - 必要に応じて、セキュリティーデータベース用の新しいディレクトリーを作成します。
mkdir ${d}
mkdir ${d}
Copy to Clipboard Copied! - 必要な場合は、新規セキュリティーデータベースを作成します。
certutil -N -d ${d}
certutil -N -d ${d}
Copy to Clipboard Copied! - Certificate System インスタンスを停止します。
systemctl stop pki-tomcatd@instance_name.service
systemctl stop pki-tomcatd@instance_name.service
Copy to Clipboard Copied! - pk12util を使用して証明書をインポートします。
pk12util -i /tmp/agent.p12 -d ${d} -W p12filepassword
# pk12util -i /tmp/agent.p12 -d ${d} -W p12filepassword
Copy to Clipboard Copied! 手順に成功すると、コマンドは以下の出力を出力します。pk12util: PKCS12 IMPORT SUCCESSFUL
pk12util: PKCS12 IMPORT SUCCESSFUL
Copy to Clipboard Copied! - Certificate System インスタンスを起動します。
systemctl start pki-tomcatd@instance_name.service
systemctl start pki-tomcatd@instance_name.service
Copy to Clipboard Copied!
- 2 つの追加の変数を設定する必要があります。要求の処理に使用される CA プロファイルを識別する変数、およびプロファイルフォームの情報を提供するための post ステートメントの送信に使用される変数。
export post="cert_request_type=pkcs10&xmlOutput=true&profileId=caAgentServerCert&cert_request=" export url="/ca/ee/ca/profileSubmitSSLClient"
export post="cert_request_type=pkcs10&xmlOutput=true&profileId=caAgentServerCert&cert_request=" export url="/ca/ee/ca/profileSubmitSSLClient"
Copy to Clipboard Copied! 注記この例では、証明書要求を caAgentServerCert プロファイルに送信します (ただし、post ステートメントの profileId 要素で識別されます)。カスタムプロファイルを含む任意の証明書プロファイルを使用できます。 - 変数設定をテストします。
echo ${d} ${p} ${f} ${nick} ${cahost} ${caport} ${post} ${url}
echo ${d} ${p} ${f} ${nick} ${cahost} ${caport} ${post} ${url}
Copy to Clipboard Copied! - (この例では) PKCS10Client を使用して証明書要求を生成します。
time for i in {1..10}; do /usr/bin/PKCS10Client -d ${d} -p ${p} -o ${f}.${i} -s "cn=testms${i}.example.com"; cat ${f}.${i} >> ${f}; done perl -pi -e 's/\r\n//;s/\+/%2B/g;s/\//%2F/g' ${f} wc -l ${f}
time for i in {1..10}; do /usr/bin/PKCS10Client -d ${d} -p ${p} -o ${f}.${i} -s "cn=testms${i}.example.com"; cat ${f}.${i} >> ${f}; done perl -pi -e 's/\r\n//;s/\+/%2B/g;s/\//%2F/g' ${f} wc -l ${f}
Copy to Clipboard Copied! - CA のステータスとトランザクションログを確認します。
/etc/init.d/pki-ca status tail -f /var/log/pki-ca/transactions&
/etc/init.d/pki-ca status tail -f /var/log/pki-ca/transactions&
Copy to Clipboard Copied! - 手順 4 で作成した一括証明書要求ファイルを、sslget を使用する CA プロファイルインターフェイスに送信します。以下に例を示します。
cat ${f} | while read thisreq; do /usr/bin/sslget -n "${nick}" -p ${p} -d ${d} -e ${post}${thisreq} -v -r ${url} ${cahost}:${caport}; done
cat ${f} | while read thisreq; do /usr/bin/sslget -n "${nick}" -p ${p} -d ${d} -e ${post}${thisreq} -v -r ${url} ${cahost}:${caport}; done
Copy to Clipboard Copied!