主流數字證書都有哪些格式?
一般來說,主流的Web服務軟件,通常都基於兩種基礎密碼庫:OpenSSL和Java。
Tomcat、Weblogic、JBoss等,使用Java提供的密碼庫。通過Java的Keytool工具,生成Java Keystore(JKS)格式的證書文件。
Apache、Nginx等,使用OpenSSL提供的密碼庫,生成PEM、KEY、CRT等格式的證書文件。
此外,IBM的產品,如Websphere、IBM Http Server(IHS)等,使用IBM產品自帶的iKeyman工具,生成KDB格式的證書文件。微軟Windows Server中的Internet Information Services(IIS),使用Windows自帶的證書庫生成PFX格式的證書文件。
如果您在工作中遇到帶有后綴擴展名的證書文件,可以簡單用如下方法區分:
*.DER *.CER : 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。
*.CRT : 這樣的文件可以是二進制格式,也可以是文本格式,一般均為文本格式,功能與*.DER/*.CER相同。
*.PEM : 一般是文本格式,可以放證書或私鑰,或者兩者都包含。 *.PEM如果只包含私鑰,那一般用 *.KEY代替。
*.PFX *.P12 是二進制格式,同時含證書和私鑰,一般有密碼保護。
怎么判斷是文本格式還是二進制?
用記事本打開,如果是規則的數字字母,如
—–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 格式的數字證書文件。
