なぜ P7M を XML に変換するのですか?
SDI (Sistema di Interscambio) 経由で送信されるイタリアの電子請求書は、署名され .p7m 形式でラップされた XML ファイルとして届きます。請求書を会計ソフトにインポートしたり、プログラムで処理したりするには、.p7m を展開して生の .xml にアクセスする必要があります。XML は常にコンテナの中にあったものであり、抽出はフォーマット変換ではありません。
P7M から XML への変換方法
OpenSSL OPEN-SOURCE
内部の .xml を抽出するには openssl smime -verify -in invoice.xml.p7m -inform DER -noverify -out invoice.xml を実行します。そのコマンドが失敗した場合は、同じフラグで openssl cms に置き換えてください。
Dike (InfoCert) FREE
Dike を開き、.p7m ファイルをウィンドウにドラッグして、検証後に «Save Document» または «Extract» をクリックして内部の .xml ファイルを保存します。
Aruba Sign FREE
Aruba Sign を開き、«Verify» をクリックして .p7m を選択し、«Save» または «View Document» を使用して内部の .xml をエクスポートします。
これらの形式について
.p7mファイルは、元のドキュメント(通常はPDFやXMLの電子請求書)をデジタル署名や暗号化と一緒にラップするPKCS#7/CMSコンテナです。開くには、DiKe (InfoCert)、Aruba Sign、Adobe…
.P7M の詳細を開く →XML ファイルは、ネストされたカスタムタグ内に構造化データを保存するプレーンテキストドキュメントです。単なるテキストであるため、任意のテキストエディタで開くことができます。ブラウザのタブにドラッグすれば折りたたみ可能な表示で素早く確認でき、編集には Visual Studio Code や Notepad++ が適しています。XML…
.XML の詳細を開く →品質と注意点
- 抽出された XML はオリジナルと同一です。抽出中にデータが変更されたり失われたりすることはありません。
- 抽出後の XML は署名されていません。ドキュメントが署名されたという法的証明が必要な場合は、元の
.p7mを保管しておいてください。 - 抽出に失敗した場合は、OpenSSL コマンドの
-inform DERを-inform PEMに置き換えてみてください。一部の.p7mファイルはバイナリ DER ではなく Base64 エンコードされています。
よくある質問
なぜイタリアの電子請求書はプレーンな `.xml` ではなく `.p7m` で届くのですか?
.p7m コンテナにラップされます。署名を検証せずに XML を抽出できますか?
-noverify フラグはトラストチェーンのチェックをスキップするため、CA 証明書がインストールされていなくてもファイルを取り出すことができます。