Public Key im DKIM Record automatisch aktualisieren
Hallo zusammen,
im Zuge einer Moodle-Installation habe ich gestern meinen ersten Postfix Server mit allem drum und dran aufgesetzt, sodass die Instanz Benachrichtigungen wie die E-Mail Bestätigung senden kann. Da es ein Hobbyprojekt ist, würde ich mir sowas wie AWS SES gerne sparen. Domain und Server läuft über Netcup.
Damit die Mails gut durchkommen, muss ich wohl den PK des Certs (nutze let's encrypt) im DKIM TXT-Record einbetten. Da let's encrypt (spätestens) alle drei Monate das Zertifikat erneuert, und ich das ziemlich sicher verpassen werde (bzw. bis sich die DNS Änderung durchgesetzt hat auch einfach keine Mails durchgehen) würde ich den PK gerne automatisch extrahieren und irgendwie verlinken. Ich dachte vielleicht an so etwas wie den PK auf dem Webserver abzulegen und die URL anzugeben. Meine Recherche war jedoch nicht erfolgreich.
Gibt es da irgendeine Möglichkeit für? Bzw. habt ihr einen anderen Workaround für das "Problem"? Reicht es vielleicht auch, die DMARC Policy auf p=none zu setzen? Wenn es gelegentlich im spam ordner landet, könnte ich zur Not auch damit leben.
Grüße
Shannon
im Zuge einer Moodle-Installation habe ich gestern meinen ersten Postfix Server mit allem drum und dran aufgesetzt, sodass die Instanz Benachrichtigungen wie die E-Mail Bestätigung senden kann. Da es ein Hobbyprojekt ist, würde ich mir sowas wie AWS SES gerne sparen. Domain und Server läuft über Netcup.
Damit die Mails gut durchkommen, muss ich wohl den PK des Certs (nutze let's encrypt) im DKIM TXT-Record einbetten. Da let's encrypt (spätestens) alle drei Monate das Zertifikat erneuert, und ich das ziemlich sicher verpassen werde (bzw. bis sich die DNS Änderung durchgesetzt hat auch einfach keine Mails durchgehen) würde ich den PK gerne automatisch extrahieren und irgendwie verlinken. Ich dachte vielleicht an so etwas wie den PK auf dem Webserver abzulegen und die URL anzugeben. Meine Recherche war jedoch nicht erfolgreich.
Gibt es da irgendeine Möglichkeit für? Bzw. habt ihr einen anderen Workaround für das "Problem"? Reicht es vielleicht auch, die DMARC Policy auf p=none zu setzen? Wenn es gelegentlich im spam ordner landet, könnte ich zur Not auch damit leben.
Grüße
Shannon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3765992281
Url: https://administrator.de/forum/public-key-im-dkim-record-automatisch-aktualisieren-3765992281.html
Ausgedruckt am: 19.04.2025 um 01:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo> Zitat von @ClaudeShannon:
Damit die Mails gut durchkommen, muss ich wohl den PK des Certs (nutze let's encrypt) im DKIM TXT-Record einbetten.
Hallo,
nein, Du hast DKIM noch nicht ganz verstanden. Die Mails werden auf dem Server mit einem eigenen Schlüsselpaar signiert, z.B. durch OpenDKIM, das mit dem TLS-Zertifikat nichts zu tun hat. Die Schlüsselerzeugung, -verwendung und Erstellung der DNS-Einträge kann man natürlich scripten (was zur Schlüsselrotation auch sinnvoll ist, da man mindestens zwei öffentliche Schlüssel veröffentlichen sollte), wofür die DNS-Verwaltung allerdings eine API haben muss.
Grüße
Richard
Damit die Mails gut durchkommen, muss ich wohl den PK des Certs (nutze let's encrypt) im DKIM TXT-Record einbetten.
Hallo,
nein, Du hast DKIM noch nicht ganz verstanden. Die Mails werden auf dem Server mit einem eigenen Schlüsselpaar signiert, z.B. durch OpenDKIM, das mit dem TLS-Zertifikat nichts zu tun hat. Die Schlüsselerzeugung, -verwendung und Erstellung der DNS-Einträge kann man natürlich scripten (was zur Schlüsselrotation auch sinnvoll ist, da man mindestens zwei öffentliche Schlüssel veröffentlichen sollte), wofür die DNS-Verwaltung allerdings eine API haben muss.
Grüße
Richard
Zitat von @ClaudeShannon:
Das verstehe ich noch nicht so ganz. Eingebunden habe ich das ganze nach dieser Anleitung über:
Könntest du mir nochmal kurz einen Hinweis geben, warum das nicht sinnvoll ist? Die Einstellung smtpd_tls_cert_file hat für mich impliziert, dass hier ein TLS Zertifikat gefordert ist.
Das verstehe ich noch nicht so ganz. Eingebunden habe ich das ganze nach dieser Anleitung über:
sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/<your.domain>/fullchain.pem'
sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/<your.domain>/privkey.pem'
Das ist schon richtig, aber nicht für DKIM. Du willst offenbar noch gar kein DKIM, sondern erst mal deinen SMTP-Server verschlüsselt erreichen. Dazu ist die Konfiguration der Zertifikate korrekt, es besteht aber gar keine Abhängigkeit ins DNS.
Das ist wie beim Webserver auch, nur für SMTP: Du hast einen A-Record, der auf mail.mydomain.com verweist. Wenn eine verschlüsselte Verbindung zustande kommen soll, muss auf dem Server ein Zertifikat liegen, das für mail.mydomain.com gültig ist, mehr nicht.
DKIM Keys lauen afaik nicht ab. Allerdings solltest Du die DKIM-Schlüssel regelmäßig rotieren, um einen potentiellen Leak dessen, pro aktiv entgegen zu wirken.
Es gibt hier allerdings teils unterschiedliche Meinungen, einige würden sogar sagen, rotieren braucht man nicht, maximal reaktiv.
Andere wiederum schwören auf eine Rotierung je Quartal. Deine Entscheidung sollte maßgeblich vom Sicherheitsbedarf abhängen (Risko versus Wahrscheinlichkeit), da du idr die Rotierung von Hand vornehmen musst.
Es gibt hier allerdings teils unterschiedliche Meinungen, einige würden sogar sagen, rotieren braucht man nicht, maximal reaktiv.
Andere wiederum schwören auf eine Rotierung je Quartal. Deine Entscheidung sollte maßgeblich vom Sicherheitsbedarf abhängen (Risko versus Wahrscheinlichkeit), da du idr die Rotierung von Hand vornehmen musst.
Zitat von @ClaudeShannon:
So, jetzt kommt Licht ins Dunkle ... Ich dachte, das wäre dasselbe. Dementsprechend kann der Key auch gar nicht ablaufen, sehe ich das richtig? Und die ursprüngliche Überlegung war eigentlich überflüssig?
Zitat von @c.r.s.:
Das ist schon richtig, aber nicht für DKIM. Du willst offenbar noch gar kein DKIM, sondern erst mal deinen SMTP-Server verschlüsselt erreichen.
Das ist schon richtig, aber nicht für DKIM. Du willst offenbar noch gar kein DKIM, sondern erst mal deinen SMTP-Server verschlüsselt erreichen.
So, jetzt kommt Licht ins Dunkle ... Ich dachte, das wäre dasselbe. Dementsprechend kann der Key auch gar nicht ablaufen, sehe ich das richtig? Und die ursprüngliche Überlegung war eigentlich überflüssig?
Das TLS-Zeritifkat wird nur auf dem Server getauscht. DKIM-Keys hingegen sind nackte Schlüsselpaare, deren öffentlicher Schlüssel nicht zusammen mit Metadaten als Zertifikat signiert sind, und können daher nicht ablaufen.
Es sind aber 1 - 2 kbit RSA-Schlüssel, die heute als kryptographisch schwach gelten (ein RSA-Zertifikat würde man heute eher mit mindestens 4 kbit erzeugen) und analog zu entsprechenden Zertifikaten gewechselt werden sollten. Die Trägheit des DNS erfordert dabei die Veröffentlichung eines neuen Schlüssels rund 24 Stunden vor seiner Verwendung. Warteschlangen bereits signierter Mails erfordern das Vorhalten ehemals verwendeter Schlüssel für z.B. 7 Tage.
D.h. man kann den Prozess vergleichsweise komplex und gestreckt halten, indem man sich diesen Fristen annähert, z.B. einmal jährlich einen neuen Schlüssel generiert und veröffentlicht, 24 Stunden wartet, den neuen Schlüssel in Verwendung nimmt, 7 Tage wartet, den alten Schlüssel entfernt, und damit die effektive Gültigkeit eines Schlüssels auf rund ein Jahr begrenzen.
Ich tendiere dazu, den Prozess zu vereinfachen und lieber häufiger durchzuführen: Ein Skript veröffentlicht drei Schlüssel. Bei der Rotation nimmt der Server den nächsten Schlüssel in Verwendung und es wird der zukünftige, übernächste Schlüssel aktualisiert. Das ist ein ein punktueller Vorgang, der, wenn er spätestens alle vier Monate ausgeführt wird, ebenfalls auf eine maximale Gültigkeit eines Schlüssels von einem Jahr kommt.