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连接成一个文件。