RapidSSLauthentication – 无法让nginx工作

我们已经从RapidSSL购买了SHA-2证书,但是我不能为了我的生活而工作! 我们首先在目标服务器上创build了.key.crt文件,使用(明显地删除了重要的东西);

openssl req -new -newkey rsa:2048 -nodes -out www_x.com.csr -keyout www_x_com.key -subj "/C=GB/ST=x/L=x/O=x/CN=www.x.com"

这创build了.crt和.key文件。 现在,我把他们发给我的证书保存为main.crt 。 然后,在他们发给我的电子邮件中:

https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=AR1549

在这里,他们有2个SHA-2中级证书…我假设它是我需要的第二个证书? (甚至不知道第一个是什么!)

然后,保存后,我cat的文件:

cat www_x.com.csr CA_Cert.crt > new.crt

(也尝试了另一种方式: cat CA_Cert.crt www_x.com.csr > new.crt ,但都没有工作)

然后,在我的nginxconfiguration中,我有:

 ssl on; ssl_certificate /home/test/certs/new.crt; ssl_certificate_key /home/test/certs/www_x_com.key; 

..然后当我重新启动,我得到一个失败的错误:

nginx [30762]:nginx:[emerg] SSL_CTX_use_PrivateKey_file(“/ home / test / certs / www_x_com.key”)失败(SSL:错误:0B080074:x509证书例程:X509_check_private_key:键值不匹配)

谁能帮忙? 我习惯于提供一个ZIP文件,其中包含我需要的所有东西…但这些人不是这样的!

更新:所有工作! 感谢大家的帮助。 原来是一个双重打击:

1)我这样做的人(谁购买了SSL证书),在生成证书时没有考虑inputCSR代码=)2) cat没有打破证书 – 所以它读取所有一条线

除此之外,这一切似乎都在工作。 很高兴那些出路,它是把我推上了墙!

从评论中的确认和你在问题中提出的内容

猫www_x.com.csr CA_Cert.crt> new.crt

你应该做的是

 cat x.com.crt CA_Cert.crt > new.crt 

csr用于传递给在这种情况下为RapidSSL的CA,为他们创buildcrt。

“键值不匹配”意味着您指向nginx的私钥与派生相应证书中的公钥的私钥不同。 正如Drifter104所提到的,您似乎将CSR与中间CA证书连接在一起,这肯定会导致此问题(nginx将跳过CSR,并假定中间证书是最终实体证书,这会导致此问题)。 否则,你已经设法弄混了你的密钥,如果你找不到正确的密钥,你需要从CA重新签名。