Let's Encrypt pomocí skriptu dehydrated
Kámoš mi, po přečtení článku o nasazení Let’s Encrypt na GitLab, doporučil použít skript dehydrated. Zde je tedy krátký návod, jak na něj.
Uživatel
Vytvoříme systémového uživatele pro běh skriptu dehydrated (kam také naklonujeme výše uvedený repositář):
useradd -d /var/lib/dehydrated -r -s /usr/sbin/nologin dehydrated
mkdir /var/lib/dehydrated
chown dehydrated:dehydrated /var/lib/dehydrated
Vytvoříme složku pro acme challange (tato složka musí být dostupná jako
http://domain/.well-known/acme-challenge/
- nastavení webového serveru není obsahem tohoto článku):
mkdir /var/www/dehydrated
setfacl -m u:dehydrated:rwx /var/www/dehydrated
Config
Nastavíme dehydrated (/var/lib/dehydrated/config
):
BASEDIR=$SCRIPTDIR
DOMAINS_TXT="${BASEDIR}/domains.txt"
CERTDIR="${BASEDIR}/certs"
ACCOUNTDIR="${BASEDIR}/accounts"
WELLKNOWN="/var/www/dehydrated"
KEYSIZE="4096"
A seznam domén (/var/lib/dehydrated/domains.txt
) ve tvaru:
example.com www.example.com
example.net www.example.net wiki.example.net
Takto se vytvoří dva certifikáty (dva řádky), s příslušnýmy jmény v SAN.
A zkusíme zavolat:
su -s /bin/bash -c "/var/lib/dehydrated/dehydrated --register --accept-terms" dehydrated
Služby
Pokud je vše ok, nastavíme systemd service (např: /etc/systemd/system/dehydrated.service
):
[Unit]
Description=Renew LE certs
Documentation=https://github.com/lukas2511/dehydrated
[Service]
Type=oneshot
User=dehydrated
Group=dehydrated
WorkingDirectory=/var/lib/dehydrated
ExecStart=/bin/bash dehydrated -c
a timer (/etc/systemd/system/dehydrated.timer
):
[Unit]
Description=Renew LE certs regularly
[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
A zkontrolujeme:
systemctl daemon-reload
systemctl start dehydrated
systemctl status dehydrated
Měl by se zažádat o cert a vytvořit v /var/lib/dehydrated/certs/domain/
soubory.
Pokud je vše ok, sputíme timer:
systemctl enable dehydrated.timer
systemctl start dehydrated.timer