Я работаю над настройкой HAProxy таким образом, чтобы он отключал SSL, поэтому есть только одно место для настройки приобретенного сертификата SSL. Однако я бы предпочел, чтобы соединение с внутренними серверами также было зашифровано с помощью SSL.
Одно из предложенных мной предложений - создать самозаверяющие сертификаты на внутренних серверах, а затем в каждой строке сервера установить «не проверять». ... Таким образом, соединение браузера с HAProxy будет использовать приобретенный официальный сертификат SSL, а подключение к HAProxy к внутренним серверам будет использовать самозаверяющие сертификаты. Преимущество самозаверяющих сертификатов заключается в том, что они бесплатны, они не требуют обновлений и обслуживания (я могу установить срок действия в отдаленном будущем и избежать необходимости устанавливать новые каждый год). Однако понятно, что это открывает бэкэнд для атак MITM и не рекомендуется некоторыми источниками, которые я читал.
Могу ли я настроить HAProxy так, чтобы я мог использовать самозаверяющие сертификаты на внутренних серверах, но, возможно, каким-то образом занести самозаверяющий сертификат в белый список на сервере HAProxy? ... таким образом, соединение HAProxy с бэкэнд будет зашифровано, оно не будет уязвимо для атак MITM, и HAProxy будет знать, что он доверяет самозаверяющему сертификату с бэкэнд-серверов.
Возможно ли то, что я описываю? Я новичок в прерывании SSL HAProxy, поэтому приветствую любые советы.
Соответствующие части моей конфигурации следующие:
frontend www-in
bind *:80
bind *:443 ssl crt /etc/ssl-keys/my-public-ssl-key.pem no-sslv3
mode http
default_backend https-backend
# force redirect to https
redirect scheme https if !{ ssl_fc }
backend https-backend
balance leastconn
server web1 1.1.1.1:443 check ssl verify none
server web2 2.2.2.2:443 check ssl verify none
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
Вопрос на самом деле не связан с HAProxy
, но для управления сертификатами и центрами сертификации в целом.
Не уверен, какую ОС вы используете, потому что вы этого не указали, но если это какой-то вариант Linux (хотя следующее относится к Debian
и производные):
Убедитесь, что у вас есть посылка ca-certificates
установлены.
Вы создаете свои сертификаты, используя свои собственные центр сертификации (ок).
Возьми your ca root cert
этого CA и положите его внутрь /usr/local/share/ca-certificates/name-of-your-ca/
. (Возможно, вам придется создать папку name-of-your-ca
самостоятельно.) Убедитесь, что your ca root cert
имеет .crt
расширение.
(По умолчанию, /usr/local/share/ca-certificates/
принадлежит root:staff
, так что используйте sudo
или root
сделать это.)
Выполнить update-ca-certificates
(через sudo
/ так как root
).
После исполнения должен быть файл /etc/ssl/cert/your-ca-root.pem
символическая ссылка на /usr/local/share/ca-certificates/name-of-your-ca/your-ca-root.crt
.
Включить проверку в HAProxy
и прибыль.