🔐 Как настроить сертификат CA SSL на HAProxy |

🔐 Как настроить сертификат CA SSL на HAProxy

Мануал

HAProxy – это широко используемый, надежный, высокопроизводительный обратный прокси-сервер, который обеспечивает высокую доступность и возможность балансировки нагрузки для TCP и HTTP приложений.

По умолчанию он скомпилирован с OpenSSL, таким образом, поддерживая завершение SSL, позволяя вашему сайту/стеку приложений шифровать и расшифровывать трафик между вашим “сервером веб-входа” или сервером шлюза доступа приложений и клиентскими приложениями.

Это руководство покажет, как настроить сертификат CA SSL в HAPorxy.

Это руководство предполагает, что вы уже получили сертификат от УЦ (CA) и готовы установить и настроить его на сервере HAProxy.

Такими файлами являются:

  • Сам сертификат.
  • Промежуточные сертификаты, также называемые пучками или цепочками, и.
  • Корневой CA, если имеется, и Закрытый ключ.

Создание файла SSL-сертификата в формате PEM

Прежде чем настраивать сертификат СФ на HAProxy, необходимо понять, что HAProxy требует один файл .pem, который должен содержать содержимое всех вышеперечисленных файлов, скомпонованных в следующем порядке:

  1. Закрытый ключ, который заканчивается .key, (может находиться в начале или в конце файла).
  2. Затем SSL-сертификат (обычно заканчивается .crt).
  3. Затем CA-Bundle (обычно заканчивается .ca-bundle), и
  4. Корневой УЦ, если таковой имеется.

Чтобы создать файл .pem, перейдите в каталог, в котором находятся файлы сертификатов, например ~/Downloads, затем выполните команду cat следующим образом (замените имена файлов соответствующим образом):

$ cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem

Настройка PEM SSL сертификата на HAProxy

Затем загрузите только что созданный файл сертификата .pem на сервер HAProxy с помощью команды scp, как показано далее (замените sysadmin и 192.168.10.24 на имя пользователя и IP-адрес удаленного сервера)

$ scp example.com.pem  sysadmin@192.168.10.24:/home/sysadmin/

Затем создайте каталог, в котором будет храниться файл сертификата .pem, с помощью команды mkdir и скопируйте в него файл:

$ sudo mkdir -p /etc/ssl/example.com/
$ sudo cp example.com.pem /etc/ssl/example.com/

Затем откройте конфигурационный файл HAProxy и настройте сертификат в разделе frontend listener, используя параметры ssl и crt: первый разрешает SSL, а второй указывает расположение файла сертификата.

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1
     redirect scheme https code 301 if !{ ssl_fc }
      default_backend http_servers

Некоторые версии SSL/TLS сейчас не рекомендуется использовать из-за обнаруженных в них уязвимостей.

10 онлайн инструментов для тестирования SSL, TLS и последних уязвимостей

Чтобы ограничить поддерживаемую версию SSL, можно добавить параметр ssl-min-ver следующим образом:

bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1   ssl-min-ver TLSv1.2

Настройка HAProxy для перенаправления HTTP на HTTPS

Чтобы гарантировать, что ваш сайт доступен только через HTTPS, вам нужно включить HAProxy для перенаправления всего HTTP трафика на HTTPS в случае, если пользователь пытается получить доступ к нему через HTTP (порт 80).

Добавьте следующую строку в приведенную выше конфигурацию:

redirect scheme https code 301 if !{ ssl_fc }
или
http-request redirect scheme https unless { ssl_fc }

Теперь ваш раздел frontend должен выглядеть так, как показано в этом примере конфигурации:

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1  ssl-min-ver TLSv1.2
      redirect scheme https code 301 if !{ ssl_fc }
      default_backend   http_servers

backend http_servers
      mode http
      balance roundrobin
      option httpchk HEAD /
      http-response set-header X-Frame-Options SAMEORIGIN
      http-response set-header X-XSS-Protection 1;mode=block
      http-response set-header X-Content-Type-Options nosniff
      default-server check maxconn 5000
      server http_server1 10.2.1.55:80

Сохраните файл конфигурации и закройте его.

Затем проверьте правильность его синтаксиса с помощью следующей команды:

$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c

Если файл конфигурации нормальный, выполните перезагрузку службы haproxy, чтобы учесть последние изменения в конфигурации, используя команду systemctl:

$ sudo systemctl reload haproxy

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

Мы надеемся, что это руководство помогло вам настроить SSL сертификат в программном обеспечении балансировщика нагрузки HAProxy.

Если вы столкнулись с какими-либо ошибками, сообщите нам об этом через форму обратной связи ниже.

Мы будем рады помочь вам.

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий