Dehydrated

Dehydrated je script zjednodušující nasazení Let's Encryp certifikátů.

Postup rozchození

git clone  https://github.com/lukas2511/dehydrated
sudo cp dehydrated/dehydrated /usr/local/bin
sudo chmod +x /usr/local/bin/dehydrated
sudo mkdir /etc/dehydrated
sudo cp dehydrated/docs/examples/* /etc/dehydrated
sudo adduser --system --group --disabled-login --disabled-password --no-create-home dehydrated
sudo chgrp -R dehydrated /etc/dehydrated
sudo mkdir -p /var/www/dehydrated/.well-known/acme-challenge/
sudo chown -R www-data:www-data /var/www/dehydrated/

Dále vytvoříme /etc/dehydrated/config soubor:

config
BASEDIR=/etc/dehydrated
WELLKNOWN="/var/www/dehydrated/.well-known/acme-challenge/"
CONTACT_EMAIL=mail@example.com
HOOK=/etc/dehydrated/hook.sh

a upravíme /etc/dehydrated/hook.sh tak že na konec sekce deploy_cert() přidáme tyto řádky:

    cat $KEYFILE $FULLCHAINFILE > /etc/dehydrated/certs/${DOMAIN}/fullcert.pem
    chmod 750 /etc/dehydrated/certs/${DOMAIN}
    chmod 640 /etc/dehydrated/certs/${DOMAIN}/*.pem

provedeme znovu úpravu práv

sudo chgrp -R dehydrated /etc/dehydrated

A základní konfiguraci máme hotovou. Nyní nám stačí jen do /etc/dehydrated/domains.txt a do jednoho řádku napsat doménu a její subdomény pro které vytvořit certifikát. formát je následovný:

example.com subdomain.example.com othersubdomain.example.com

A tímto jsme připraveni začít s vytvořením účtu a následnému vytvoření certifikátu. Nejdříve si vytvoříme účet na Let's Encrypt:

/usr/local/bin/dehydrated --register --accept-terms

Vygenerujeme si certifikáty pro domény uvedené v domains.txt:

dehydrated -c -f /etc/dehydrated/config

A jelikož Let's Encrypt certifikáty mají platnost jen 90 dní, nastavíme si jednoduché obnovování pomocí cron. Do /etc/crontab přidáme následující řádky které nám obnoví zkusí obnovit certifikáty a následně restartují lighttpd aby se obnovené certifikáty načetly.

# Obnovení Let's Encrypt certifikatu
5 2     * * 6   root    /usr/local/bin/dehydrated -c -f /etc/dehydrated/config
10 2    * * 6   root    /etc/init.d/lighttpd restart

Pro nasazení certifikátů do lighttpd použijte certs.conf.

POZOR! Let's Encrypt nepodporuje *.example.com v domains.txt!