• このエントリーをはてなブックマークに追加

前回作成したプライベート認証局(以下CA)でクライアント証明書を作ります。クライアント証明書も途中まではサーバ証明書の発行と手順は変わりません。プライベート証明書を利用する端末へ渡すためのフォーマットPKCS12のファイルを作成する手順が加わります。

  • クライアント秘密鍵(KEY)の作成。
  • KEYから証明書署名要求(CSR)の作成。
  • CSRへCAが署名を行いクライアント証明書(CRT)を発行。
  • KEYとCRTとCA証明書と格納したPKCS12ファイルを作成。

まずは、以下のコマンドでクライアント秘密鍵を作成する。

実行後パスフレーズを求められ、入力するとクライアント秘密鍵が作成される。

cd /etc/pki/CA-PRIVATE/private
openssl genrsa -out taro.yamada.key -des3 2048

次にCAに署名をしてもらう為に必要な、証明書署名要求(CSR)を作成する。

色々と入力を求められるので、作成したopenssl.cnfのデフォルト値を利用するため、-configで openssl.cnfファイルを指定する。

openssl req -new -key taro.yamada.key -out taro.yamada.csr -config /etc/pki/CA-PRIVATE/openssl.cnf

Country Name (2 letter code) [JP]:【未入力 Enter】
State or Province Name (full name) [Tokyo]:【未入力 Enter】
Locality Name (eg, city) [Toshima-ku]:【未入力 Enter】
Organization Name (eg, company) [Clarus LLC]:【未入力 Enter】
Organizational Unit Name (eg, section) [Information Systems Dev.]:【未入力 Enter】
Common Name (eg, your name or your server’s hostname) []:【ユーザ名を入力】
Email Address []:【メールアドレスを入力】
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:【未入力 Enter】
An optional company name []:【未入力 Enter】

作成したCSRにCAで署名します。

cd /etc/pki/CA-PRIVATE/certs/
openssl ca -in /etc/pki/CA-PRIVATE/private/takashi.uchino.csr -out takashi.uchino.crt -config /etc/pki/CA-PRIVATE/openssl.cnf

実行後、CA秘密鍵のパスフレーズを求められ、パスフレーズ入力後にクライアント証明書の内容が出力されます。

同時にクライアント証明書の有効期限も出力されますが、プライベート認証局を作成した際に指定したデフォルト値が適用されているので、必要であればopensslでオプション指定することで変更すること。

Enter pass phrase for /etc/pki/CA-PRIVATE/private/cakey.pem:【CA秘密鍵のパスフレーズ】
Check that the request matches the signature

(省略)

Sign the certificate? [y/n]:【y 入力】
1 out of 1 certificate requests certified, commit? [y/n]【y 入力】

もし、下記メッセージが出力されて署名ができない場合は、opensslのコマンドで「-policy policy_anything」を追加してみる。

failed to update database
TXT_DB error number 2

これでクライアント秘密鍵とクライアント証明書が出来たので、この2つとCA証明書を格納したコンテナフォーマットであるPKCS12ファイルを作成する。実行後、クライアント秘密鍵のパスフレーズを入力すると次にエクスポート用のパスワードを求められる。エクスポート用パスワードは端末に証明書等を展開する際に必要となるパスワード。

mkdir /etc/pki/CA-PRIVATE/pkcs12
cd /etc/pki/CA-PRIVATE/pkcs12
openssl pkcs12 -export -in ../certs/taro.yamada.crt -inkey ../private/taro.yamada.key -certfile ../cacert.pem -out taro.yamada.p12

これで作成できたPKCS12ファイルを端末へインポートすることでクライアントの秘密鍵と証明書及びCA証明書がインストールされる。

  • このエントリーをはてなブックマークに追加