gpt4 book ai didi

ssl - Apache2 SSL 证书/ key 不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:18 27 4
gpt4 key购买 nike

我正在尝试将 Apache 设置为使用私钥和证书来使用 SSL。问题是 Apache 以某种方式认为 key 和 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

出现此错误后,我使用以下方法检查了 key 和证书是否匹配:

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

而且结果都一样,看来 key 和证书确实匹配!?我的站点配置包含以下 SSL 设置:

    SSLCertificateFile    /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

该证书由我为我的客户使用的自行创建的 CA 签名。目前我正在通过 Java 托管 HTTPS 站点(和 Chrome/Firefox/IE/Safari/... 都接受证书和 key ),但是性能并不像我希望的那样,因此我'我愿意切换到 Apache。但是我不明白为什么 Apache 说证书和 key 不匹配?我在谷歌上搜索了很多这个错误并找到了很多结果但是没有一个代表我的情况也没有为我的问题提供有效的解决方案。我使用自己的 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:

谁能指出我做错的正确方向?

我将网络服务器直接使用的使用过的 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 /证书组合,而 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:

添加-keyform。它可以是 DER 或 PEM。您必须查看 server.key 以确定表单。

如果 server.key--- BEGIN RSA PRIVATE KEY --- (或类似的),它的 PEM。如果它不是 PEM 编码的,那么尝试 DER。

此外,server.key 可能已加密。您可能需要在没有密码的情况下重新保存 key 。

关于ssl - Apache2 SSL 证书/ key 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com