如何生成PEM文件安装自有SSL证书?我的创建操作是否正确?
生成SSL证书PEM文件及证书链验证指南
嘿,我来帮你一步步解决这两个问题:如何生成符合要求的PEM文件,以及你当前的证书链操作是否正确。
一、生成要求的三个PEM文件
1. 私钥PEM文件(/ssl/test1.bx.key.pem)
你的domain.com.key大概率已经是PEM格式的私钥了——你可以打开文件看看开头是不是-----BEGIN PRIVATE KEY-----或者-----BEGIN RSA PRIVATE KEY-----。如果是,直接复制到指定路径就行:
cp domain.com.key /ssl/test1.bx.key.pem
万一你的私钥是DER这类非PEM格式,用OpenSSL转一下:
openssl rsa -inform der -in domain.com.key -out /ssl/test1.bx.key.pem
2. 域名证书PEM文件(/ssl/test1.bx.cert.pem)
domain_com.crt是你的域名实体证书,同样先检查是不是PEM格式(开头是-----BEGIN CERTIFICATE-----),是的话直接复制:
cp domain_com.crt /ssl/test1.bx.cert.pem
如果是DER格式,转换命令如下:
openssl x509 -inform der -in domain_com.crt -out /ssl/test1.bx.cert.pem
3. 证书链PEM文件(/ssl/test1.bx.ca-chain.cert.pem)
这部分是你当前操作的核心问题——你现在的拼接顺序是错误的。
证书链的正确顺序是:从直接签发你域名证书的中间CA开始,依次往上到根CA。对于Comodo PositiveSSL的证书,正确的拼接顺序是:
COMODORSADomainValidationSecureServerCA.crt(直接给你的域名证书签名的CA)COMODORSAAddTrustCA.crt(这个CA的上级中间CA)AddTrustExternalCARoot.crt(最终的根CA)
所以正确的命令应该是:
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > /ssl/test1.bx.ca-chain.cert.pem
为什么顺序这么重要?因为客户端浏览器/服务端需要按“从你的证书到根CA”的递进关系来验证信任链,顺序错了会导致验证失败,用户访问时可能出现“证书不可信”的提示。
二、验证PEM文件的有效性
生成完所有文件后,建议用OpenSSL命令验证证书链是否配置正确:
openssl verify -CAfile /ssl/test1.bx.ca-chain.cert.pem /ssl/test1.bx.cert.pem
如果输出/ssl/test1.bx.cert.pem: OK,就说明你的证书链完全没问题了。
内容的提问来源于stack exchange,提问作者KimAl




