我正在尝试将Apache设置为使用私钥和证书来使用SSL。问题是Apache不知何故认为密钥和crt文件不匹配:
[Thu Aug 01 11:35:18 2013] [warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!?
[Thu Aug 01 11:35:18 2013] [debug] ssl_engine_init.c(846): Configuring RSA server private key
[Thu Aug 01 11:35:18 2013] [error] Unable to configure RSA server private key
[Thu Aug 01 11:35:18 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch在这个错误之后,我使用以下命令检查密钥和证书是否匹配:
$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5而且结果都是一样的,所以看起来密钥和证书是匹配的!?我的站点配置包含以下SSL设置:
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key证书由我为我的客户使用的自创建的CA签名。目前,我正在通过Java (和Chrome/Firefox/IE/Safari/... )托管HTTPS站点所有人都接受证书和密钥),但是性能并不像我希望的那样,因此我愿意切换到Apache。然而,我不明白为什么Apache说证书和密钥不匹配?我在谷歌上搜索了很多这个错误,发现了很多结果,但是没有一个代表我的情况,也没有一个有效的解决方案来解决我的问题。我使用自己的CA的原因是,我有几百个(还在不断增加)的证书用于基于信任的网络。
编辑:这个问题似乎与openssl有关,我测试了以下内容,但最终出现了相同的错误:
..............:~$ openssl s_server -cert server.crt -key server.key
140518544565920:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140518544565920:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:831:
140518544565920:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:751:Field=n, Type=RSA
140518544565920:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140518544565920:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:谁能为我指出正确的方向,指出我做错了什么?
我将key服务器直接使用的JKS重新编码为PEM证书和私钥(所有浏览器都接受),但仍然从openssl获得相同的错误:
openssl s_server -debug -cert server.crt -key server.key
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140157841004192:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:为什么所有浏览器都接受key/cert组合,而openssl拒绝同时使用它们呢?
发布于 2013-12-02 17:39:05
$ openssl s_server -cert server.crt -key server.key
140518544565920:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140518544565920:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:831:
140518544565920:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:751:Field=n, Type=RSA
140518544565920:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:添加-keyform。它可以是DER或PEM。您必须查看server.key才能确定表单。
如果server.key有--- BEGIN RSA PRIVATE KEY --- (或类似的),那么它的PEM。如果它不是PEM编码的,那么尝试DER。
此外,server.key可能会被加密。您可能需要在不使用密码短语的情况下重新保存密钥。
发布于 2014-01-16 08:25:57
你的虚拟主机文件是什么样子的?如果不看这个文件,就很难知道为什么会收到警告。但是,该警告很可能来自您的虚拟主机文件,该文件具有不同的服务器名称,而不是为其设置SSL证书。
检查您的虚拟主机文件并更改
<VirtualHost _default_:443>至
<VirtualHost *:443>甚至是
<VirtualHost yoursevername:443>发布于 2014-03-11 11:19:08
无论您的<VirtualHost ...:443>行中包含什么内容,我认为问题都是由错误日志中的行指示的:
[warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!?VirtualHost中的主题是什么?它是否与证书的CN匹配,即openssl x509 -noout -text -in <certfile>输出的“ServerName:”行中的最后一项
还有,你有没有试过noloader的建议?
https://stackoverflow.com/questions/17990537
复制相似问题