2010年10月8日 星期五

憑證格式的介紹與轉換

X.509是常見通用的憑證格式標準
其他跟憑證有關係的標準則都定義在 PKCS 當中
PKCS 為 Public-Key Cryptography Standard 的縮寫
目前共發布過15個標準,細節可參考 Reference 中的wiki

管理存儲憑證常用的格式有以下幾類:[from wikipedia 公開金鑰密碼編譯標準]
PKCS#6 證書擴展語法標準(Extended-Certificate Syntax Standard)
將原本X.509的證書格式標準加以擴充。

PKCS#7 密碼訊息語法標準(Cryptographic Message Syntax Standard)
規範了以公開金鑰基礎設施(PKI)所產生之簽章/密文之格式。
其目的一樣是為了拓展數位證書的應用。其中,包含了S/MIME與CMS。

PKCS#10 證書申請標準(Certification Request Standard)
規範了向證書中心申請證書之CSR(certificate signing request)的格式。

PKCS#12 個人訊息交換標準(Personal Information Exchange Syntax Standard)
定義了包含私鑰與公鑰證書(public key certificate)的文件格式。
私鑰採密碼(password)保護。常見的PFX就履行了PKCS#12。

X.509 DER encoding 的 postfix 為 .der (BINARY)
X.509 PEM encoding 的 postfix 為 .pem (ASCII)
<格式轉換>
$ openssl rsa -in privatekey.pem -inform PEM -out privatekey.der -outform DER
$ openssl rsa -in privatekey.der -inform DER -out privatekey.pem -outform PEM

PKCS#7 常用的 postfix 有 .p7b .p7c .spc
p7b 以樹狀展示 certficate chain,不含 private key

PKCS#12 常用的 postfix 有 .p12 .pfx(MS)
p12/pfx 用於存放 certificate 加 private key
將此兩樣打包的過程中會要求輸入 Export Password 來保護這個p12檔案
相反地,你要取用p12檔案中的個別資訊時,就需要輸入 Import Password來解開保護
*Import/Export Password為同樣一組,只是方向不同







[Reference]
公開金鑰密碼編譯標準
http://zh.wikipedia.org/zh-hk/公開金鑰密碼編譯標準
常见证书格式及相互转换
http://355665.blog.51cto.com/345665/265679