Apache 2.4反向代理SSL问题

我正在尝试使用Apache创build以下设置:

UserBrowser ----Client Certificate---> LoadBalancer (Apache 2.4) then LoadBalancer (Apache 2.4) ----LB Client Certificate ----> Apache 2.2 Web Server 

所以用户连接到负载均衡器,并提供一个客户端证书 – 这工作正常。

反向代理然后使负载均衡器连接到Web服务器,Web服务器从负载均衡器请求证书,我得到以下错误:

 Proxy client certificate callback: (0.0.0.0:443) entered Proxy client certificate callback: (0.0.0.0:443) downstream server wanted client certificate but none are configured [remote 0.0.0.1:443] SSL Proxy connect failed [ssl:info] SSL Library Error: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure (SSL alert number 40) [ssl:info] [remote 0.0.0.1:443] Connection closed to child 0 with abortive shutdown (server 0.0.0.0:443) [ssl:info] [remote 0.0.0.1:443] SSL handshake failed: sending 502 

负载平衡器configuration:

 SSLProxyEngine on ProxyRequests off ProxyPreserveHost on Proxytimeout 600 SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyMachineCertificateFile "/path/to/keyandcert.pem" 

Web服务器configuration:

 SSLVerifyClient require 

如果从Web服务器中删除SSLVerifyClient,则此scheme有效,然后负载均衡。 我需要在用户LB和LB-WS之间进行客户端validation。

Keys + Certs已经使用1024位长模数生成

任何人都可以提供一个洞察什么可能会出错吗?

您的要求不清楚。 但是,我可以想象下列情况:

  • 你打算构build一个客户端证书authenticationscheme。 在这种情况下,客户端应该由平衡器进行身份validation,因为无法使用HTTP感知的平衡器,在平衡器上卸载SSL,并将客户端证书传递到后端。 一旦validation(或不),平衡器应该使用HTTP头将结果报告给后端。
  • 您打算创build一个简单的SSL卸载scheme。 在这种情况下,您不需要平衡器和后端之间的HTTPS,因为它们通常使用可信任的传输方式相互通信。

无论哪种方式,你所描述的计划都不符合以上任何一条。

PS使用nginx作为平衡器,apache早已不在了。