HAProxy. Подключение TLS сертификатов LetsEncrypt с помощью ACME

Материал из megapuper
Версия от 11:35, 15 июля 2024; Root (обсуждение | вклад) (Новая страница: «SINGLE DOMAIN acme.sh installation apt install socat добавим пользака acme adduser --system --disabled-password --disabled-login --home /var/lib…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

SINGLE DOMAIN

acme.sh installation

apt install socat

добавим пользака acme adduser --system --disabled-password --disabled-login --home /var/lib/acme --quiet --force-badname --group acme

добавим пользака acme в группу haproxy adduser acme haproxy

создаём папку для acme mkdir /usr/local/share/acme.sh/

устанавливаем acme скрипт git clone https://github.com/acmesh-official/acme.sh.git cd acme.sh/ ./acme.sh --install --no-cron --no-profile --home /usr/local/share/acme.sh (не обращаем внимание на варнинги) ln -s /usr/local/share/acme.sh/acme.sh /usr/local/bin/ chmod 755 /usr/local/share/acme.sh/

создадим acme аккаунт переключимся в пользака acme sudo -u acme -s acme.sh --register-account --server letsencrypt -m finn@megapuper.ru

Содержание

=

Account key creation OK. Registering account: https://acme-v02.api.letsencrypt.org/directory Registered ACCOUNT_THUMBPRINT='Xzcw32Ofoos72RlnlJnzPqOre2XzfnGP8Gu8xsWW8zc'

=

вернёмся в рута exit


подрихтуем haproxy.conf

==

global

   stats socket /var/run/haproxy/admin.sock level admin mode 660
   setenv ACCOUNT_THUMBPRINT 'lCufto4sDRTHdmWL0EugFywGV54hBCuTTXvwifi65R4'

frontend web

   bind :80
   bind :443 ssl crt /etc/haproxy/certs/ strict-sni
   http-request return status 200 content-type text/plain lf-string "%[path,field(-1,/)].${ACCOUNT_THUMBPRINT}\n" if { path_beg '/.well-known/acme-challenge/' }

==

генерируем сертификат

переключаемся в пользака acme sudo -u acme -s

acme.sh --issue -d haproxy.iwad.ru --stateless --server letsencrypt

деплоим сертификат на сервер sudo -u acme -s

DEPLOY_HAPROXY_HOT_UPDATE=yes \ DEPLOY_HAPROXY_STATS_SOCKET=/var/run/haproxy/admin.sock \ DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ acme.sh --deploy -d haproxy.iwad.ru --deploy-hook haproxy

проверяем серт на хапроксе echo "show ssl cert /etc/haproxy/ssl/haproxy.iwad.ru" |\

  socat /var/run/haproxy/admin.sock -

автопродление сертификата sudo -u acme -s acme.sh --install-cronjob

проверяем что добавилась строчка 21 3 * * * /usr/local/share/acme.sh/acme.sh --cron --home "/var/lib/acme/.acme.sh" > /dev/null


WILDCARD https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf

export CF_Key="8025a22a233169a37e52c5949c258d30a6d0c" export CF_Email="finn@megapuper.ru"

acme.sh --issue -d *.pushads.biz --server letsencrypt --dns dns_cf


деплоим серт на хапрокси DEPLOY_HAPROXY_HOT_UPDATE=yes \ DEPLOY_HAPROXY_STATS_SOCKET=/var/run/haproxy/admin.sock \ DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ acme.sh --deploy -d *.pushads.biz --deploy-hook haproxy

проверяем на хапроксе echo "show ssl cert /etc/haproxy/ssl/_.pushads.biz.pem" | socat /var/run/haproxy/admin.sock -