tech

Certbot op Debian

In een poging om mijn ISPConfig via het controlpanel certificaten te laten genereren liep ik tegen problemen aan. Zelfs de genoemde Skip Lets Encrypt Check leverde niets op.

Er is een alternatief genaamd certbot. Deze download je vanaf GitHub. Daarvoor moet je wel “git” eerst installeren.

apt-get install git

Vervolgens download je de Certbot bestanden:

cd /home/tabasco
git clone https://github.com/Certbot/Certbot
cd Certbot

Bij het doen van de eerste aanvraag, zul je merken dat Certbot nog wat dependencies download en installeert.

./certbot-auto certonly -w /var/www/steijvers.com/web -d steijvers.com -d www.steijvers.com

Hier kies je voor een verificatie via 1: Apache Web Server

Nu moet je de inhoud van je privkey.pem, cert.pem en chain.pem plakken binnen ISPConfig > Sites > je_website.ext > SSL.

SSL Key:

cat /etc/letsencrypt/live/steijvers.com/privkey.pem

SSL Certificate:

cat /etc/letsencrypt/live/steijvers.com/cert.pem

SSL Bundle:

cat /etc/letsencrypt/live/steijvers.com/chain.pem

Kies nu onderaan bij Select SSL Action voor “Save Certificate”.

Aangezien ik dit niet iedere paar maanden handmatig wil doorvoeren, voorzien we in enkele symlinks:

cd /var/www/steijvers.com/ssl
ln -sf /etc/letsencrypt/live/steijvers.com/fullchain.pem steijvers.com.crt
ln -sf /etc/letsencrypt/live/steijvers.com/privkey.pem steijvers.com.key

Vervolgens neem je dit renewal script en zet dit in je home of Certbot directory:

#!/bin/sh
systemctl stop apache2.service
/home/tabasco/Certbot/certbot-auto renew -nvv --standalone > /var/log/letsencrypt/renewal.log 2>&1
LE_STATUS=$?
systemctl start apache2.service
if [ "$LE_STATUS" != 0 ]; then
echo Automated renewal failed:
cat /var/log/letsencrypt/renewal.log
exit 1
fi

Maak het uitvoerbaar:

chmod +x certrenewal.sh

En maak er een cronjob voor aan:

crontab -e

Voeg daar de volgende regel aan toe om op iedere eerste dag van de maand om 5:00u te kijken of er iets vernieuwd dient te worden:

00 05 01 * * /home/tabasco/Certbot/certrenewal.sh