Настроить аутентификацию сертификата клиента Apache для прокси

У меня есть 3 сервера Backend 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? или любые другие предложения тепло приветствуются.

1
задан 21 December 2017 в 14:46
1 ответ

Пользователь разговаривает с Apache , затем Apache общается с сбалансированными машинами . В этом суть прокси, он гарантирует, что клиенты не общаются с серверами напрямую. Итак, с точки зрения сбалансированного сервера, Apache является клиентом. поэтому Балансировка нагрузки на уровне 4 - единственный путь.

Для тех, кому интересно решение, я настроил NGINX для балансировки нагрузки L4 , теперь он работает нормально.

0
ответ дан 4 December 2019 в 04:18

Теги

Похожие вопросы