gpt4 book ai didi

ssl - 带有自签名 CA 的客户端 SSL 不工作

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

1 个多月以来,我一直在为 SSL 问题而苦苦挣扎。

我们已经使用 openssl 生成我们自己的 CA、服务器和客户端证书。我们还有在 Apache Web 服务器上启用“SSLrequire”(在 htaccess 中这可能是错误的),这意味着任何试图通过 https 连接的人服务器需要出示有效证书

步骤如下;

  • 生成CA key
  • 生成 CA CSR
  • 使用 CA Key 签署 CA CSR

所以我们有自己的 CA,用于签署我们的服务器和客户端证书。

下一步

  • 生成服务器 key
  • 生成服务器 CSR
  • 使用 CA key 签署服务器 CSR

所以我们在服务器上成功安装了我们的服务器证书和服务器私钥

接下来我们

  • 生成客户端 key
  • 生成客户 CSR
  • 使用 CA key 签署客户 CSR

然后我们将客户端证书与 CA 证书一起分发给我们的用户。两者都安装在他们的浏览器中。

尝试连接时,我们收到“对等方不承认并信任颁发您的证书的 CA。"错误。

我们发现问题是服务器上没有安装自签名 CA 证书。通常服务器将向尝试连接到它的设备提供受信任的 CA 列表,并且设备必须发送证书已由服务器提供的任何 CA 签名。但是由于我们的自签名 CA 证书没有安装在服务器上,浏览器可以提供一个证书,该证书将被接受服务器。

所以我们继续在服务器上安装 CA 证书 - 控制面板 Hsphere。

我们获取了 ca 证书的内容并将其复制到服务器上的“证书颁发机构文件”文本区域中并且服务器每次都不会接受它提示“无法更新 SSL 配置不同的 key 和证书”

CA证书是自己签的,服务器怎么会说证书和 key 不一样

我们还尝试将 CA 证书文件和 CA key 文件的内容复制到“证书颁发机构文件”文本区域,但这也行不通。

正如我所说,我们已经为此苦苦挣扎了一个多月。如果有人可以提供帮助,我们将不胜感激。如果我们必须为服务付费,请告知我们。

提前致谢。

最佳答案

(也许 https://serverfault.com/ 更适合回答这个问题。)

以下是您可以在 Apache Httpd 配置中使用的几个选项(我不确定这是如何映射到您的配置面板的)。

SSLCertificateFile      /etc/ssl/certs/host.pem
SSLCertificateKeyFile /etc/ssl/private/host.key
SSLCACertificatePath /etc/ssl/certs/trusteddir
#SSLCACertificateFile /etc/ssl/certs/trustedcert.pem
#SSLCADNRequestFile /etc/ssl/certs/advertisedcas.pem

SSLCertificateFileSSLCertificateKeyFile 是在您的服务器上启用 SSL 的基本要求。

因为您需要客户端证书身份验证,所以您需要配置 SSLCACertificatePath(对于目录)或 SSLCACertificateFile(对于文件)之一来说明您想要哪个 CA信任,所以在那里添加你的 CA 证书。这些应该是 PEM 格式的文件。那里的任何证书都将被视为受信任的(尽管它可能需要具有 CA 基本约束,但我不记得了,如果您自己生成了根 CA 证书,那是非常标准的)。

除此之外,您还可以将证书放入 SSLCADNRequestFile 中。这应该不是必需的,因为它是从 SSLCACertificatePathSSLCACertificateFile 证书指令自动填充的,但是如果您想要对服务器通告的 CA 列表进行更多控制,它可能会接受,那就是这样做的地方。澄清一下,这不是管理对客户端证书的信任,而是服务器宣传它可能信任的内容,因此您仍然需要 SSLCACertificatePathSSLCACertificateFile。也许您的配置面板中的“证书颁发机构文件”选项控制着它,而不是其他两个选项之一。

调试它的一种方法是在命令行中执行此操作:

echo | openssl s_client -showcerts -connect www.your.host.example:443

这应该首先列出您提供的证书链(它最好将完整的链提供给 CA,因为有些客户有时似乎需要它,据我所知)。然后,它应该列出它愿意接受客户端证书身份验证的 CA,或者没有发送客户端证书 CA 名称(在这种情况下,上述指令之一有问题)。这将至少让您了解如何配置 SSLCADNRequestFileSSLCACertificatePath/SSLCACertificateFile(尽管最后两个很重要)。

关于ssl - 带有自签名 CA 的客户端 SSL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476288/

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