gpt4 book ai didi

Apache httpd : How to trust specific client certificates?

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

如何配置 Apache httpd 以信任特定的客户端证书?

我们需要将对网络服务的访问限制为特定(已知)合作伙伴的服务器。
我们计划为此使用基于 CA 的解决方案(一个受信任的 CA,它只会在我们接受 CSR 时签署可信赖的 CSR);但是,我们公司的 CA 不会为外部公司创建证书。

无论如何,为了建立安全连接,直到必要的 PKI 准备就绪,我们希望将特定的客户端证书配置为在我们的 Apache httpd 代理上受信任。

但是 httpd 不接受客户端的连接,客户端尝试使用客户端证书进行连接,该证书已添加到 CACertificateFile(以 Base64 编码和 DER 格式(PEM)的串联 x509 证书),配置为虚拟主机。

在这种情况下,客户端证书不是自签名证书。

最佳答案

您应该通过 SSLCACertificateFileSSLCACertificatePath 配置您信任的 CA 证书并使用 SSLVerifyClient(可选required,而不是 optional_no_ca,后者不会执行任何身份验证)以使服务器请求客户端证书。

如果您直接在 VirtualHost 部分中使用 SSLVerifyClient,则客户端证书将在初始握手期间发送。如果将其放在 Directory/.htaccess 中,将重新协商客户端证书。

在初始握手中发送证书时更容易调试,因为客户端证书本身不会被加密。您应该能够通过使用 Wireshark 查看流量(在客户端发送的 Certificate 消息中)来查看它。调试时,值得检查服务器是否发送了 Certificate Request 消息,并查看其证书颁发机构列表。

问题的典型原因是客户端无法识别该列表或客户端未在其链中发送其中间 CA 证书(如果需要)。

如果您随后想要更具体地授权某些证书,您可以检查变量 SSL 变量(例如 SSL_CLIENT_S_DN_*)并在 SSLRequire 指令中使用它(参见 example) .

关于 Apache httpd : How to trust specific client certificates?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380630/

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