SSL证书格式主要有公钥证书格式标准X.509中定义的PEM和DER、公钥密码标准PKCS中定义的PKCS#7和PKCS#12、Tomcat专用的JKS。常见的SSL证书格式及转化方法如下:

常见的SSL证书格式

DER:Distinguished Encoding Rules的缩写,二进制编码的证书格式,相当于PEM格式的二进制版本,证书后缀有: .DER .CER .CRT,主要用于Java平台

PEM: Privacy Enhanced Mail的缩写,Base64编码的证书格式,是将二进制版本Base64编码后,以”—–BEGIN…”开头,“—–END…”结尾。证书后缀有:.PEM .CER .CRT,主要用于Apache和Nginx。

PKCS#7: PKCS(Public-Key Cryptography Standards)标准中的PKCS#7(Cryptographic Message Syntax Standard)。它不包含私钥,并将证书链和用户证书单独存放。证书后缀有: .P7B .P7C .SPC,主要用于Tomcat和Windows Server。

PKCS#12:PKCS(Public-Key Cryptography Standards)标准中的PKCS#12(Personal Information Exchange Syntax Standard)。它包含私钥,证书链,用户证书,并设置了密码。证书后缀有: .P12 .PFX,主要用于Windows Server。

JKS:JavaKeyStore的缩写,它包含私钥,证书链,用户证书,并设置了密码。证书后缀是.jks。主要用于Tomcat。

SSL证书格式转化方法

WebTrust认证的CA机构签发的证书通常只提供PEM格式或PKCS#7格式,如需其他证书格式,可以使用下面常用的方法进行格式转化。

使用OpenSSL、Keytool转化

1.pem转换pfx

openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456

2.pem转换jks

openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456

keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456

3.pfx转换pem

openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes

4.pfx转换jks

keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456

5.jks转换pem

keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456

openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes

6.jks转化pfx

keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456


沃通CA
9 声望10 粉丝

从事互联网安全领域,专注PKI/CA技术体系的研究,对SSL证书应用及HTTPS加密技术应用有深入了解。