曾经工作

曾经工作

曾经工作

我从 name.com 购买了 Rapid SSL,并使用以下命令生成.csr.key文件:

sudo openssl req -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr

我回答了此命令提出的所有问题。然后,我将提供.csr给 name.com 并成功生成了服务器/中间证书。然后,我按照https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=SO17664并在我的 nginx 服务器上安装了此证书。我也能打开我的网站的 HTTPS 版本了。

PrivKey 被错误覆盖

然后,为了尝试其他方法,我再次运行命令(sudo openssl req ...),这次使用不同的答案,并生成了一个新的 server.key文件。遗憾的是,我没有保存第一个server.key文件。

修改 nginx .conf 文件后,当我尝试重新启动服务器时,出现以下错误:

nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/ssl/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

看到这个错误,我意识到我已经覆盖了文件server.key。我尝试使用第一次给出的相同答案再次生成密钥,但仍然出现密钥不匹配错误。

nginx 仍在运行。

我的 nginx 服务器仍在运行,我可以访问网站的 HTTPS 版本,但没有私钥,我的生活就陷入困境。我浏览了以下链接,但仍然卡住:

  1. https://stackoverflow.com/questions/26191463/ssl-error0b080074x509-certificate-routinesx509-check-private-keykey-values
  2. nginx ssl 证书问题密钥值不匹配

PrivKey 模数 != PubKey 模数

我通过运行以下命令确认我的证书(由 name.com 颁发)和私钥不匹配:

openssl x509 -noout -modulus -in server_orig.cert | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5

有希望吗?

由于 Nginx 仍在运行,我可以做些什么来找到私钥?如果没有,我是否应该让 Geotrust 重新颁发证书?

任何帮助都将不胜感激。

答案1

与证书供应商沟通

根据您的供应商,他们可能会坚持要求重新付款,或者免费提供此服务。

我不会花时间在 nginx 的 RAM 中寻找证书。当然,如果 https 仍然有效,那么私钥肯定还在那里,而且萃取自 RAM 是可能的,但如果您以前从未这样做过,那么购买另一个证书是更快的选择。

答案2

@AAgg,只需使用新的 CSR 和密钥从您的证书提供商重新颁发证书即可。

我已经这样做过几次了,没有任何问题。

相关内容