ssl 常用數位憑證格式

來源:互聯網
上載者:User

PKCS 全稱是 Public-Key Cryptography Standards ,是由 RSA 實驗室與其它安全系統開發商為促進公開金鑰密碼的發展而制訂的一系列標準,PKCS 目前共發布過 15 個標準。 常用的有:

 

PKCS#12 Personal Information Exchange: .pfx, .p12 
PKCS#10 Certification Request: .p10 
PKCS#7 cert request response: .p7r 
PKCS#7 binary message: .p7b 

 

 

PKCS#7 常用的尾碼是: .P7B .P7C .SPC

PKCS#12 常用的尾碼有: .P12 .PFX

 

 

 

X.509是常見通用的認證格式。所有的認證都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國際標準。

 

X.509 DER 編碼(ASCII)的尾碼是: .DER .CER .CRT
X.509 PAM 編碼(Base64)的尾碼是: .PEM 

 

 

cer/.crt是用於存放認證,它是2進位形式存放的,不含私密金鑰。 
.pem跟crt/cer的區別是它以Ascii來表示。 
pfx/p12用於存放個人認證/私密金鑰,他通常包含保護密碼,2進位方式 
p10是認證請求 
p7r是CA對認證請求的回複,只用於匯入 
p7b以樹狀展示憑證鏈結(certificate chain),同時也支援單個認證,不含私密金鑰。 

 

 



注意:其中若要使用瀏覽器進行雙向認證的話,必須在瀏覽器安裝p12格式的認證 ,因為p12格式的數位憑證包含私密金鑰,只有包含私密金鑰 才能使雙方的加密通訊正常進行。

 

認證匯入 
Der/Cer認證匯入: 

要從某個檔案中匯入某個認證,使用keytool工具的-import命令: 

keytool -import -file mycert.der -keystore mykeystore.jks 

如果在 -keystore 選項中指定了一個並不存在的密鑰倉庫,則該密鑰倉庫將被建立。 

如果不指定 -keystore 選項,則預設密鑰倉庫將是宿主目錄中名為 .keystore 的檔案。如果該檔案並不存在,則它將被建立。 

建立密鑰倉庫時會要求輸入訪問口令,以後需要使用此口令來訪問。可使用-list命令來查看密鑰倉庫裡的內容: 

keytool -list -rfc -keystore mykeystore.jks 

P12格式認證匯入: 

keytool無法直接匯入PKCS12檔案。 

第一種方法是使用IE將pfx認證匯入,再匯出為cert格式檔案。使用上面介紹的方法將其匯入到密鑰倉庫中。這樣的話倉庫裡面只包含了認證資訊,沒有私密金鑰內容。 

第二種方法是將pfx檔案匯入到IE瀏覽器中,再匯出為pfx檔案。 
       新產生的pfx不能被匯入到keystore中,報錯:keytool錯誤: java.lang.Exception: 所輸入的不是一個 X.509 認證。新產生的pfx檔案可以被當作keystore使用。但會報個錯誤as unknown attr1.3.6.1.4.1.311.17.1,查了下資料,說IE匯出的就會這樣,使用Netscape就不會有這個錯誤. 

第三種方法是將pfx檔案當作一個keystore使用。但是通過微軟的認證管理主控台產生的pfx檔案不能直接使用。keytool不認此格式,報keytool錯誤: java.io.IOException: failed to decrypt safe contents entry。需要通過OpenSSL轉換一下: 

1)openssl pkcs12 -in mycerts.pfx -out mycerts.pem 

2)openssl pkcs12 -export -in mycerts.pem -out mykeystore.p12 

通過keytool的-list命令可檢查下密鑰倉庫中的內容: 

keytool -rfc -list -keystore mykeystore.p12 -storetype pkcs12 

這裡需要指明倉庫類型為pkcs12,因為預設的類型為jks。這樣此密鑰倉庫就即包含認證資訊也包含私密金鑰資訊。 

P7B格式認證匯入: 

keytool無法直接匯入p7b檔案。 

需要將憑證鏈結RootServer.p7b(包含根憑證)匯出為根rootca.cer和子rootcaserver.cer 。 

將這兩個認證匯入到可信任的密鑰倉庫中。 

keytool -import -alias rootca -trustcacerts -file rootca.cer -keystore testkeytrust.jks 

遇到是否信任該認證提示時,輸入y 

keytool -import -alias rootcaserver -trustcacerts -file rootcaserver.cer -keystore testkeytrust.jks 

總結: 

1)P12格式的認證是不能使用keytool工具匯入到keystore中的 

2)The Sun's PKCS12 Keystore對從IE和其他的windows程式產生的pfx格式的認證支援不太好. 

3)P7B憑證鏈結不能直接匯入到keystore,需要將裡面的認證匯出成cer格式,再分別匯入到keystore。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.