我有一个 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 的最佳方法是什么获取所需的命令。