Nginx 启动失败,出现 SSL 密钥错误

Nginx 启动失败,出现 SSL 密钥错误

这是我在 nginx ssl 中遇到的错误:

nginx: [emerg] SSL_CTX_use_PrivateKey_file("/root/cert/l.key") failed (SSL:  error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

到处搜索但找不到解决方案。

问候,

答案1

您已将密钥文件放入 /root/cert。nginx 进程是否具有进入该目录的权限?如果有的话,我会感到惊讶,因为它通常会以非 root 身份运行。

答案2

  1. 该文件存在吗?
  2. 它是否包含有效的 SSL 密钥?
  3. 钥匙需要密码吗?

这可能是一个特殊的 nginx 问题。Apache 要求您指定单独的SSLCertificateChainFile指令。nginx 要求您将任何中间链证书连接到.crt文件中。如果文件中的第一个证书.crt不是与密钥匹配的证书,nginx 可能会给出此错误。您必须将链证书连接到证书的末尾,而不是相反。

答案3

订单不正确?

http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate

如果除了主要证书之外还应指定中间证书,则应按照以下顺序在同一文件中指定它们:先指定主要证书,然后指定中间证书。

相关内容