PKCS#7とは?簡単に分かるPKCS#7についての説明

今回はPKCS#7についての説明です。なかなか便利な形式なんですよ。

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専用なの?

PKCS#7はMicrosoft IISだけのものじゃありません

Microsoft IISでは、以前よりこのPKCS#7フォーマットに対応しているので、認証局では証明書単体の形式(X.509形式やPEM形式などと言われています)とは別にこのフォーマットで発行をしていたりするようです。

この形式には中間証明書(場合によってはルート証明書)も含まれているので、この形式をインストールできるタイプのサーバであれば、後から認証局の中間証明書を追加インストールする必要がありません。

インストール時の手間軽減ができることや、中間証明書の設定忘れなどによるトラブルが発生しづらい便利な形式です。

ちなみに、この形式は特にMicrosoft IIS専用って訳ではありません。

ただし、IIS以外に使うことができるサーバがなければ、IIS専用と言ってしまっても過言ではないですが。

PKCS#7ファイルの拡張子は?

PKCS#7ファイルの拡張子は、p7bかspc

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のファイルにルート証明書が含まれているか?については、その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についての説明」でした。

コメント