Новичок 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 по-прежнему принимает только первый сертификат.