3 개의 백엔드 API 서버 (HTTPS)가 있으며 API 서버는 사용자 인증서에 따라 서로 다른 사용자에 대해 서로 다른 권한을 가지고 있습니다. 아래의 3 백엔드 서버로드 균형 조정을 위해 아파치를 구성하고 있습니다.Apache 클라이언트 인증서 구성 프록시에 대한 인증
인증서와 클라이언트 요청apache
는, 만 요청이 API 서버가 아닌 인증서 및 API 서버 응답 권한이없는 사용자에 갈 때, 나는
SSLProxyMachineCertificateFile
를 사용하여 시도하는 것이
<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>
문제가 있지만, 그것은 단지 한 세트를 받아 인증서가 있으며 매번 동일한 인증서를 전달하지만이 경우 인증은 인증서를 기반으로 만 발생합니다.
맹목적으로 HTTPS 요청을 API로 전달할 수있는 방법이 있습니까? 또는 다른 어떤 제안도 열렬히 환영 받는다.
로드 밸런서 대신 proxyPass를 시도 할 수 있습니다. –
@NitinDhomse 궁극적 인 목표는 단일 서버에 과부하가되는 것이 아니라 proxyPass를 시도했지만 도움이되지 않는 것입니다. –
사용자가 Apache와 대화하고 Apache가 균형 잡힌 컴퓨터와 대화합니다. 이것이 바로 프록시의 핵심이며, 클라이언트가 서버와 직접 대화하지 못하도록 보장합니다. 균형 잡힌 서버 관점에서 볼 때 Apache가 클라이언트입니다. 내가 할 수있는 유일한 방법은 SSL 오프로드를 수행하지 않는 레이어 4 네트워크로드 밸런서를 사용하는 것입니다. Apache가 아닙니다. – Nic3500