207.11.13 update:證書格式在線轉換 html
1.PFX是帶有私鑰的證書(包含公鑰和私鑰)
由Public Key Cryptography Standards #12,PKCS#12標準定義,包含了公鑰和私鑰的二進制格式的證書形式,以pfx做爲證書文件後綴名(文件的擴展名能夠爲pfx或p12)。 node
2.CER二進制編碼的證書(只包含公鑰)
證書中沒有私鑰,DER 編碼二進制格式的證書文件,以cer做爲證書文件後綴名。 算法
3.Base64編碼的證書(只包含公鑰)
證書中沒有私鑰,BASE64 編碼格式的證書文件,也是以cer做爲證書文件後綴名。tomcat
由定義能夠看出,只有pfx格式的數字證書是包含有私鑰的,cer格式的數字證書裏面只有公鑰沒有私鑰。安全
在pfx證書的導入過程當中有一項是「標誌此密鑰是可導出的。這將您在稍候備份或傳輸密鑰」。通常是不選中的,若是選中,別人就有機會備份你的密鑰了。若是是不選中,其實密鑰也導入了,只是不能再次被導出。這就保證了密鑰的安全。服務器
若是導入過程當中沒有選中這一項,作證書備份時「導出私鑰」這一項是灰色的,不能選。只能導出cer格式的公鑰。若是導入時選中該項,則在導出時「導出私鑰」這一項就是可選的。app
若是要導出私鑰(pfx),是須要輸入密碼的,這個密碼就是對私鑰再次加密,這樣就保證了私鑰的安全,別人即便拿到了你的證書備份(pfx),不知道加密私鑰的密碼,也是沒法導入證書的。相反,若是隻是導入導出cer格式的證書,是不會提示你輸入密碼的。由於公鑰通常來講是對外公開的,不用加密網站
======================================ui
從pfx導出公、私鑰編碼
======================================
從pfx提取密鑰信息,並轉換爲key格式(pfx使用pkcs12模式補足)
一、提取密鑰對(若是pfx證書已加密,會提示輸入密碼。)
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
二、從密鑰對提取私鑰
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
================================
將pfx成一個cer
================================
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
參考
http://blog.chinaunix.net/uid-24709751-id-3475550.html
http://blog.csdn.net/wangshfa/article/details/9110383
http://www.openssl.org/docs/apps/pkcs12.html
http://blog.csdn.net/blade2001/article/details/9787295
SSL證書:在應用HTTPS以前,用戶應先配置SSL證書。SSL證書是由證書受權中心(CA)簽發的對用戶公鑰的認證。證書的內容包括:電子簽證機關的信息、公鑰用戶信息、公鑰、權威機構的簽字和有效期等。目前,證書的格式和驗證方法廣泛遵循X.509 國際標準。
HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer。HTTPS是以安全爲目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL。
SSL:Secure Sockets Layer。SSL是一個安全協議,它提供使用 TCP/IP 的通訊應用程序間的隱私與完整性。因特網的超文本傳輸協議(HTTP)使用 SSL 來實現安全的通訊。
TLS:Transport Layer Security Protocol。TLS是IETF制定的一種新的協議,它創建在SSL 3.0協議規範之上,是SSL 3.0的後續版本。在TLS與SSL3.0之間存在着顯著的差異,主要是它們所支持的加密算法不一樣,因此TLS與SSL3.0不能互操做。TLS也常常用SSL來指代。
CA:即證書受權中心(CA, Certificate Authority)。CA是負責簽發證書、認證證書、管理已頒發證書的機關。用戶向CA提出申請後,CA負責審覈用戶信息,而後對關鍵信息利用私鑰進行」簽名」,並公開對應的公鑰。客戶端能夠利用公鑰驗證簽名。
非對稱加密:即常見的RSA、DH、EC等算法,算法特色是密鑰成對出現,通常稱爲公鑰(公開)和私鑰(保密),公鑰加密的信息只能私鑰解開,私鑰加密的信息只能公鑰解開。公鑰對外公開,私鑰由服務器保存。所以掌握公鑰的不一樣客戶端之間不能互相解密信息,只能和掌握私鑰的服務器進行加密通訊,服務器能夠實現1對多的通訊,客戶端也能夠用來驗證掌握私鑰的服務器身份。
CSR:CSR是Certificate Signing Request的英文縮寫,即證書請求文件,也就是證書申請者在申請數字證書時由CSP(加密服務提供者)在生成私鑰的同時所生成的證書請求文件。證書申請者只要把CSR文件提交給證書頒發機構後,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。
PEM:Openssl所使用的文檔格式。RFC 1421-1424。