你的理解非常准确: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格式的证书和私钥。这是最标准、最稳妥、也最省心的做法,可以避免绝大多数因证书格式引发的配置问题。