SSL安装问题 – “键值不匹配”(但他们确实匹配?)

所以我已经发送一个新的公共证书安装在服务器上(.crt文件)。 完成。 重新启动Apache – “失败”。

错误信息:

[Tue Jan 11 12:51:37 2011] [error] Unable to configure RSA server private key [Tue Jan 11 12:51:37 2011] [error] SSL Library Error: 185073780 error:0B080074: x509 certificate routines:X509_check_private_key:key values mismatch 

我已经检查了关键值:

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

他们匹配。

我检查了我的ssl.conf文件中的path,它们指向正确的文件。

如果我恢复旧的(过期的)证书文件,apache启动正常,所以它肯定不喜欢新的。

这是一个GeoTrust QuickSSL,它附带了一个“intermediate.crt”,我应该用它代替之前使用的“ca-bundle.crt”文件

 SSLCertificateFile /etc/pki/tls/certs/www.domain.com.crt SSLCertificateKeyFile /etc/pki/tls/private/www.domain.com.key SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt 

任何想法我可能做错了什么? 你需要更多信息吗?

谢谢!

我也遇到了同样的错误。 在我的情况下,我不得不在validation链中提供额外的CA证书。 而不是在单独的文件中提供证书和密钥,我将它们合并到.pem文件中。

但是,当你这样做的时候,密钥和证书的顺序加上中间的那个是很重要的。 正确的顺序:

 your private key your certificate (intermediate) CA certificate lowest in the hierarchy other CA certificates higher in the hierarchy... (intermediate) CA certificate highest in the hierarchy 

当重新发布我的Rapid SSL证书(通过Namecheap购买)来处理心跳错误时,新证书总是针对之前的CSR请求使用的私钥颁发。 在第五次补发之后,与第四次补发尝试中使用的私钥配对使事情正常。

对于任何正在为此而苦苦挣扎的人

我最近在我的CentOS 6.5服务器上遇到了同样的问题,而且当我生成KEY和CSR时,

我有三个站点在虚拟主机上运行在这个服务器上的所有专用IP,每个站点都有自己的SSL证书。

在更换其中一个证书时,我蠢蠢欲动,只是按照证书提供者指南来获取CSR并将其安装到Apache中,并且我被指示使用以下命令:

 openssl req -new -newkey rsa:2048 -nodes -keyout domain-name-here.key -out domain-name-here.csr 

在安装新的证书之后,我还/var/log/httpd/ssl_error_log Apache不能启动的情况,而在/var/log/httpd/ssl_error_log也出现了相同的错误:

 [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch [error] Unable to configure RSA server private key 

现在我真正应该做的是检查我的.bash_history文件,因为我在CentOS之前多次成功完成了这个工作。

我应该运行这两个命令:

 openssl genrsa -des3 -out domain-name-here.co.uk.key 2048 openssl req -new -key domain-name-here.co.uk.key -out domain-name-here.co.uk.csr 

然后成功生成了CSR和KEY,我使用新获得的CSR重新申请了证书,然后应用新的证书并添加了新的密钥文件,最后Apache将开始干净。

另外只需稍加说明,我们现在可以在ssl实验室testing中对A +进行评分。

确保所有的证书文件都使用ANSI进行编码,而不是UTF-8

对于我来说,所有的testing说:key,crt和csr匹配,但是日志说X509_check_private_key:key values mismatch直到我看到其中一个文件以UTF-8编码。

就我而言,我有两个网站和两个微妙的不同的私钥:

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

我修正后,错误消息更改为/some/path/server.pem 。 注意不同的私钥,它们在文件扩展名中只有不同的。 我有2个不同的网站使用不同的密钥encryption(这意味着我已经修复了第一个网站,但现在需要修复第二个网站)。 所以一定要仔细阅读错误信息!

我们在NameCheap上也遇到了问题,发行的Cert与用于生成以前CERT的CSR相匹配。 我们通过他们的支持页面让他们知道,他们说他们已经知道这个问题。

Dynadot似乎与重新发行的RapidSSL证书有相同的问题。 我刚刚收到一个非工作证书,然后触发了另一个问题与Apache,当这是固定的,我发现这个问题和答案在这里的原始问题,感谢大家的信息。 由于我有一些客户端兼容性问题,我将会报废RapidSSL证书,而不是从AlphaSSL购买一个新的证书。

根据Apache网站上的常见问题解答,证书和密钥的模数和公开指数必须匹配,这是一个有效的检查。

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#verify

正如你和其他人已经指出的,与证书颁发者一起工作

在我的情况最棘手的一点是设置SSLCACertificateFile 。 一旦证书公司颁发我们的证书,除此之外,我们还收到另外两个证书:中间证书和根证书。 哪一个用于SSLCACertificateFile ? 都..

这是我的证书链看起来像:

在这里输入图像说明

对于SSLCACertificateFile我必须按照提到的顺序将digicert_sha2_high_assurance_server_ca.crt和digicert.crt连接成一个文件。