Я просто сгенерировал новый сертификат 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
, но это не сработало.
Как вы указали в своем собственном ответе, минимум, который вам нужен от 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 . Вкратце:
fullchain.pem
и privkey.pem
/ etc / haproxy / certs