通常來講,主流的Web服務軟件,一般都基於兩種基礎密碼庫:OpenSSL和Java。html
Tomcat、Weblogic、JBoss等,使用Java提供的密碼庫。經過Java的Keytool工具,生成Java Keystore(JKS)格式的證書文件。node
Apache、Nginx等,使用OpenSSL提供的密碼庫,生成PEM、KEY、CRT等格式的證書文件。工具
此外,IBM的產品,如Websphere、IBM Http Server(IHS)等,使用IBM產品自帶的iKeyman工具,生成KDB格式的證書文件。微軟Windows Server中的Internet Information Services(IIS),使用Windows自帶的證書庫生成PFX格式的證書文件。orm
若是您在工做中遇到帶有後綴擴展名的證書文件,能夠簡單用以下方法區分:server
*.DER *.CER : 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。htm
*.CRT : 這樣的文件能夠是二進制格式,也能夠是文本格式,通常均爲文本格式,功能與*.DER/*.CER相同。blog
*.PEM : 通常是文本格式,能夠放證書或私鑰,或者二者都包含。 *.PEM若是隻包含私鑰,那通常用 *.KEY代替。ssl
*.PFX *.P12 是二進制格式,同時含證書和私鑰,通常有密碼保護。部署
怎麼判斷是文本格式仍是二進制?get
用記事本打開,若是是規則的數字字母,如
—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
就是文本的,上面的BEGIN CERTIFICATE,說明這是一個證書
若是是—–BEGIN RSA PRIVATE KEY—–,說明這是一個私鑰
這些證書格式之間是能夠互相轉換的
如下提供了一些證書之間的轉換方法:
1. 將JKS轉換成PFX
能夠使用Keytool工具,將JKS格式轉換爲PFX格式。
keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12
2. 將PFX轉換爲JKS
能夠使用Keytool工具,將PFX格式轉換爲JKS格式。
keytool -importkeystore -srckeystore D:\server.pfx -destkeystore D:\server.jks -srcstoretype PKCS12 -deststoretype JKS
3. 將PEM/KEY/CRT轉換爲PFX
使用OpenSSL工具,能夠將密鑰文件KEY和公鑰文件CRT轉化爲PFX文件。
將密鑰文件KEY和公鑰文件CRT放到OpenSSL目錄下,打開OpenSSL執行如下命令:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
4. 將PFX轉換爲PEM/KEY/CRT
使用OpenSSL工具,能夠將PFX文件轉化爲密鑰文件KEY和公鑰文件CRT。
將PFX文件放到OpenSSL目錄下,打開OpenSSL執行如下命令:
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
** 請注意 ** 此步驟是專用於使用keytool生成私鑰和CSR申請證書,而且獲取到pem格式證書公鑰的狀況下作分離私鑰使用的,因此在實際部署證書時請使用此步驟分離出來的私鑰和申請下來的公鑰證書作匹配使用。
雲盾證書服務統一使用 PEM 格式的數字證書文件。