nginx 配置因 SSL 密钥/pem 而失败(特殊情况)

nginx 配置因 SSL 密钥/pem 而失败(特殊情况)

我正在尝试使用经过认证的 SSL 密钥在我的 nginx 反向代理上安装 SSL,但是当我尝试重新启动服务器时收到此消息:

Restarting nginx: [emerg]: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/cert.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed

每个文件都是 root:具有 600 个权限的 root,我已经测试了证书并且它们通过此网站进行了验证:http://ssltools.com/cert_key_match

我的键中没有尾随的奇怪字符,每行有 64 个字符

这是我的配置文件

server {
    listen   443;
    server_name     my.domain.com;
    ssl on;
    ssl_certificate      conf.d/cert.pem;
    ssl_certificate_key  conf.d/cert.key;

    location / {
         proxy_pass         http://upstream1;
         proxy_redirect     off;
         proxy_buffering    off;
         proxy_set_header        Host            $host;
         proxy_set_header        X-Real-IP       $remote_addr;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

有什么想法吗?谢谢

答案1

查看这里

我希望您复制粘贴了下列内容:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

答案2

可能对其他人有用的不同解决方案:

使用.pem文件ssl_certificatessl_certificate_key

那是:

...
ssl on;
ssl_certificate      conf.d/cert.pem;
ssl_certificate_key  conf.d/cert.pem;
...

答案3

仅供参考,确保您的 BEGIN 块是完全相同的逐个字符地转换为预期的块。我的开始是4 个破折号,而不是 5 个. ----vs.-----当您犯此错误时,验证工具错误消息不是很具体。

答案4

我收到此错误是因为我不小心在指令中使用了.cer文件而不是文件。.keyssl_certificate_key

相关内容