常见SSL证书都有哪些格式
将 PFX 拆分为 PEM (用于 Nginx, Apache)
此命令从一个 PFX 文件中提取出证书(包含证书链)和私钥,生成多个独立的 PEM 文件。
# 1. 提取带密码保护的私钥
openssl pkcs12 -in server.pfx -nocerts -out server.encrypted.key
# 2. 提取服务器叶子证书(不含CA链)
openssl pkcs12 -in server.pfx -clcerts -nokeys -out server.crt
# 3. 提取中间CA证书(注:通常不需要包含根CA证书)
openssl pkcs12 -in server.pfx -cacerts -nokeys -out chain.crt
# 4.(可选)去除私钥密码保护,便于Nginx/Apache非交互启动
openssl pkey -in server.encrypted.key -out private.key
# 5.(可选)拼接完整证书链文件,供Nginx/Apache使用
# 顺序:先服务器证书,再中间证书(若有多个中间证书则按链顺序依次拼接)
# 注意:如果chain.crt不存在(PFX中没有中间证书),则跳过此步骤
cat server.crt chain.crt > fullchain.crt说明 最终生成的 private.key 是一个无密码保护的私钥文件,可以直接用于服务器配置。请确保其文件权限得到严格的控制(例如 chmod 400 private.key,仅文件所有者可读)。
当存在证书链且拼接完整证书链文件后,部署时参考如下设置:
Nginx :设置 ssl_certificate 为 fullchain.crt文件地址,ssl_certificate_key为private.key文件地址。
Apache:设置 SSLCertificateFile 为 fullchain.crt 文件地址(适用于Apache 2.4.8及以上版本),SSLCertificateKeyFile 为 private.key 文件地址。对于2.4.8之前的旧版本Apache,需要将中间证书链单独配置在 SSLCertificateChainFile 指令中。