SSL证书格式及转换方法
发布日期:2022-01-17SSL证书格式主要有公钥证书格式标准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