HAProxy, высокопроизводительный балансировщик нагрузки TCP/HTTP, поддерживает SSL-терминирование, что означает, что он может выполнять задачи по шифрованию и дешифрованию SSL, снижая нагрузку на внутренние серверы.
В этой статье Вы узнаете , как настроить SSL-сертификат в HAProxy, включая генерацию кода CSR (Certificate Signing Request), получение коммерческого SSL-сертификата, объединение сертификата с закрытым ключом и настройку HAProxy на его использование. Итак, давайте приступим!
Оглавление
- Сгенерируйте CSR-код для Вашего SSL-сертификата
- Получите коммерческий SSL-сертификат для HAProxy
- Объедините сертификат и закрытый ключ
- Настройте PEM SSL сертификат в HAProxy
Сгенерируйте CSR-код для Вашего SSL-сертификата
Прежде чем Центр сертификации выпустит SSL-сертификат, ему нужен CSR-код от Вас, чтобы подтвердить Ваши контактные данные. CSR – это небольшой закодированный текстовый блок с соответствующей информацией о Вашем сайте и компании. Вы должны сгенерировать и отправить его во время регистрации SSL.
Вот как это сделать:
- Откройте терминал: Получите доступ к интерфейсу командной строки на Вашем сервере.
- Выполните команду OpenSSL: Используйте следующую команду OpenSSL, чтобы сгенерировать CSR и закрытый ключ.
Замените mydomain на Ваше реальное доменное имя.
openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr - Введите необходимую информацию: Вам будет предложено ввести такие данные, как:
- Название страны (2-буквенный код, например, США)
- Название штата или провинции (например, Калифорния)
- Название местности (например, Сан-Хосе)
- Название организации (например, Холдинг GPI)
- Название организационного подразделения (например, IT)
- Общее имя (например, yourdomain.com)
- Адрес электронной почты
- Сохраните CSR и закрытый ключ: Команда создаст два файла: mydomain.csr (CSR) и mydomain.key (закрытый ключ). Сохраните закрытый ключ, так как он понадобится позже.
Получите коммерческий SSL-сертификат для HAProxy
Коммерческим SSL-сертификатам доверяют все браузеры и операционные системы. В результате Ваши сайты или приложения не будут сталкиваться с раздражающими ошибками SSL-соединения. Для производственной среды такие сертификаты просто необходимы. Если Вы используете HAProxy для тестирования, Вы можете сгенерировать самоподписывающийся сертификат, но в этой статье мы сосредоточимся на настройке SSL HAProxy для рабочих сред.
Чтобы получить коммерческий SSL-сертификат, выполните следующие действия:
- Выберите центр сертификации (ЦС): Выберите авторитетный центр сертификации, например, DigiCert, Comodo или GeoTrust.
- Выберите тип сертификата: Выберите тип SSL-сертификата, который соответствует Вашим потребностям, например, сертификат для одного домена, подстановочный сертификат или сертификат для нескольких доменов (SAN).
- Отправьте CSR: Предоставьте CSR в ЦС, чтобы они могли выпустить сертификат, соответствующий закрытому ключу Вашего сервера.
- Купите сертификат: Приобретите свой SSL-сертификат у надежного реселлера SSL, такого как SSL Dragon, по лучшей цене и с лучшей поддержкой клиентов.
- Процесс валидации: В зависимости от типа сертификата, Вы пройдете процедуру проверки домена, проверки организации или расширенной проверки.
- Получите сертификат: После проверки ЦС выдаст SSL-файлы, заархивированные в папке ZIP.
Объедините сертификат и закрытый ключ
Как только Вы получите свой SSL-сертификат из центра сертификации, Вам нужно объединить его с Вашим закрытым ключом, чтобы создать единый файл, который сможет использовать HAProxy.
- Подготовьте файлы: Убедитесь, что у Вас есть следующие файлы:
- SSL-сертификат Вашего домена (например, mydomain.crt)
- Приватный ключ, сгенерированный ранее (mydomain.key)
- Любые промежуточные сертификаты, предоставленные ЦС (например, intermediate.crt). Обычно ЦС отправляет промежуточные сертификаты в файле CA Bundle.
- Объедините файлы: Эта команда объединяет сертификат, промежуточный сертификат и закрытый ключ в один PEM-файл.
cat mydomain.crt intermediate.crt mydomain.key > /etc/haproxy/mydomain.pem
Настройте PEM SSL сертификат в HAProxy
Теперь, когда у Вас есть PEM-файл, Вы можете настроить HAProxy на использование SSL-сертификата.
Шаг 1: Загрузите PEM-сертификат на HAProxy Server:
Используйте команду scp, чтобы загрузить файл PEM-сертификата на сервер HAProxy (замените sysadmin и haproxy_server_ip на имя пользователя и IP-адрес удаленного сервера соответственно):
scp mydomain.pem sysadmin@haproxy_server_ip:/home/sysadmin/
Шаг 2: Создайте директорию для сертификата
Создайте каталог, в котором будет храниться PEM-файл сертификата:
sudo mkdir -p /etc/ssl/mydomain/
sudo cp mydomain.pem /etc/ssl/mydomain/
Шаг 3: Отредактируйте файл конфигурации HAProxy
Откройте файл конфигурации HAProxy (по умолчанию расположенный по адресу /etc/haproxy/haproxy.cfg) в текстовом редакторе, например, в Блокноте.
Шаг 4: Настройте раздел Frontend
Измените раздел frontend , чтобы включить завершение SSL и перенаправить HTTP-трафик на HTTPS:
frontend http_frontend
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1
redirect scheme https code 301 if !{ ssl_fc }
default_backend http_servers
Шаг 5: Добавьте параметры SSL/TLS
Чтобы обеспечить использование современных и безопасных версий SSL/TLS, добавьте параметр ssl-min-ver:
bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2
Эта директива поддерживает протоколы HTTP/2 и HTTP/1.1 и устанавливает минимальную версию TLS 1.2 для безопасных соединений.
Шаг 6: Настройте секцию Backend
Убедитесь, что Ваши внутренние серверы правильно определены.
backend http_servers
mode http
balance roundrobin
server server1 :80 check
server server2 :80 check
Шаг 7: Перезапустите HAProxy
Примените изменения, перезапустив службу HAProxy:
sudo systemctl restart haproxy
Шаг 8: Проверьте Вашу конфигурацию SSL
Чтобы проверить SSL-конфигурацию HAProxy, воспользуйтесь SSL Labs и введите имя Вашего домена. Инструмент предоставит исчерпывающий отчет о Вашей настройке SSL/TLS, включая данные о сертификате и любые потенциальные проблемы.
Заключение
Итак, изучение настройки SSL-сертификата в HAProxy очень важно для защиты Ваших веб-приложений и обеспечения надежной связи между клиентами и серверами. Правильно настроив конфигурацию SSL в HAProxy, Вы сможете защитить конфиденциальные данные и повысить общую безопасность. Следование этим рекомендациям поможет реализовать надежное шифрование и обеспечит безопасную работу Вашего сайта по протоколу HTTPS, предоставляя более безопасный опыт для Ваших пользователей.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10