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

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

PKCS#7は複数の公開鍵証明書をパッケージした形式

そもそも、PKCS(Public Key Cryptography Standards)というのは公開鍵暗号の技術を標準化するための規格のこと。

PKCS には、PKCS #1からPKCS #15までがあります。

その中でもPKCS#7というのは暗号化データや署名データを証明書と共に格納できる形式で、SSLサーバ証明書などを配布する際にも、利用されるフォーマット(形式)です。

現在多くの認証局は、中間認証局を介してSSLサーバ証明書を発行しています。

このPKCS#7は中間証明書を含めて配布ができるのが大きな特徴です。

Microsoft IIS専用なの?

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

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

この形式には中間証明書も含まれているので、利用者は後から認証局の中間証明書をインストールする必要がありません。

インストール時の手間軽減ができることや、中間証明書によるトラブルが発生しづらいのでうれしいですね。

でも、この形式は特にMicrosoft IIS専用って訳ではないんですが、IIS以外に使うことがなければSSLサーバ証明書としては専用って言っても間違いじゃないかもしれません。

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 <ばらし後のファイル名>

シェアする

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

フォローする