Назад | Перейти на главную страницу

HAproxy 1.5 Надежные центры сертификации

Я пытаюсь заставить HAproxy 1.5.x доверять любому центру сертификации, уже находящемуся в хранилище доверенных сертификатов машины (/etc/ssl/certs) без явного указания индивидуального ca-file сертификат корневого центра, которому можно доверять. Я хочу избежать сценария, когда заданный внутренний сервер использует сертификат, выданный другим органом, и вызывает сбой, потому что этому внутреннему серверу больше не доверяют, несмотря на то, что ЦС находится в хранилище доверенных сертификатов машины.

В пределах данного backend раздел haproxy.cfg файл, server у линии есть опция под названием ca-file. Этот параметр указывает HAproxy на необходимость проверки полномочий сертификата внутреннего сервера с использованием предоставленных полномочий. Проблема в том, что это указывает на один CA.

Я нашел ca-base вариант. Если я не ошибаюсь, это всего лишь ярлык, чтобы избежать необходимости указывать полный путь к ca-file при каждом объявлении.

Я недавно столкнулся с этой проблемой в 1.5.6, где я получал сообщение об ошибке

проверка включена по умолчанию, но файл CA не указан. Если вы работаете в локальной сети, где вы уверены, что доверяете сертификату сервера, установите явное выражение 'verify none' в строке 'server' или используйте 'ssl-server-verify none' в глобальном разделе, чтобы по умолчанию отключите проверки на стороне сервера.

Это было связано с отсутствием указания ca-файл, который вы не можете указать на уровне сервера по умолчанию (согласно документации). Точно так же я не хотел думать о сбоях в обслуживании, если серверная конечная точка будет повторно выдавать сертификат другим центром сертификации.

Я решил, указав на объединенный файл сертификатов CA, который ваш дистрибутив Linux аккуратно поддерживает и поддерживает. В Debian этот файл /etc/ssl/certs/ca-certificates.crt, наверное, и у вас то же самое. (На RHEL7 проверьте /etc/ssl/certs/ca-bundle.crt)

global
    ca-base /etc/ssl/cert # debian
frontend f1
    use_backend b1
backend b1
    server s1 something.com:443 ssl verify required ca-file ca-certificates.crt

Я думаю, вы неверно истолковываете значение ca-file.

CA используется для авторизации клиенты, а не ваши собственные серверные серверы.

HAproxy не устанавливает SSL-соединения со своими серверными модулями (насколько мне известно) - нет никаких подтверждений связи и никаких сертификатов для проверки HAproxy.

Файл CA необходим, если вы или ваш клиент настраиваете PKI, чтобы разрешить безопасные соединения SSL только от доверенных клиентов. Вы (или клиент) сами создаете сертификат CA и используете его для подписи клиентских сертификатов.

Даже в том редком случае, когда для одной и той же службы необходимо несколько центров сертификации, кажется возможным объединить их в один файл PEM.