Haproxy с конфигурацией нескольких CA - PullRequest
0 голосов
/ 18 января 2019

Новичок SSL здесь, используя haproxy 1.8, имеет ситуацию, когда у меня есть 2 шлюза API AWS, указывающие на один и тот же прокси-сервер, и 2 сертификата клиентов, сгенерированных самим шлюзом API, назначают по одному для каждого шлюза.

Теперь у меня есть haproxy-сервер, который я пытаюсь настроить таким образом, чтобы разрешить доступ только с этих 2 шлюзов API.

Когда я делаю это только для шлюза API, то есть я устанавливаю ca-файл только для файла, содержащего 1 клиентский сертификат, он работает нормально, как и ожидалось, но я не знаю, как настроить оба клиентских сертификата для разрешения.

так что у меня есть эти файлы настройки:

  • haproxy.pem , который содержит
    • сертификат сервера, выданный go daddy
    • закрытый ключ
    • иди папа сертификаты
  • api-gw.pem первый сертификат клиента, который был скопирован со шлюза API
  • api-gw2.pem второй клиентский сертификат, скопированный с шлюза API
  • client-certs.crt , который является составной версией api-gw.pem и api-gw2.pem

когда я связываю ssl, как показано ниже для сертификата клиента, он работает просто отлично:

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw.pem

или

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw2.pem

для каждой из вышеперечисленных привязок только правильный шлюз API может получить доступ к прокси, а другой - нет.

но когда я делаю так, как показано ниже, чтобы разрешить обоим доступ к прокси-серверу, он разрешает только первый клиентский сертификат, даже если файл содержит оба:

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/client-certs.pem

Поскольку мои знания ограничены, когда дело доходит до сертификатов и ssl, я не уверен, сработает ли это, чтобы поместить несколько клиентских сертификатов в один файл, но из того, что я читал в Интернете, предлагается так ... Я до сих пор не знаю, почему это не сработает.

EDIT Я, Майкл, предложил, чтобы соединить оба клиентских сертификата, используя

cat api-gw.pem api-gw2.pem > api-gw-combo.pem

и комбинированный файл выглядит так:

-----BEGIN CERTIFICATE-----
.....cert content for api-gw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....cert content for api-gw2
-----END CERTIFICATE-----

но так же, как и мой исходный файл client-certs.crt, haproxy по-прежнему принимает только первый сертификат.

...