配置Apache客户端证书身份验证代理(Configure Apache Client Certif

2019-11-04 13:49发布

我有3个后端API服务器(HTTPS),API服务器具有基于用户证书,我配置Apache进行负载平衡的3个后端服务器,如下面不同用户的不同的授权权限

<VirtualHost *:zzzz>
       SSLEngine on
       SSLCertificateFile /path/to/server.crt
       SSLCertificateKeyFile /path/to/server.key
       SSLCACertificateFile /path/to/ca.crt
       SSLProxyEngine on
       SSLProxyVerify none
       SSLProxyCheckPeerCN off
       SSLProxyCheckPeerName off
       SSLProxyCheckPeerExpire off
       <Proxy balancer://api_server>
           BalancerMember https://xx.xx.xx.xx:yyyy
           BalancerMember https://xx.xx.xx.xx:yyyy
       </Proxy>
       ProxyPass / balancer://api_server/
</VirtualHost>

问题是,当客户端请求apache ,使用证书,只有请求转到API服务器,而不是证书和API服务器响应未经授权的用户,我尝试使用SSLProxyMachineCertificateFile ,但它仅接受每次一组证书,并通过相同的证书,但是在这种情况下,授权仅发生基于证书。

有没有办法盲目地向前HTTPS请求API? 或任何其他建议的热烈欢迎。

Answer 1:

转化注释为答案,因为它解决了OP的问题。

用户会谈到Apache,Apache的再会谈到平衡的机器。 这是一个代理点,它可以确保客户不直接跟服务器。 因此,从平衡服务器的角度,Apache是​​客户端。

只有这样我可以看到这样做是使用4层网络负载平衡器不这样做SSL卸载。 即不阿帕奇



Answer 2:

尝试切换到AJP而不是HTTP代理,如Apache的文档解释: https://httpd.apache.org/docs/2.4/en/mod/mod_proxy_ajp.html

如果我没有理解好,你在说什么,你需要转发客户端证书,这是AJP的特点:

请求数据包结构

?ssl_cert 0x07的字符串



文章来源: Configure Apache Client Certificate Authentication for proxy
标签: apache ssl