你的理解非常准确:Nginx原生支持并强烈推荐使用PEM格式的证书。
虽然Nginx在技术上也能处理DER格式,但这通常需要额外配置,并非最佳实践。在绝大多数生产环境中,PEM格式是事实上的标准。
下面是对这两种格式的详细对比,方便你理解。
一、证书格式对比:PEM vs. DER
特性 PEM 格式 DER 格式
编码方式 文本格式,使用Base64编码 二进制格式,不可读 |
文件特征 以 `-----BEGIN CERTIFICATE-----` 开头 文件内容为乱码,无特定文本头
常见扩展名 `.pem`, `.crt`, `.cer`, `.key` `.der`, `.cer`
Nginx支持 原生支持,官方推荐 不直接支持,建议转换为PEM |
可读性 高,可用文本编辑器打开查看 低,需专用工具查看
典型用途 Apache、Nginx 等Web服务器 Java环境,或Windows系统
二、如何将DER转换为PEM
如果你的证书是DER格式,最稳妥的做法是使用OpenSSL工具将其转换为PEM格式。
在命令行中执行以下命令即可:
```bash
openssl x509 -inform DER -in server.der -out server.pem
```
`-inform DER`:指定输入文件为DER格式。
`-in server.der`:你的DER格式证书文件名。
`-out server.pem`:转换后输出的PEM格式证书文件名。
请注意:`ssl_certificate_key` 指令指定的私钥文件,也必须是PEM格式。
三、总结
简单来说,永远只给Nginx提供PEM格式的证书和私钥。这是最标准、最稳妥、也最省心的做法,可以避免绝大多数因证书格式引发的配置问题。