Dokumentacja

Skonfiguruj DKIM

Skonfiguruj DKIM

DKIM dodaje podpis do każdej wiadomości wysyłanej przez Twój system pocztowy. Serwer odbiorcy szuka w Twoim DNS klucza publicznego i sprawdza, czy wiadomość naprawdę pochodzi z systemu, który ma Twój klucz prywatny, i czy nie zmieniła się po drodze. W przeciwieństwie do SPF podpis przetrwa przekazanie dalej, dlatego DKIM jest tą częścią uwierzytelniania poczty, na której DMARC polega najbardziej. Gmail i Yahoo oczekują go od każdego nadawcy, a bez niego więcej Twojej poczty trafia do spamu.

Jak szuka go lista kontrolna

Klucz DKIM znajduje się pod <selektor>._domainkey.example.com, a selektor to nazwa wybrana przez dostawcę poczty. Nikt nie może wylistować wszystkich selektorów domeny, więc lista kontrolna strony próbuje popularnych:

google, default, selector1, selector2, k1, s1, mail, dkim

Dostawca Selektor
Google Workspace google (chyba że go zmieniłeś)
Microsoft 365 selector1, selector2
cPanel, Plesk default
Mailchimp k1
DirectAdmin x
wiele innych usług własna nazwa

Gdy znajdzie klucz, pozycja pokazuje selektor. Gdy nie znajdzie, zamiast błędu pokazuje –, bo Twój klucz może po prostu być pod nazwą, której nie sprawdzamy (na przykład x w DirectAdmin). Jeśli wiesz, że DKIM jest skonfigurowany, a poniższe sprawdzenie znajduje klucz, wszystko jest w porządku.

Sprawdź sam

Użyj selektora swojego dostawcy i zamiast example.com wpisz swoją domenę:

dig +short TXT google._domainkey.example.com
dig +short TXT selector1._domainkey.example.com

Microsoft 365 publikuje rekordy CNAME wskazujące do Microsoftu, więc dig podąża za nimi i na końcu wypisuje klucz.

Selektor już wysłanej wiadomości znajdziesz, otwierając ją w Gmailu (⋮ → Show original) lub w źródle wiadomości w innym programie i szukając nagłówka DKIM-Signature:. Tag d= to domena, s= to selektor. W Authentication-Results powinno być dkim=pass header.d=example.com.

Naprawione oznacza odpowiedź TXT zawierającą v=DKIM1 i długą wartość p=.

Jak to naprawić

DKIM ma dwie połowy: system pocztowy musi podpisywać (ustawienie u dostawcy poczty), a klucz publiczny musi być w DNS (rekord u dostawcy DNS). Włączenie podpisywania bez rekordu albo odwrotnie nic nie daje. Wybierz system, który wysyła Twoją pocztę.

Google Workspace

  1. W Google Admin console otwórz Apps → Google Workspace → Gmail → Authenticate email.
  2. Wybierz domenę i kliknij Generate new record. Zostaw długość klucza 2048 i prefiks selektora google.
  3. Skopiuj pokazany rekord TXT (nazwa google._domainkey, wartość zaczyna się od v=DKIM1; k=rsa; p=) i dodaj go u dostawcy DNS (patrz jego zakładka).
  4. Poczekaj, aż rekord będzie widoczny przez dig (zwykle w ciągu godziny), wróć na tę samą stronę i kliknij Start authentication. Status zmieni się na Authenticating email.

Na zupełnie nowym koncie Workspace opcja może pojawić się dopiero po dniu lub dwóch. Jeśli dostawca DNS nie przyjmuje długiej wartości, użyj 1024 bitów albo przeczytaj uwagę o długich kluczach poniżej.

Microsoft 365

  1. Otwórz Microsoft Defender portal i przejdź do Email & collaboration → Policies & rules → Threat policies → Email authentication settings → DKIM.
  2. Kliknij domenę. Microsoft pokaże dwa potrzebne rekordy CNAME.
  3. Dodaj oba u dostawcy DNS, z wartościami dokładnie takimi, jak pokazane:
Typ Nazwa / Host Wartość (przykład, użyj swojej) TTL
CNAME selector1._domainkey selector1-example-com._domainkey.contoso.onmicrosoft.com 3600
CNAME selector2._domainkey selector2-example-com._domainkey.contoso.onmicrosoft.com 3600

