介绍
在处理SSL/TLS证书时,可能会遇到需要将证书从一种格式转换为另一种格式的情况。以下是一些主流的证书格式以及如何在不同格式之间进行转换:

Tomcat、Weblogic、JBoss等,使用Java提供的密码库。通过Java的Keytool工具,生成Java Keystore(JKS)格式的证书文件。
Apache、Nginx等,使用OpenSSL提供的密码库,生成PEM、KEY、CRT等格式的证书文件。
主流证书格式
- PEM (Privacy Enhanced Mail): 以文本形式存储,通常具有
.pem或.crt扩展名。 - DER (Distinguished Encoding Rules): 以二进制形式存储,通常具有
.der或.cer扩展名。 - PFX/P12 (Personal Information Exchange): 一种包含私钥、证书和可选的CA证书的格式,通常具有
.pfx或.p12扩展名。 - JKS (Java KeyStore): Java专用的密钥库格式,通常具有
.jks扩展名。
格式转换命令
CSR 到 CRT
openssl x509 -req -days 1800 -in /usr/local/cert_req.csr -signkey /usr/local/private.key -out /usr/local/server_cert.crt
PEM 到 DER
使用openssl将PEM格式转换为DER格式:
openssl x509 -outform der -in certificate.pem -out certificate.der
DER 到 PEM
使用openssl将DER格式转换为PEM格式:
openssl x509 -inform der -in certificate.der -out certificate.pem
PEM 到 PFX/P12
使用openssl将PEM格式的证书和私钥转换为PFX格式,需要提供密码来保护PFX文件:
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.pem -certfile ca_bundle.pem
在这里,ca_bundle.pem是CA证书链文件,如果有的话。
PFX/P12 到 PEM
使用openssl将PFX格式的文件转换为PEM格式,需要提供PFX文件的密码:
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
-nodes参数表示不加密输出的私钥。
PEM 到 JKS
使用keytool将PEM格式的证书和私钥转换为JKS格式,需要提供密码:
keytool -import -alias mycert -file certificate.pem -keystore mykeystore.jks
如果PEM文件包含私钥,你可能需要先将它转换为PKCS#12格式,然后再转换为JKS。
JKS 到 PEM
使用keytool和openssl将JKS格式的密钥库转换为PEM格式:
keytool -export -alias mycert -keystore mykeystore.jks -rfc -file certificate.pem

5850

被折叠的 条评论
为什么被折叠?



