这是我在 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
- 该文件存在吗?
- 它是否包含有效的 SSL 密钥?
- 钥匙需要密码吗?
这可能是一个特殊的 nginx 问题。Apache 要求您指定单独的SSLCertificateChainFile
指令。nginx 要求您将任何中间链证书连接到.crt
文件中。如果文件中的第一个证书.crt
不是与密钥匹配的证书,nginx 可能会给出此错误。您必须将链证书连接到证书的末尾,而不是相反。
答案3
订单不正确?
http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
如果除了主要证书之外还应指定中间证书,则应按照以下顺序在同一文件中指定它们:先指定主要证书,然后指定中间证书。