Nowsze tenanty dostają cel w innym formacie; zawsze kopiuj to, co pokazuje portal.

  1. Gdy rekordy będą widoczne, włącz dla domeny Sign messages for this domain with DKIM signatures. Microsoft sam przełącza się między dwoma kluczami, dlatego są dwa.

cPanel

  1. Otwórz Email → Email Deliverability.
  2. Jeśli DKIM pokazuje problem przy domenie, kliknij Manage (lub Repair). cPanel tworzy 2048-bitowy klucz pod selektorem default i dodaje rekord do własnej strefy DNS.

Jeśli DNS domeny jest hostowany gdzie indziej (Cloudflare, rejestrator), cPanel nawet po naprawie zgłasza brak rekordu. Skopiuj proponowaną wartość TXT default._domainkey z tego samego ekranu i dodaj ją u dostawcy DNS.

To podpisuje tylko pocztę wychodzącą przez serwer cPanel (formularze na stronie, skrzynki na hostingu). Poczta wysyłana przez Google Workspace lub Microsoft 365 potrzebuje własnego DKIM tam.

Plesk

  1. Na poziomie serwera administrator musi zezwolić na DKIM: Tools & Settings → Mail Server Settings, opcja Allow signing outgoing mail.
  2. Dla domeny: Websites & Domains → example.com → Mail Settings (w nowszych wersjach Mail → Mail Settings), włącz Use DKIM spam protection system to sign outgoing email messages i kliknij OK.

Plesk dodaje rekord default._domainkey do własnego DNS. Jeśli domena korzysta z zewnętrznego DNS, skopiuj ten rekord z Hosting & DNS → DNS w Plesku i dodaj go u dostawcy DNS.

DirectAdmin

DirectAdmin podpisuje selektorem x, więc lista kontrolna pokazuje dla niego –, nawet gdy DKIM działa. Sprawdź:

dig +short TXT x._domainkey.example.com

Jeśli nie ma odpowiedzi, DKIM nie jest włączony dla domeny. Zależnie od konfiguracji hostingu opcja DKIM jest w ustawieniach poczty domeny lub w Account Manager → DNS Management; jeśli jej nie widzisz, poproś hosting o włączenie DKIM dla domeny. Jeśli DNS jest hostowany gdzie indziej, skopiuj rekord x._domainkey z DNS Management do dostawcy DNS.

Cloudflare

Cloudflare nie wysyła Twojej poczty i jej nie podpisuje. Jeśli Twój DNS jest w Cloudflare, to tam dodajesz rekord otrzymany od dostawcy poczty:

  1. Otwórz domenę i przejdź do DNS → Records → Add record.
  2. Dla Google Workspace, cPanel lub Plesk: typ TXT, nazwa np. google._domainkey, zawartość pełna wartość zaczynająca się od v=DKIM1.
  3. Dla Microsoft 365: dwa rekordy typu CNAME (selector1._domainkey, selector2._domainkey) z Proxy status ustawionym na DNS only (szara chmurka).
  4. Save.

Cloudflare przyjmuje długie wartości i poprawnie je dzieli.

Dostawca DNS

Dodaj do strefy DNS rekord otrzymany od dostawcy poczty:

Typ Nazwa / Host Wartość TTL
TXT google._domainkey v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC… 3600

Wpisz nazwę bez domeny (google._domainkey), chyba że dostawca wymaga pełnej nazwy; inaczej powstanie google._domainkey.example.com.example.com.

Długie klucze

Klucz 2048-bitowy ma około 400 znaków, a pojedynczy ciąg w rekordzie TXT może mieć najwyżej 255. Dobre edytory dzielą go automatycznie. Jeśli Twój obcina wartość albo zgłasza błąd, wpisz ją jako kilka ciągów w cudzysłowach jeden po drugim, bez niczego pomiędzy:

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." "...rest of the key...IDAQAB"

Odbiorcy łączą ciągi z powrotem. Obcięty klucz zawodzi po cichu: dig pokazuje rekord, ale każdy podpis jest nieważny.

Potwierdź poprawkę

Uruchom ponownie polecenie dig z sekcji Sprawdź sam i wyślij sobie testową wiadomość na adres Gmail: Show original powinno pokazać DKIM: 'PASS' with domain example.com. Potem otwórz cel w PulseKeeper i kliknij Sprawdź teraz na zakładce Lista kontrolna. Jeśli Twój dostawca używa jednego z popularnych selektorów, pozycja zmieni się na OK w ciągu kilku minut; w przeciwnym razie zostaje – i to jest w porządku.