我正在运行configuration为反向代理的Apache 2.2.11。 代理的“前端”工作正常,后端也一样,直到我们在代理的后端(客户端)启用基于SSL证书的身份validation。
我的HTTPD conf文件包含:
SSLProxyMachineCertificateFile /opt/apache/sfdc/myauth/myauth
根据文档,我已将密钥和证书组合到“myauth”文件中。 我正在使用相同的证书和密钥来保护代理正面的HTTPS连接。 这是串联的猫../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相同的证书密钥对? 我的前端由godaddys签署服务保证。 或者,我需要使用一个单独的和独特的一对?
当您连接到需要客户端证书身份validation的服务器(后端)时,服务器将向客户端(您的Apache代理)提供客户端证书可以签名的可接受的CA名称列表。 即服务器信任签署客户端证书的CA列表。
我怀疑这里的问题是你的SSLProxyMachineCertificateFile没有被服务器可以接受的CA签名。 您可以使用openssl检查服务器可以接受的CA名称。
openssl s_client -cert certfile -CAfile certfile -connect host:port
这里有更多关于Apache bugzilla的问题的信息,包括一个补丁,如果你不能访问后端服务器configuration,这个补丁可能会有所帮助。