Jak nastavit DKIM záznam krok za krokem
Co potřebujete před nastavením DKIM
DKIM (DomainKeys Identified Mail) ověřuje integritu a původ e-mailů digitálním podpisem. Nastavení vyžaduje tři věci: vygenerovat klíčový pár, publikovat veřejný klíč v DNS a nakonfigurovat podepisování na mailovém serveru. Pokud si potřebujete osvěžit, jak DKIM funguje, přečtěte si Co je DKIM a jak funguje.
Před nastavením ověřte:
- Přístup k DNS vaší domény (správce DNS, registrátor nebo Cloudflare)
- Přístup k administraci e-mailové služby (Google Workspace, Microsoft 365, vlastní server)
- Funkční SPF záznam — DKIM a SPF se doplňují a oba jsou podmínkou pro nasazení DMARC
Krok 1: Vygenerujte klíčový pár
DKIM používá asymetrickou kryptografii — privátní klíč podepisuje zprávy, veřejný klíč v DNS umožňuje příjemci podpis ověřit.
Cloudové služby
Pokud používáte Google Workspace, Microsoft 365 nebo jinou cloudovou e-mailovou službu, nemusíte klíče generovat ručně. Služba je vygeneruje za vás — stačí je aktivovat v administraci a přidat DNS záznam. Podrobnosti najdete v sekci Nastavení DKIM u cloudových služeb.
Vlastní mailový server
Na vlastním serveru vygenerujete klíč pomocí OpenSSL nebo OpenDKIM. Zvolte selektor — unikátní identifikátor klíče (např. mail2025 nebo s1). Selektor umožňuje mít pod jednou doménou více DKIM klíčů současně.
Generování 2048bitového RSA klíče:
openssl genrsa -out dkim-private.pem 2048
openssl rsa -in dkim-private.pem -pubout -outform der | openssl base64 -A > dkim-public.txt
První příkaz vytvoří privátní klíč, druhý z něj extrahuje veřejný klíč v Base64 formátu připraveném pro DNS záznam.
Používejte klíče o délce 2048 bitů. RFC 8301 vyžaduje minimálně 1024bitové RSA klíče a doporučuje 2048 bitů. V praxi je 2048 bitů standard — velcí poskytovatelé (Google, Microsoft, Yahoo) považují 1024bitové klíče za zastaralé a postupně je přestávají přijímat.
Krok 2: Publikujte veřejný klíč v DNS
Veřejný klíč se publikuje jako TXT záznam na adrese {selektor}._domainkey.{doména}:
mail2025._domainkey.firma.cz TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
Tagy DKIM DNS záznamu
| Tag | Význam | Povinný |
|---|---|---|
v=DKIM1 |
Verze protokolu | doporučený |
k=rsa |
Typ klíče (rsa nebo ed25519) |
ne (výchozí rsa) |
p= |
Veřejný klíč v Base64 | ano |
t=y |
Testovací režim | ne |
t=s |
Strict mode — doména v identifikátoru uživatele (i=) musí přesně odpovídat doméně v d=, nesmí být její subdoménou |
ne |
Rozdělení dlouhého klíče
DNS TXT záznamy mají limit 255 znaků na řetězec (RFC 1035). Klíč o délce 2048 bitů tento limit překračuje. Řešení závisí na vašem DNS poskytovateli:
- Většina DNS správců (Cloudflare, WEDOS, Forpsi a další) rozdělení provede automaticky — vložíte celou hodnotu jako jeden řetězec a systém ji rozdělí sám.
- Ruční rozdělení je nutné jen při přímé editaci zónového souboru:
mail2025._domainkey.firma.cz TXT ("v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQE..."
"...FAAOCAQ8AMIIBCgKCAQEA...")
CNAME místo TXT záznamu
Některé služby (Microsoft 365, SendGrid, Mailchimp) používají místo přímého TXT záznamu CNAME záznam, který odkazuje na DKIM klíč hostovaný na jejich infrastruktuře:
selector1._domainkey.firma.cz CNAME selector1-firma-cz._domainkey.firma.onmicrosoft.com
Výhoda CNAME delegace: poskytovatel může klíč rotovat automaticky bez nutnosti úprav ve vašem DNS.
Krok 3: Nakonfigurujte podepisování
Postfix + OpenDKIM (Linux)
Na serverech s Postfixem je nejběžnější kombinace s OpenDKIM:
- Nainstalujte OpenDKIM:
apt install opendkim opendkim-tools
- Vytvořte konfigurační soubory. Hlavní konfigurace
/etc/opendkim.conf:
Syslog yes
UMask 007
Domain firma.cz
Selector mail2025
KeyFile /etc/opendkim/keys/firma.cz/mail2025.private
Socket inet:8891@localhost
Canonicalization relaxed/relaxed
Mode sv
- Propojte Postfix s OpenDKIM v
/etc/postfix/main.cf:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
- Restartujte oba služby:
systemctl restart opendkim postfix
Důležité parametry konfigurace:
- Canonicalization
relaxed/relaxed— toleruje drobné změny (mezery, velikost písmen), které provádějí přeposílající servery. Doporučeno oproti výchozímusimple/simple. - Mode
sv— sign (podepisování) + verify (ověřování příchozích).
Nastavení DKIM u cloudových služeb
Google Workspace
- Přejděte do Admin konzole → Aplikace → Google Workspace → Gmail → Ověřit e-mail
- Vyberte doménu a klikněte na Vygenerovat nový záznam
- Zvolte délku klíče 2048 bitů (pokud ji váš DNS poskytovatel podporuje)
- Zkopírujte vygenerovaný TXT záznam a přidejte ho do DNS vaší domény
- Po propagaci DNS (až 48 hodin) se vraťte do Admin konzole a klikněte na Zahájit ověřování
Google používá výchozí selektor google. Pokud jste dříve nastavili DKIM s 1024bitovým klíčem, vygenerujte nový 2048bitový a aktualizujte DNS záznam.
Microsoft 365
Microsoft 365 používá CNAME záznamy místo přímých TXT záznamů:
- Přejděte do Microsoft Defender portálu → E-mail a spolupráce → Zásady a pravidla → Zásady hrozeb → Nastavení ověřování e-mailů → DKIM
- Vyberte svou doménu a klikněte na Vytvořit DKIM klíče
- Přidejte dva CNAME záznamy do DNS:
selector1._domainkey.firma.cz CNAME selector1-firma-cz._domainkey.firma.onmicrosoft.com
selector2._domainkey.firma.cz CNAME selector2-firma-cz._domainkey.firma.onmicrosoft.com
- Po propagaci DNS přepněte přepínač Podepisovat zprávy DKIM podpisy na Zapnuto
Dva selektory (selector1, selector2) umožňují Microsoftu automatickou rotaci klíčů.
Marketingové a transakční platformy
Pokud kromě hlavního e-mailu odesíláte zprávy přes marketingové nebo transakční platformy (Mailchimp, SendGrid, Mailgun, Amazon SES), každá služba potřebuje vlastní DKIM konfiguraci:
- Každá platforma má v administraci sekci pro ověření domény (Domain Authentication)
- Služba vygeneruje DNS záznamy (TXT nebo CNAME), které přidáte ke své doméně
- Po ověření bude služba podepisovat e-maily vaším doménovým DKIM klíčem místo svého výchozího
Neověřené služby podepisují e-maily vlastní doménou — příjemce v hlavičce vidí „podepsáno: sendgrid.net" místo vaší domény, což snižuje důvěryhodnost a narušuje DMARC alignment.
Krok 4: Ověřte funkčnost
Po nasazení DKIM ověřte, že podepisování funguje správně:
- Odešlete testovací e-mail na adresu mimo vaši doménu (např. na Gmail)
- Zkontrolujte hlavičky přijatého e-mailu — hledejte:
Authentication-Results: mx.google.com;
dkim=pass header.d=firma.cz header.s=mail2025
- Ověřte DNS záznam — zkontrolujte, že je veřejný klíč správně publikovaný a dostupný
Pokud DKIM kontrola selhává, zkontrolujte:
- Zda DNS záznam existuje na správné adrese (
{selektor}._domainkey.{doména}) - Zda hodnota
p=obsahuje kompletní veřejný klíč bez hlaviček PEM souboru - Zda se selektor v DNS shoduje se selektorem v konfiguraci serveru
- Zda uplynul dostatek času na propagaci DNS (standardně do 1 hodiny, maximálně 48 hodin)
Rotace klíčů
DKIM klíče byste měli pravidelně rotovat — doporučený interval je každých 6–12 měsíců. Postup bezpečné rotace:
- Vygenerujte nový klíčový pár s novým selektorem (např.
mail2025q3) - Publikujte nový veřejný klíč v DNS
- Počkejte na propagaci DNS
- Přepněte podepisování na nový klíč
- Starý DNS záznam ponechte ještě 7–14 dní — e-maily podepsané starým klíčem mohou být stále v doručovacích frontách
- Po uplynutí přechodného období smažte starý DNS záznam
U cloudových služeb:
- Google Workspace vyžaduje ruční rotaci — vygenerujte nový klíč v Admin konzoli a aktualizujte DNS
- Microsoft 365 rotuje klíče automaticky díky dvěma CNAME selektorům
Ed25519 jako doplněk k RSA
RFC 8463 zavedl podporu algoritmu Ed25519 pro DKIM podpisy. Ed25519 nabízí kratší klíče (256 bitů) při vyšší bezpečnosti než RSA 2048 (odpovídá přibližně RSA 3072) a výrazně menší DNS záznamy.
Podpora Ed25519 zatím není univerzální — ne všechny přijímající servery ho umí ověřit. Řešením je dual signing: server podepisuje každou zprávu dvěma podpisy (Ed25519 + RSA). Každý algoritmus vyžaduje vlastní selektor v DNS (např. mail2025-ed pro Ed25519 a mail2025 pro RSA). Příjemce, který Ed25519 nepodporuje, ověří RSA podpis.
Pokud provozujete vlastní server a chcete být připraveni na budoucnost, nasaďte dual signing. U cloudových služeb (Google Workspace, Microsoft 365) tuto volbu zatím nemáte — používají výhradně RSA.
Nejčastější chyby při nastavení DKIM
Chybějící DKIM pro všechny odesílací služby
Nejčastější problém: firma nastaví DKIM pro hlavní mailový server, ale zapomene na marketingovou platformu, helpdesk nebo fakturační systém. Každá služba odesílající e-maily z vaší domény potřebuje vlastní DKIM konfiguraci.
Řešení: Zmapujte všechny služby, které odesílají e-maily z vaší domény. Kompletní analýza domény vám ukáže, odkud se e-maily odesílají.
Zastaralý 1024bitový klíč
Pokud jste DKIM nastavili před lety, pravděpodobně používáte 1024bitový klíč. Přejděte na 2048 bitů — postup je stejný jako rotace klíčů.
Syntaktická chyba v DNS záznamu
Překlep v hodnotě p=, chybějící středník nebo nadbytečné mezery v klíči způsobí selhání ověření. Po přidání záznamu ho vždy zkontrolujte DNS nástrojem.
Zapomenutý krok u cloudových služeb
U Google Workspace nestačí přidat DNS záznam — musíte se vrátit do Admin konzole a kliknout na Zahájit ověřování. U Microsoft 365 musíte přepnout přepínač DKIM podepisování na Zapnuto. Bez tohoto kroku se e-maily nepodepisují, i když DNS záznam existuje.
Kontrolní seznam nastavení DKIM
- Všechny odesílací služby zmapovány
- Klíčové páry vygenerovány (min. 2048 bitů RSA)
- Veřejné klíče publikovány v DNS
- Podepisování aktivováno na serveru/ve službě
- Testovací e-mail odeslán a
dkim=passověřen - DKIM záznam ověřen analyzérem
- Plán rotace klíčů stanoven (6–12 měsíců)
- DMARC záznam nasazen pro kompletní ochranu