[5] [DFN[[[PKCS #12]]]] ([DFN[[[PFX]]]]) は、[[証明書]]と[[秘密鍵]]を含んだファイル形式です。

* 仕様書

[REFS[
- [3] [CITE@en[RFC 7292 - PKCS #12: Personal Information Exchange Syntax v1.1]]
([TIME[2015-02-11 09:48:24 +09:00]] 版)
<https://tools.ietf.org/html/rfc7292>
]REFS]

* 構造

[6] データ構造は [[ASN.1]] で規定されています。

[7] [[BER]] で[[符号化]]されます [SRC[>>3]]。

* MIME 型

[13] [[MIME型]]としては [CODE(MIME)@en[[[application/x-pkcs12]]]] が使われます。

* 拡張子

[8] [[拡張子]]としては [CODE[[[.pfx]]]] や [CODE[[[.p12]]]] が使われます。

* 実装

[9] [[Windows]] で使われています。

[10] [[OpenSSL]] も対応しています。

* メモ

[1] [CITE[SSLとS/MIMEで、電子証明書を引き継ぐことの技術的可能性について]]
([TIME[2013-06-07 18:33:46 +09:00]] 版)
<https://www.ipa.go.jp/security/fy10/contents/over-all/02/24.html>

[FIG(quote)[
[FIGCAPTION[
[2] [CITE[RSA Laboratories - PKCS #12: Personal Information Exchange Syntax Standard]]
([TIME[2015-04-07 12:25:09 +09:00]] 版)
<http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs12-personal-information-exchange-syntax-standard.htm>
]FIGCAPTION]

> This standard specifies a portable format for storing or transporting a user's private keys, certificates, miscellaneous secrets, etc.

]FIG]

[FIG(quote)[
[FIGCAPTION[
[4] [CITE[拡張子pfxとp12(pkcs12)の違いについて - katata_hの日記]]
([TIME[2013-10-08 14:24:13 +09:00]] 版)
<http://d.hatena.ne.jp/lars_t/20100313/1268501773>
]FIGCAPTION]

> ・Microsoftはファイルの中身がPKCS#12形式であってもPFXファイルと言っている。
> ・古いNetscapeブラウザでは、ファイルの中身が古いpfx規約で作られたものであってもPKCS#12と主張していたことがある。
> ・pkcs#12のマニュアルに出てくるpfxは、あまり深い意味はなく、MSの言うPFX(つまりpkcs#12)形式で作られたデータのことを指したい時に使用している(よく見ていないけども、おそらく)

]FIG]


[11] [CITE@en[RFC 5958 - Asymmetric Key Packages]]
([TIME[2015-04-05 22:36:35 +09:00]] 版)
<https://tools.ietf.org/html/rfc5958#section-5>

[12] [CITE[pkcs12 - PKCS#12 file utility]]
([TIME[2015-04-11 00:06:43 +09:00]] 版)
<https://www.openssl.org/docs/apps/pkcs12.html>