.p7m ファイルの開き方

.p7m は書類ではなく封筒です。中に実際のファイル(多くは PDF)が入っており、電子署名か暗号化、あるいはその両方で包まれています。何ができるかは、そのどちらかによって完全に変わります。

.p7m .p7s

なぜ開けないのか

  • 封筒であること自体が目的です。S/MIME は改ざんを検知できるように、あるいは意図した受信者だけが読めるように書類を包みます。OS にはこの包みを開く手段がありません。
  • 署名と暗号化は外から見分けがつきません。どちらも拡張子は .p7m です。署名だけなら誰でも展開できますが、暗号化されている場合は受信者の秘密鍵なしには開けません。
  • 業務や行政の手続き(特にイタリアの電子請求書)でよく使われる一方、それ以外では珍しいため、初めて遭遇して手元に道具が無い、という状況になりがちです。

開き方

署名のみの場合(多くはこちら)

  1. 1 署名済み文書は誰でも展開できます。署名は出所を証明するもので、閲覧を制限するものではありません。
  2. 2 OpenSSL を使う場合: openssl smime -verify -in file.p7m -inform DER -noverify -out document.pdf
  3. 3 -noverify は署名者の証明書チェーン検証を省く指定です。中身だけ欲しいときはこれで十分です。誰が署名したかも検証したい場合は外してください。
  4. 4 OpenSSL の無い Windows では、コピーの拡張子を .p7m.p7m にすると展開できる場合がありますが、専用ツールのほうが確実です。

暗号化されている場合

  1. 1 暗号化に使われた証明書に対応する秘密鍵が必要です。それが無ければ開く方法はなく、どんなツールやサービスでも変わりません。
  2. 2 自分の証明書を持つメールソフト(Outlook、Thunderbird、Apple Mail)で受信したものなら、そのソフトで元のメールを開けば自動的に復号されます。
  3. 3 意図した受信者でない場合は、正しいアドレス宛に送り直してもらうか、暗号化なしで送ってもらってください。

専用ビューア

  1. 1 イタリアでは Dike GoSign や ArubaSign が署名済み .p7m の標準的な無料ツールです。
  2. 2 ただしその多くはファイルをサーバーにアップロードします。署名済みの契約書や請求書であることを考えると、使う前に一度考える価値があります。

署名か暗号化かの見分け方

テキストエディタで開くだけでも大まかに判別できます。署名済み文書はバイナリの中に元のファイル名の断片や PDF の目印が読み取れることが多く、暗号化されたものは一様に判読不能です。このサイトの判定ツールでは、どちらの場合も S/MIME の封筒として報告されます。

.p7s は署名そのもの

.p7s は分離署名で、書類を含まず別ファイルの書類に付随します。単体では取り出すべき中身がありません。

同じ場面で出てくる形式

よくある質問

.p7m をオンラインで開けますか?
サービスは存在しますが、アップロードが必要です。.p7m はたいてい署名済みの契約書や請求書で、まさに他人のサーバーに置きたくない種類のファイルです。ローカルの OpenSSL で同じことができます。
拡張子を .pdf に変えても開けないのはなぜですか?
PDF はファイル全体ではなく封筒の中にあるからです。ラベルを貼り替えるのではなく、包みを外す必要があります。
取り出した後も署名は有効ですか?
無効です。PDF を取り出した時点で、誰が署名したかの証明が付いていない中身だけになります。署名が法的に意味を持つ場合は、元の .p7m を保管してください。