суббота, 29 февраля 2020 г.

LetsEncrypt with HAProxy

LetsEncrypt with HAProxy
lxc launch ubuntu:18.04 haprx
lxc config device add haprx myport80 proxy listen=tcp:0.0.0.0:80 connect=tcp:localhost:80
#lxc config device remove haprx myport80
lxc config device add haprx myport443 proxy listen=tcp:0.0.0.0:443 connect=tcp:localhost:443
#lxc config device remove haprx myport443
lxc exec haprx -- sudo --user ubuntu --login
sudo apt update && sudo apt upgrade
sudo apt install haproxy
sudo systemctl enable haproxy
sudo systemctl start haproxy
sudo nano /etc/hosts

Добавить

127.0.0.1 localhost
10.91.211.107 web1.lxd
10.91.211.95 web2.lxd
10.91.211.176 gitlab.lxd
10.91.211.10 wordpress.lxd
10.91.211.37 wiki.lxd

Сохранить.


sudo nano /etc/haproxy/haproxy.cfg


-----


Сохранить.

sudo add-apt-repository -y ppa:certbot/certbot
sudo apt-get update
sudo apt-get install -y certbot
sudo systemctl stop haproxy

Первый раз создаем сертификаты вручную используя порт 80 (stop haproxy)

sudo certbot certonly --standalone -d web1.vt.info -d web2.vt.info -d gitlab.vt.info -d wordpress.vt.info -d wiki.vt.info --non-interactive --agree-tos --email admin@vt.info --http-01-port=80

Ниже обратить внимание что путь к папке сертификатами
/etc/letsencrypt/live/web1.vt.info/

Задан в первом  -d web1.vt.info !!!

HAProxy нужен ssl-сертификат, чтобы быть одним файлом в определенном формате:

sudo su -c "cat /etc/letsencrypt/live/web1.vt.info/fullchain.pem /etc/letsencrypt/live/web1.vt.info/privkey.pem > /etc/letsencrypt/live/web1.vt.info/vt.info.pem"

sudo systemctl start haproxy


Далее будем обновляться (можно попробовать):

sudo certbot renew --tls-sni-01-port=8888

Для автоматизации сделаем скрипт:

sudo nano /opt/update-certs.sh

#!/usr/bin/env bash

# Renew the certificate
certbot renew --force-renewal --tls-sni-01-port=8888
#certbot renew --tls-sni-01-port=8888

# Concatenate new cert files, with less output (avoiding the use tee and its output to stdout)
bash -c "cat /etc/letsencrypt/live/web1.vesuchet.info/fullchain.pem /etc/letsencrypt/live/web1.vesuchet.info/privkey.pem > /etc/letsencrypt/live/web1.vesuchet.info/vesuchet.info.pem"

# Reload  HAProxy
service haproxy reload

Сохранить.

Комментариев нет:

Отправить комментарий