PEM格式的证书文件(*.pem)由Base64编码的二进制内容和开头行(——-BEGIN CERTIFICATE——-)、结束行(——-END CERTIFICATE——-)组成,支持使用EditPlus等文本编辑器打开。本文介绍将不同格式的HTTPS证书转换为PEM格式的方法。
对于CER或CRT格式的证书,您可通过直接修改证书文件扩展名的方式,将其转换成PEM格式。例如,将server.crt
证书文件重命名为server.pem
即可。
PFX格式的证书一般出现在Windows Server服务器中,您可通过OpenSSL工具进行转换。通过执行以下两条OpenSSL命令,将PFX格式证书转换成PEM格式证书。
只提取私钥文件的命令:openssl pkcs12 -in [$Cert_Name.pfx] -nocerts -out key.pem -nodes
说明:
- [$Ccert_Name.pfx]为需要转换的PFX格式证书。
- key.pem为提取的私钥文件。
只提取公钥证书的命令:openssl pkcs12 -in [$Cert_Name.pfx] -nokeys -out cert.pem
说明:
- cert.pem为提取的公钥文件。
提取公钥和私钥合并文件的命令:openssl pkcs12 -in [$Cert_Name.pfx] -nodes -out all.pem
P7B格式证书一般出现在Windows Server和Tomcat服务器中,您可通过OpenSSL工具进行转换。参考以下步骤,将P7B格式证书转化为PEM格式证书。
执行以下命令,将P7B格式证书文件转换为CER格式文件。
openssl pkcs7 -print_certs -in [$Incertificat.p7b] -out [$Outcertificate.cer]
说明:
- [$Incertificat.p7b]为需要转换的P7B格式证书。
- [$Outcertificate.cer]为转换后的PEM格式证书。
只保留CER文件中以“——-BEGIN CERTIFICATE——-”开头,以“——-END CERTIFICATE——-”结尾的证书内容,如下所示。
-----BEGIN CERTIFICATE-----
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
-----END CERTIFICATE-----
将CER文件的扩展名改为.pem
即可。
DER格式证书一般出现在Java平台中,您可使用OpenSSL工具将其转化为PEM格式。通过执行以下两条OpenSSL命令,DER格式证书转换为PEM格式。
只提取公钥文件的命令:openssl x509 -inform der -in certificate.der -out certificate.pem
说明:
certificate.der为DER格式的证书,certificate.pem为转换后的PEM格式证书。具体文件以实际环境为准。
只提取私钥文件的命令:openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem
说明:
privatekey.der为DER格式的证书,privatekey.pem为转换后的PEM格式证书。具体文件以实际环境为准。