On Sun, Feb 16, 2020 at 03:32:52PM +0100, Jutta Wrage via Exim-users-de wrote:
> Hallo!
>
> Ich denke, es ist sinnvoll, zu schreiben, wie ich das Problem mit dem SSL-Key gelöst habe:
>
> Ein script in /usr/local/bin erstellt, daß im Letsencrypt-Verzeichnis auf einen neuen Key prüft und diesen bei Bedarf mit preserver-timestamps kopiert.
>
> Das ganze dann in cron.daily aufgerufen.
>
> Den Key ansehen kann man im Übrigen z. B. mit
>
> openssl x509 -text -noout -in /etc/exim4/exim.crt
>
> Da stehen dann unter anderem die Validity (von/bis) drin, der Herausgeber und die Namen der hosts, für die er gilt.
In meinem /usr/local/sbin/dehydrated-renew benutze ich nur -enddate
# get cert enddate Not After
endzert=$(openssl x509 -enddate -noout -in ${zert}/cert.pem | cut -d"=" -f2)
# convert to epoch -15 days
renew=$(date -d "${endzert} -15 days" "+%s")
Ansonsten überprüfe ich einfach stumpf alle letscrypt Zertifikate:
MYDH_BASE="/var/lib/dehydrated/certs"
for zert in ${MYDH_BASE}/*
do
...
done
> Auf die Idee mit dem Script und dem Cronjob hat mich das Debian-Buch von Heike Jurzik gebracht.
>
> Wichtig: Der Eigentümer muß bei Debian Debian-exim sein. Und der private Key natürlich nicht weltweit lesbar.
>
> Etwas besseres ist mir ohne Veränderung der Rechte im Verzeichnisbaum von letscrypt nicht eingefallen.
Das und einiges mehr lasse ich dehydrated in der Shellfunction
deploy_cert() in /etc/dehydrated/hook.sh erledigen. Ich habe mich
dafür entschieden die Berechtigung von /etc/ssl/private/ zu ändern und
das Zertifikat dort für die Gruppe Debian-exim lesbar zu machen:
drwx--xr-x 2 root ssl-cert 4096 Feb 4 21:20 /etc/ssl/private/
-rw-r----- 1 root Debian-exim 7314 Feb 4 21:20 /etc/ssl/private/union-letsencrypt.pem
In deploy_cert() sieht das dann so aus:
# create new pem
cat "${KEYFILE}" "${FULLCHAINFILE}" > "${my_target_pem}"
# set owner & permissions
chown root:Debian-exim "${my_target_pem}" && chmod 640 "${my_target_pem}"