Sorry, dass ich diesen Thread aus der Versenkung hole. Dennoch habe ich mich regelmäßig nach Ablauf des Zertifikates geärgert, dass ich das Ersetzen der TLSA-Records bei meinem externen Domain-Provider verpasst habe.
Daher habe ich mir ein kleines Skript gebastelt, damit ich eine Erinnerungs-E-Mail erhalte.
Folgende Kriterien waren für die Erinnerungs-E-Mail maßgeblich:
1. Sollte die "/etc/postfix/postfix.pem geprüft werden, ob sich das Datum geändert hat.
2. Das aktuelle X3-Zertifikat soll gleich mit runtergeladen, der Hash generiert und die lets-encrypt-x3-cross-signed.pem wieder gelöscht werden.
3. Sollten die Records inkl. Hash gleich in den E-Mails stehen, damit ich sie nur rauskopieren muss.
tlsacheck.sh
Bash:
#!/bin/bash
your_email="deine@emailaddy.de"
subject="Wichtig! TLSA-Record muss erneuert werden"
mailtext="WICHTIG!\r\n\r\nDas Postfix-Zertifikat im Ordner /etc/postfix hat ein neues Datum und der TLSA-Record muss erneuert werden!"
certpath="/etc/postfix/postfix.pem"
[[ -z `find $certpath -mmin -60` ]]
if [ $? -eq 0 ]
then
exit 0
else
echo -e $mailtext | mail $your_email -s "$subject"
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem && openssl x509 -in lets-encrypt-x3-cross-signed.pem -noout -pubkey | openssl rsa -pubin -outform DER | openssl dgst -sha256 -hex | awk '{print "*._tcp TLSA 2 1 1", $NF}' | mail -s "Output X3-TLSA" $your_email && rm lets-encrypt-x3-cross-signed.pem
openssl x509 -in $certpath -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256 -binary | hexdump -ve '/1 "%02x"' | awk '{print "*._tcp TLSA 3 1 1", $NF}' | mail -s "Output Postfix-TLSA" $your_email
fi
Hinweis: Da ich eine Fallback-Lösung wollte, nutze ich hier die Variante 211 und 311 (Kann ja nach Belieben geändert werden)
Das Skript liegt in meinem root und ich habe den cronjob
*/30 * * * * ./tlsacheck.sh
dafür eingerichtet, damit ich mindestens einmal die Datumsänderung innerhalb der 60 Minuten erwische.
Ich bin halt etwas vergesslich und drei E-Mails von root fallen mir eben auf.