0.1392017.09.11 09:03:42字數 791閱讀 3594node
PFX是帶有私鑰的證書(包含公鑰和私鑰)
由Public Key Cryptography Standards #12,PKCS#12標準定義,包含了公鑰和私鑰的二進制格式的證書形式,以pfx做爲證書文件後綴名(文件的擴展名能夠爲pfx或p12)。算法
CER二進制編碼的證書(只包含公鑰)
證書中沒有私鑰,DER 編碼二進制格式的證書文件,以cer做爲證書文件後綴名。tomcat
Base64編碼的證書(只包含公鑰)
證書中沒有私鑰,BASE64 編碼格式的證書文件,也是以cer做爲證書文件後綴名。安全
由定義能夠看出,只有pfx格式的數字證書是包含有私鑰的,cer格式的數字證書裏面只有公鑰沒有私鑰。app
在pfx證書的導入過程當中有一項是「標誌此密鑰是可導出的。這將您在稍候備份或傳輸密鑰」。通常是不選中的,若是選中,別人就有機會備份你的密鑰了。若是是不選中,其實密鑰也導入了,只是不能再次被導出。這就保證了密鑰的安全。網站
若是導入過程當中沒有選中這一項,作證書備份時「導出私鑰」這一項是灰色的,不能選。只能導出cer格式的公鑰。若是導入時選中該項,則在導出時「導出私鑰」這一項就是可選的。編碼
若是要導出私鑰(pfx),是須要輸入密碼的,這個密碼就是對私鑰再次加密,這樣就保證了私鑰的安全,別人即便拿到了你的證書備份(pfx),不知道加密私鑰的密碼,也是沒法導入證書的。相反,若是隻是導入導出cer格式的證書,是不會提示你輸入密碼的。由於公鑰通常來講是對外公開的,不用加密加密
從pfx提取密鑰信息,並轉換爲key格式(pfx使用pkcs12模式補足)spa
提取密鑰對(若是pfx證書已加密,會提示輸入密碼。)
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
code
從密鑰對提取私鑰
openssl rsa -in 1.key -out 1_pri.key
從密鑰對提取公鑰
openssl rsa -in 1.key -pubout -out 1_pub.key
由於RSA算法使用的是pkcs8模式補足,須要對提取的私鑰進一步處理(可選)
openssl pkcs8 -in 1_pri.key -out 1_pri.p8 -outform der -nocrypt -topk8
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
另:
apple developer中關於CSR證書請求文件(本機生成Cert Signing Request),它只是包含公鑰的一個文件文件,傳到apple開發者網站,去下載apple的對此商家簽名後的公鑰,用之後續開發操做。
另:若是生成tomcat須要的證書文件
keytool -import -v -trustcacerts -storepass 123456 -alias root -file xxx.im.crt -keystore xxx.jks