HAProxy. Подключение TLS сертификатов LetsEncrypt с помощью ACME — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 32: | Строка 32: | ||
sudo -u acme -s | sudo -u acme -s | ||
acme.sh --register-account --server letsencrypt -m admin@iwad.ru | acme.sh --register-account --server letsencrypt -m admin@iwad.ru | ||
+ | |||
Account key creation OK. | Account key creation OK. | ||
Registering account: https://acme-v02.api.letsencrypt.org/directory | Registering account: https://acme-v02.api.letsencrypt.org/directory | ||
Registered | Registered | ||
ACCOUNT_THUMBPRINT='' | ACCOUNT_THUMBPRINT='' | ||
− | + | ||
− | exit | + | exit |
Строка 54: | Строка 55: | ||
sudo -u acme -s | sudo -u acme -s | ||
acme.sh --issue -d haproxy.iwad.ru --stateless --server letsencrypt | acme.sh --issue -d haproxy.iwad.ru --stateless --server letsencrypt | ||
+ | exit | ||
Строка 62: | Строка 64: | ||
DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ | DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ | ||
acme.sh --deploy -d iwad.ru --deploy-hook haproxy | acme.sh --deploy -d iwad.ru --deploy-hook haproxy | ||
+ | exit | ||
+ | |||
Проверяем серт на хапроксе | Проверяем серт на хапроксе | ||
Строка 78: | Строка 82: | ||
'''WILDCARD''' | '''WILDCARD''' | ||
− | |||
+ | Получаем сертификат | ||
+ | sudo -u acme -s | ||
export CF_Key="" | export CF_Key="" | ||
export CF_Email="admin@iwad.ru" | export CF_Email="admin@iwad.ru" | ||
− | + | acme.sh --issue -d *.iwad.ru --server letsencrypt --dns dns_cf | |
− | acme.sh --issue -d *. | ||
Деплоим серт на хапрокси | Деплоим серт на хапрокси | ||
+ | sudo -u acme -s | ||
DEPLOY_HAPROXY_HOT_UPDATE=yes \ | DEPLOY_HAPROXY_HOT_UPDATE=yes \ | ||
DEPLOY_HAPROXY_STATS_SOCKET=/var/run/haproxy/admin.sock \ | DEPLOY_HAPROXY_STATS_SOCKET=/var/run/haproxy/admin.sock \ | ||
DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ | DEPLOY_HAPROXY_PEM_PATH=/etc/haproxy/ssl \ | ||
acme.sh --deploy -d *.iwad.ru --deploy-hook haproxy | acme.sh --deploy -d *.iwad.ru --deploy-hook haproxy | ||
+ | exit | ||
+ | |||
Проверяем на хапроксе | Проверяем на хапроксе | ||
echo "show ssl cert /etc/haproxy/ssl/_.iwad.ru.pem" | socat /var/run/haproxy/admin.sock - | echo "show ssl cert /etc/haproxy/ssl/_.iwad.ru.pem" | socat /var/run/haproxy/admin.sock - | ||
+ | |||
+ | |||
+ | https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf |
Версия 21:47, 15 июля 2024
SINGLE DOMAIN
Заранее поставим socat
apt install socat
Создаём пользователя
adduser --system --disabled-password --disabled-login --home /var/lib/acme --quiet --force-badname --group acme
Добавляем его группу haproxy
adduser acme haproxy
Создаём папку для acme
mkdir /usr/local/share/acme.sh/
Устанавливаем скрипт
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/
Создадим аккаунт
sudo -u acme -s acme.sh --register-account --server letsencrypt -m admin@iwad.ru Account key creation OK. Registering account: https://acme-v02.api.letsencrypt.org/directory Registered ACCOUNT_THUMBPRINT= exit
Правим конфиг haproxy.conf
global stats socket /var/run/haproxy/admin.sock level admin mode 660 setenv ACCOUNT_THUMBPRINT 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/' }
Генерируем сертификат
sudo -u acme -s acme.sh --issue -d haproxy.iwad.ru --stateless --server letsencrypt exit
Деплоим сертификат на сервер
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 iwad.ru --deploy-hook haproxy exit
Проверяем серт на хапроксе
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
Получаем сертификат
sudo -u acme -s export CF_Key="" export CF_Email="admin@iwad.ru" acme.sh --issue -d *.iwad.ru --server letsencrypt --dns dns_cf
Деплоим серт на хапрокси
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 *.iwad.ru --deploy-hook haproxy exit
Проверяем на хапроксе
echo "show ssl cert /etc/haproxy/ssl/_.iwad.ru.pem" | socat /var/run/haproxy/admin.sock -
https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_cf