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

haproxy ssl защищенный паролем закрытый ключ

Использование: Haproxy как завершение SSL

Требование: наши закрытые ключи защищены паролем, и нам не разрешено удалять пароль для закрытого ключа.

Проблема: если я запустил следующую команду haproxy -f /pathtoconf отображается запрос пароля, и после ввода пароля запускается haproxy

Чтобы решить эту проблему, я использовал сценарий ожидания, который автоматически предоставляет пароль.

Скрипт для автоматического заполнения пароля

#!/usr/bin/expect -f
set timeout 20
spawn nohup haproxy -f /opt/reverse-proxies/demo.cfg
expect "Enter PEM pass phrase:"
send "password\r"


expect_background
expect eof
exit

Я планирую автоматизировать его с помощью ansible-playbook, но мой вопрос, есть ли какой-либо чистый способ предоставить пароль для закрытого ключа, я немного поискал по этому поводу, но не смог найти какую-либо конфигурацию для него. От команды haproxy было несколько заявлений о том, что есть план обеспечить чистый подход, но он не может быть реализован в версии 1.6 и планирует сделать это в версии 1.7. Я просмотрел примечания к выпуску 1.7, но не смог найти много информации по этой теме. Есть ли какая-либо конфигурация, которую haproxy предоставляет для пароля с закрытым ключом? Или, если кто-то реализовал хорошее решение для преодоления этой проблемы, не могли бы вы направить меня в этом направлении.

Моя примерная конфигурация

global
    log 127.0.0.1 local2 debug

defaults
  timeout connect 5000
  timeout client  50000
  timeout server  50000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main
    log global
    bind *:4000 ssl crt /tmp/server.2.crt.pem
    default_backend             app


#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    log global
    mode http
    server  app1 127.0.0.1:4002