曾经工作
我从 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 版本,但没有私钥,我的生活就陷入困境。我浏览了以下链接,但仍然卡住:
- https://stackoverflow.com/questions/26191463/ssl-error0b080074x509-certificate-routinesx509-check-private-keykey-values
- 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
答案2
@AAgg,只需使用新的 CSR 和密钥从您的证书提供商重新颁发证书即可。
我已经这样做过几次了,没有任何问题。