私は3つのバックエンドAPIサーバー(HTTPS)を持ち、APIサーバーはユーザー証明書に基づいて異なるユーザーに対して異なる許可を持っています。以下のように3つのバックエンドサーバーの負荷を分散するようにApacheを構成しています。Apacheクライアント証明書を設定する
<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>
問題は、唯一の要求は、APIサーバではなく、証明書、およびAPIサーバ応答不正なユーザーになると、クライアントの要求apache
、証明書を使用し、私はSSLProxyMachineCertificateFile
を使用してみましたが、それは唯一の1セットを受け入れることです証明書を発行し、毎回同じ証明書を渡しますが、この場合、認証は証明書に基づいてのみ行われます。
HTTPSリクエストを盲目的にAPIに転送する方法はありますか?温かく歓迎されます。
ロードバランサの代わりにproxyPassを試すことができます。 –
@NitinDhomse究極の目標は、単一のサーバーを過負荷にすることではありませんが、私はproxyPassを試しましたが、助けてくれません –
ユーザーはApacheと話し合い、Apacheはバランスのとれたマシンと話します。それがプロキシの要点です。クライアントがサーバーと直接通信しないようにします。したがって、バランスの取れたサーバーの観点からは、Apacheがクライアントです。私がそれを見ることができる唯一の方法は、SSLオフロードを行わないレイヤ4ネットワークロードバランサを使用することです。すなわちApacheではない。 – Nic3500