Apache Proxy - 代理后端(客户端)的 SSL 身份验证失败

Apache Proxy - 代理后端(客户端)的 SSL 身份验证失败

我正在运行配置为反向代理的 Apache 2.2.11。代理的“前端”工作正常,后端也是如此,直到我们在代理的后端(客户端)启用基于 SSL 证书的身份验证。

我的 HTTPD conf 文件包含:

SSLProxyMachineCertificateFile /opt/apache/sfdc/myauth/myauth

根据文档,我已将密钥和证书合并到“myauth”文件中。我使用的证书和密钥与用于保护代理前端的 HTTPS 连接的证书和密钥相同。这是连接 cat ../server.key ../server.pem >> myauth

私钥不受密码保护。

我的 Apache 日志显示:

[debug] ssl_engine_kernel.c(1526): Proxy client certificate callback: (obsucredhostname.com:8010) entered
[debug] ssl_engine_kernel.c(1571): Proxy client certificate callback: (obsucredhostname.com:8010) no client certificate found!?

是否可以使用与保护前端 SSL 相同的证书密钥对?我的前端由 godaddy 签名服务保护。或者,我是否需要使用单独的唯一密钥对?

答案1

当您连接到需要客户端证书身份验证的服务器(后端)时,服务器将向客户端(您的 Apache 代理)提供可用于签署客户端证书的可接受 CA 名称列表。即服务器信任的用于签署客户端证书的 CA 列表。

我怀疑这里的问题是您的证书SSLProxyMachineCertificateFile没有经过服务器认可的 CA 签名。您可以使用 openssl 检查服务器认可的 CA 名称。

openssl s_client -cert certfile -CAfile certfile -connect host:port

Apache Bugzilla 上还有更多关于此问题的信息这里,其中包括一个补丁,如果您无法访问后端服务器配置,该补丁可能会有所帮助。

相关内容