Как перенаправить сертификат аутентификации клиента через прокси-сервер высокой доступности при завершении TLS?

У меня есть веб-API, управляемый балансировщиком нагрузки HA Proxy. Веб-API использует сертификаты аутентификации клиентов для аутентификации и авторизации. Я бы хотел, чтобы устройство HA Proxy разорвало соединение TLS и использовало обычный HTTP на бэкэнде для взаимодействия с веб-API, но мне нужен сертификат аутентификации клиента, передаваемый через HTTP-соединение. Как нужно настроить прокси-сервер HA для хранения сертификата проверки подлинности в запросе из серверной части, но с использованием только HTTP?

1
задан 6 July 2019 в 00:13
1 ответ

Вы можете настроить отправку различных HTTP-заголовков на серверную часть относительно представленного сертификата клиента TLS. Например:

frontend intranet
    bind 10.20.30.40:443 ssl crt /etc/haproxy/pem/server.pem ca-file /etc/haproxy/pem/client-chain.pem verify required
    http-request set-header X-SSL                       %[ssl_fc]
    http-request set-header X-SSL-Client-Verify         %[ssl_c_verify]
    http-request set-header X-SSL-Client-SHA1           %{+Q}[ssl_c_sha1]
    http-request set-header X-SSL-Client-DN             %{+Q}[ssl_c_s_dn]
    http-request set-header X-SSL-Client-CN             %{+Q}[ssl_c_s_dn(cn)]
    http-request set-header X-SSL-Issuer                %{+Q}[ssl_c_i_dn]
    http-request set-header X-SSL-Client-Not-Before     %{+Q}[ssl_c_notbefore]
    http-request set-header X-SSL-Client-Not-After      %{+Q}[ssl_c_notafter]
    default_backend your_backend

Ваше приложение должно затем проверить заголовки и предпринять соответствующие действия.

Этот пример взят с raymii.org , где вы можете найти дополнительную полезную информацию об использовании клиентских сертификатов с HAProxy, такие как проверка сертификата клиента и отклонение недействительных сертификатов.

2
ответ дан 3 December 2019 в 20:06

Теги

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