Назад | Перейти на главную страницу

HAProxy: настройка SSL с помощью Let's Encrypt

Я просто создаю новый сертификат SSL, используя Давайте зашифровать. Сейчас пытаюсь настроить HAProxy.

Это папки и сертификаты:

700  archive
     |--------> 755 company.cxx
                    |------------> 644 fullchain.pem
                    |------------> 644 cert.pem
                    |------------> 644 (etc.)  

Прямо сейчас это разрешения папок и мягкие ссылки к сертификатам в archive папка:

700  live
     |--------> 755 company.cxx
                    |------------> 777 fullchain.pem
                    |------------> 777 cert.pem
                    |------------> 777 (etc.)         

HAProxy настроен так:

frontend public
    bind :80
    bind :443 ssl crt /etc/letsencrypt/live/company.cxx/fullchain.pem

И ошибка такая:

Proxy 'public': no SSL certificate specified for bind ':443' at [/etc/haproxy/haproxy.cfg:12] (use 'crt').
Fatal errors found in configuration.

Я не знаю, проблема в разрешениях, но Я беспокоюсь о том, какой способ сделать это с HAProxy будет правильным. Буду признателен за вашу помощь.

РЕДАКТИРОВАТЬ: Просто для тестирования попробовал скопировать сертификаты в /etc/haproxy но это не сработало.

Как вы указали в своем собственном ответе, минимум, который вам нужен от LetsEncrypt (LE), - это конкатенированная версия fullchain.pem и privkey.pem.

Но запуск клиента LE вручную каждый раз, когда истекает срок действия сертификата, приводит к поражению цели использования LE. Кроме того, вы не можете использовать клиент LE в автономном режиме, если ваш экземпляр HAProxy уже прослушивает порт 80 для других веб-сайтов.

В качестве альтернативы вам может быть интересно это Плагин проверки HAProxy ACME.

Плагин использует HAProxy Lua API, чтобы позволить HAProxy отвечать на запросы проверки, используя файлы токена / ключа аутентификации, предоставленные клиентом ACME в указанный каталог.

По сути, у вас есть HAProxy, отправляющий все запросы, соответствующие хорошо известному пути проверки ACME, плагину LUA, который автоматически отвечает на запрос для любого запрашиваемого домена. У вас также есть настройка задания cron, которая регулярно проверяет срок действия сертификата и автоматически обновляет его до истечения срока действия. Итак, ваш единственный ручной шаг - запросить начальный сертификат для домена и добавить ссылку PEM в ваш файл конфигурации HAProxy. После этого задание cron сохраняет ваш сертификат в актуальном состоянии навсегда (гипотетически).

Решение объяснено на DigitalOcean. Коротко:

  • Создайте объединенный файл pem fullchain.pem и privkey.pem
  • Переместите этот новый файл в /etc/haproxy/certs
  • Настроить HAProxy