BLOGTIMES
2009/06/05

p12ファイルを使って、複数の証明書を一括でブラウザにインポートする

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

これまでSSLのクライアント証明書を作るときには、クライアント証明書とCAのルート証明書を別ファイルで作ってクライアントにインストールしていたんですが、p12形式は複数の証明書をひとつにまとめることが出来るようなので、これらを別々にインポートする必要はないようです。自分の手間はあまり変わりませんが、人に証明書を配るときには相手の手間が1ステップ分軽減されるのでいいかもしれません。

クライアント証明書の発行

なお、今回はCAの証明書については前回のサーバ証明書でインポート済みなので入れていませんが、実際にプライベートCAの運営で証明書を配布していくときはCAの証明書もつけてあげないといけません。
CAの証明書は接続先のサーバ証明書の署名検証するために必要になります。
CAの証明書もつけるときはこんな感じでOKです。
% cp /etc/CA/ca.crt ./ % cat client.key client-ca.crt ca.crt | openssl pkcs12 -export -out client.p12 -name "client key"

pkcs12はそもそも複数の鍵や証明書をひとつにしてインポートするためにあるので、この方法を使えばいくらでも証明書をくっつけることができます。
RootCAまでのchainとかをこの方法でまとめるといいと思います。

ちなみにPKCSはRSAが策定したキーストア形式で、Windows以外でもJava 暗号化アーキテクチャー (JCA)なんかでもサポートされているみたいです。RSAのサイトにはPDFファイルのPKCS #12: Personal Information Exchange Syntax Standardというファイルがありました。

クライアント証明書の作り方のメモ

プライベートキーの生成

openssl genrsa -out myClient.key 2048

CSRの生成

openssl req -config openssl.cnf -new -key myClient.key -out myClient.csr

CAによるキーへの署名

openssl ca -config openssl.cnf -out myClient.crt -infiles myClient.csr

p12にpublicキーとprivateキーをまとめる

cat myClient.key myClient.crt ca.crt | openssl pkcs12 -export -out myClient.p12 -name "client key"

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3015
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン