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

Я просто сгенерировал новый сертификат SSL, используя Let's Encrypt . Сейчас я пытаюсь настроить HAProxy.

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

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

Сейчас это права доступа к папкам и программные ссылки на сертификаты в архиве папка:

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 , но это не сработало.

1
задан 3 August 2016 в 05:12
2 ответа

Как вы указали в своем собственном ответе, минимум, который вам нужен от 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 постоянно обновляет ваш сертификат (гипотетически).

1
ответ дан 3 December 2019 в 20:36

Решение описано на DigitalOcean . Вкратце:

  • Создайте файл pem, объединяющий fullchain.pem и privkey.pem
  • Переместите этот новый файл в / etc / haproxy / certs
  • Настройте HAProxy
1
ответ дан 3 December 2019 в 20:36

Теги

Похожие вопросы