Das ist auf Uberspace recht leicht. Hierzu wird zuerst für einen reibungslosen Abaluf die .config/letsencrypt/cli.ini angepasst, um später nicht wieder nach den Terms of Service gefragt zu werden. Hier ist das alles recht gut im Uberspace-Wiki beschrieben.
1 2 3 4 5 6 |
cat >> ${HOME}/.config/letsencrypt/cli.ini <<__EOF__ # To prevent being forced to agree manually to the terms agree-tos = True __EOF__ |
Ein neues Script wird vorbreitet.
1 |
domain=$(grep -e "[ \t]*domains.*" ~/.config/letsencrypt/cli.ini| sed "s/ //g" |cut -d "=" -f2 | cut -d "," -f1) |
Dazu wird in die nun neu erstellte Datei /bin/letsencrypt-renew Folgendes noch angefügt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
cat > ${HOME}/bin/letsencrypt-renew <<__EOF__ #!/bin/bash PATH=$PATH # sleep for a random time so not all certificates get renewed at the same time sleep $(expr $RANDOM % 600) openssl x509 -checkend $(( 10 * 86400 )) -in ~/.config/letsencrypt/live/${domain}/cert.pem > /dev/null if [ \$? != 0 ]; then # run let's encrypt letsencrypt certonly # import certificate uberspace-add-certificate -k ~/.config/letsencrypt/live/${domain}/privkey.pem -c ~/.config/letsencrypt/live/${domain}/cert.pem fi __EOF__ |
Mit Ctrl + o und Enter speicher und mit Ctrl + x den Editor verlassen. Diese wird dann ausführbar gemacht.
1 |
chmod +x ${HOME}/bin/letsencrypt-renew |
Das Anlegen eines Cronjob sorgt dann in diesem Fall dafür, dass das Script nun wöchentlich ausgeführt wird.
1 |
crontab -e |
Dieser Inhalt wird eingetragen.
1 |
@weekly ~/bin/letsencrypt-renew |
und mit Ctrl + o und Enter gespeichert. Mit Ctrl + x verlässt man den Editor.
Um zu regelmäßig zu checken ob und wann das Zertifikat theoretisch auslaufen würde, kann folgender Befehl ausgeführt werden.
1 |
uberspace-list-certificates |