通常来讲,主流的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 格式的数字证书文件。