HTTPS证书要求
HTTPS配置仅支持PEM格式的证书/私钥内容上传,针对不同的证书颁发机构,对证书/私钥内容的上传有不同的要求。
Root CA机构颁发的证书
Root CA机构颁发的证书是一份完整的证书,配置HTTPS时,仅上传该证书即可。
通过记事本打开*.PEM格式的证书文件,可以查看到类似图1所示的全部证书信息。
PEM格式证书:
- 以证书链“-----BEGIN CERTIFICATE-----”开头,以证书链“-----END CERTIFICATE-----”结尾。
- 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。
- 证书内容不包含空格。
RSA私钥格式要求
PEM格式的文件可以存放证书或私钥,如果*.PEM只包含私钥,一般用*.KEY代替。
通过记事本打开*.PEM或*.KEY的私钥文件,可以查看到类似图3所示的全部私钥信息。
RSA格式私钥:
- 以证书链“-----BEGIN RSA PRIVATE KEY-----”开头,以证书链“-----END RSA PRIVATE KEY-----”结尾。
- 证书链之间的内容,要求每行64个字符,最后一行允许不足64个字符。
- 证书内容不包含空格。
当私钥的证书链带有“-----BEGIN PRIVATE KEY-----, -----END PRIVATE KEY-----”或者“-----BEGIN ENCRYPTED PRIVATE KEY-----, -----END ENCRYPTED PRIVATE KEY-----”信息时,需要使用OpenSSL工具执行以下命令进行转换:
openssl rsa -in old_key.pem -out new_key.pem
格式转换
配置HTTPS仅支持PEM格式的证书/私钥,其他格式均不支持。其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。
以下示例均假设转换前证书名为old_certificate,私钥名为old_key,转换后证书名为new_certificate,私钥文件名为new_key。
- DER转换为PEM
openssl x509 -inform der -in old_certificate.cer -out new_certificate.pem openssl rsa -inform DER -outform pem -in old_key.der -out new_key.pem
- P7B转换为PEM
openssl pkcs7 -print_certs -in old_certificate.p7b -out new_certificate.cer
- PFX转换为PEM
openssl pkcs12 -in old_certificat.pfx -nokeys -out new_certificate.pem openssl pkcs12 -in old_certificat.pfx -nocerts -out new_key.pem
若需要将PKCS8格式私钥转换为PKCS1格式,则参考如下方法:
openssl rsa -in old_certificat.pem -out pkcs1.pem