今回はPKCS#7形式についての説明です。なかなか便利な形式なんですよ。
PKCS#7形式とは?簡単にPKCS#7形式についての解説をしてみました
そもそも、PKCS(Public Key Cryptography Standards)というのは公開鍵暗号の技術を標準化するための規格のこと。
PKCS には、PKCS#1形式からPKCS#15形式までがあります。
その中でもPKCS#7というのは暗号化データや署名データを証明書と共に格納できる形式で、SSLサーバ証明書などを配布する際にも、利用されるフォーマット(形式)です。
現在多くの認証局は、中間認証局を介してSSLサーバ証明書(End Entity)を発行しています。
このPKCS#7は中間証明書を含めて配布ができるのが大きな特徴です。
Microsoft IIS専用なの?
Microsoft IISでは、以前よりこのPKCS#7フォーマットに対応しているので、認証局では証明書単体の形式(X.509形式やPEM形式などと言われています)とは別にこのフォーマットで発行をしていたりするようです。
この形式には中間証明書(場合によってはルート証明書)も含まれているので、この形式をインストールできるタイプのサーバであれば、後から認証局の中間証明書を追加インストールする必要がありません。
インストール時の手間を軽減ができることや、中間証明書の設定忘れなどによるトラブルが発生しづらい便利な形式です。
ちなみに、この形式は特にMicrosoft IIS専用って訳ではありません。
ただし、IIS以外に使うことができるサーバがなければ、IIS専用と言ってしまっても過言ではないですが。
PKCS#7形式ファイルの拡張子は?
PKCS#7ファイルの一般的な拡張子は
- .p7b
- .spc
です。
この拡張子で保存することでWindows OS上ではパッケージされた証明書として認識するので、アイコンが証明書の形で表示されます。
ダブルクリックするとcertmgrが起動して格納されている複数のX.509形式の証明書が確認できます。
よって、
PKCS#7形式は、X.509形式の証明書が複数パッケージされた形式
といえるわけです。
ちなみにS/MIMEでもこの形式が使用されているのですが、若干話がそれるので、ここでは詳しく触れませんが、メールに「.p7s」というファイルが添付されてきていたら、ダブルクリックしてみてください。
p7b拡張子のファイルと同様にcertmgrが起動して添付された証明書を確認することができると思います。
PKCS#7にはルート証明書も含まれているの?
先にご案内したとおり、PKCS#7形式は公開鍵を複数パッケージしたファイルと言えますが、ルート証明書も公開鍵ファイルなので、当然含めることができます。
で、自身が持っているPKCS#7のファイルにルート証明書が含まれているか?については、そのPKCS#7ファイルをどのように作ったかに依存します。
認証局から直接送られたきたファイルや、ダウンロードしたファイルがあるようでしたら、その認証局の作成方法に依存しますし、ご自身で作ったらその作成方法や環境に依存します。
なんだかよくわからない話だと思いますので、実際にファイルがあるのでしたら、ダブルクリックして確認する、もしくはOpenSSLの以下コマンドで確認してみてください。
openssl pkcs7 -in <pkcs#7ファイル名> -print_certs
ちなみにPKCS#7から証明書をばらしたい場合は以下のコマンドでいけるようです。
openssl pkcs7 -in <pkcs#7ファイル名> -print_certs -out <ばらし後のファイル名>
まとめ
PKCS#7の話をまとめると
- PKCS#7は複数の証明書がパッケージされたもの
- 別にIIS専用ではない
- PKCS#7形式をインポートできるタイプのサーバは便利
- どんな証明書がパッケージされているかは、解析してみないとわからない
ということでした。
以上、「PKCS#7とは?簡単に分かるPKCS#7についての説明」でした。
コメント