HAProxy - Динамическое обновление сертификатов SSL без перезагрузки
В настоящее время мы используем HAProxy для управления завершением TLS для тысяч доменов, каждый из которых имеет сертификаты Let's Encrypt, которые регулярно меняются.
Соответствующий конфиг выглядит так:
frontend https-in
bind *:443 ssl strict-sni no-sslv3 crt /usr/src/data/certs/
а также /usr/src/data/certs/
заполнен кучей файлов.pem.
Сертификаты SSL постоянно меняются, так как они обновляются по отдельности, или новые домены добавляются / удаляются из нашей системы. Сейчас мы решаем эту проблему, выполняя массовую запись всех сертификатов /usr/src/data/certs/
и выполнение перезагрузки haproxy с нулевым временем простоя. Это громоздко, так как мы получаем очень большой скачок памяти во время перезагрузки, поскольку новый экземпляр считывает при полной загрузке сертификатов, а старый экземпляр продолжает работать.
В настоящее время мы рассматриваем некоторые возможности команд Socket HAProxy Unix и видим много вещей, которые мы можем сделать динамическими (ACL, Карты и т. Д.). Мне интересно, есть ли подобный подход, который мы можем использовать, чтобы синхронизировать сертификаты и избежать постоянной перезагрузки.
Использование HAProxy 1.9 для экспериментов, но мы не женаты на какой-либо конкретной версии для этого. Спасибо за любую помощь или предложения!
Обновление я вижу документы вокруг манипуляции bind
здесь через API плоскости данных, но это не указывает явно, как или когда эти изменения будут получены. Поскольку он включает логическое значение для принудительной перезагрузки (или по умолчанию reload-delay
значение, если установлено) Я предполагаю, что есть предположение, что при перезагрузке требуется.
Если у кого-то есть цитата, чтобы подтвердить предположение, я был бы благодарен.
0 ответов
В HAProxy 2.1 (ноябрь 2019 г.) новая функция позволяет изменять сертификаты TLS без перезагрузки: https://www.haproxy.com/blog/dynamic-ssl-certificate-storage-in-haproxy/