使用由服务器 CA 以外的其他 CA 签名的证书验证 HTTPS 客户端

使用由服务器 CA 以外的其他 CA 签名的证书验证 HTTPS 客户端

我有一个 apache web 服务器,其 SSL 上有一个由受信任的官方 CA 签名的服务器证书。我是否可以配置 apache SSL 以接受由签署服务器证书的 CA 以外的 CA 签名的有效证书的客户端?

ssl_error_unknown_ca_alert尽管我在 apache 中配置了其他 CA,并且服务器启动时没有错误,但 我还是收到了错误。我创建了一个文件,其中包含签署服务器证书的 CA 的 CA 证书和我想要信任的 CA 的其他 CA 证书。然后我将SSLCertificateChainFile指令指向此文件。

我正在使用 Apache 2.2.22

编辑:

我正在使用
SSLCertificateFile指向服务器证书
SSLCertificateKeyFile指向服务器密钥
SSLCertificateChainFile指向签署服务器证书的证书链
SSLCACertificateFile指向包含我想要接受的所有证书链的文件

SSLVerifyClient require
SSLVerifyDepth  1

当我重新启动服务器时,Apache 会在日志中识别它们,并且没有错误。但是,我仍然收到错误。我还通过在 Meld 中进行文本比较ssl_error_certificate_unknown_alert验证了客户端证书链是否存在。SSLCACertificateFile

答案1

发现问题所在了。该证书由 3 个 CA 链签名,我将 SSLVerifyDepth 设置为 1。将其设置为 10 即可。

答案2

我相信您需要一个包含要使用的证书的目录。您可能需要使用一些 SSL magic 来创建证书的符号链接。请参阅mod_ssl SSLCACertificatePath 正确使用或处理多个可接受客户端证书 CA 的最佳方法是什么获取所需的命令。

相关内容