Nginx 错误日志中的“SSL_CTX_use_PrivateKey_file”“获取密码错误的问题”表示啥?

Posted

技术标签:

【中文标题】Nginx 错误日志中的“SSL_CTX_use_PrivateKey_file”“获取密码错误的问题”表示啥?【英文标题】:What does "SSL_CTX_use_PrivateKey_file" "problems getting password error" indicate in Nginx error log?Nginx 错误日志中的“SSL_CTX_use_PrivateKey_file”“获取密码错误的问题”表示什么? 【发布时间】:2012-03-11 22:21:03 【问题描述】:

我正在尝试在 nginx 上设置 SSL。它不起作用,并且我在错误日志中收到以下错误,该错误是从编译 nginx 的 OpenSSL 库中传递的。我不知道那个库是什么,但它是 nginx 的 0.8.54 版本,我在 Ubuntu Linux 上使用 apt-get 安装了它。

2012/02/21 07:06:33 [emerg] 4071#0: 
SSL_CTX_use_PrivateKey_file("/exequias/certs/exequias.com.key") failed (SSL: 
error:0906406D:PEM routines:PEM_def_callback:problems getting password error:
0906A068:PEM routines:PEM_do_header:bad password read error:140B0009:SSL routines:
SSL_CTX_use_PrivateKey_file:PEM lib)

我已确保私钥文件的文件权限不会阻止 nginx 读取它。它是一个 RSA 私钥,由openssl rsa 生成。

任何想法可能导致这种情况?

【问题讨论】:

【参考方案1】:

我知道了...与 nginx 一起使用的私钥文件必须有密码。我删除了密码,它起作用了。

【讨论】:

我不记得了——我可能只是用openssl 生成了一个新的私钥,并且忘记了密码。 谢谢,我记得密码。 @CrossleSong ssh-keygen -t rsa 并且不要输入密码来生成没有密码的密钥。【参考方案2】:

删除密钥密码:

openssl rsa -in key.pem -out newkey.pem

如果他们的证书和密钥在一起:

openssl rsa -in mycert.pem -out newcert.pem
openssl x509 -in mycert.pem >>newcert.pem

来源:http://www.madboa.com/geek/openssl/#key-removepass

【讨论】:

非常感谢!我在R'lyeh。你救了我的理智。 不客气 :-) 我听到了。我写这个答案已经两年了,现在我什么都不记得了:D #insanityrealized【参考方案3】:

这个问题现在有点老了,至少从 1.2 版本开始,nginx 实际上支持在启动时询问密码。但是这个问题仍然存在,因为这个功能已经从 debian 的最新版本中删除,版本 8 和 nginx 1.6。原因是密码输入尚未在 nginx 的 systemd 脚本中实现,而对于 apache 却已实现。手动启动nginx很简单,也不是什么大问题,反正需要人工干预,这里没用systemd。

参考:https://forum.nginx.org/read.php?2,262900,262931#msg-262931

【讨论】:

【参考方案4】:

因为您生成带有密码的 .crt 文件,所以您需要像这样在 Nginx conf 中为您的 .key 和 .crt 文件指定相同的密码

server 
    ssl_password_file /path-to-your-passphrase/ssl.pass;

见Nginx Doc

或者,如果您不需要证书文件的密码,只需使用ssh-keygen 工具生成文件,如下所示:

ssh-keygen -t rsa

【讨论】:

@JosephCoco 是的,你是对的。我需要编辑我的答案。 完美:thumbsup:

以上是关于Nginx 错误日志中的“SSL_CTX_use_PrivateKey_file”“获取密码错误的问题”表示啥?的主要内容,如果未能解决你的问题,请参考以下文章

14《Nginx 入门教程》Nginx的日志功能

Nginx日志配置

nginx 错误日志在哪

写一个查看当天nginx的错误日志

nginx访问错误日志详解

Nginx日志配置