Generator DKIM

Utwórz parę kluczy DKIM w przeglądarce i weź rekord do publikacji. Używasz Google Workspace lub Microsoft 365? One tworzą klucz same: pokażemy, gdzie.

Klucze tworzone przez Web Crypto w przeglądarce, nigdy nie wysyłane · RFC 6376, 8301 i 8463 · sprawdzona konfiguracja DKIM 20 nadawców
Przykład

Wygeneruj klucz dla example.com

Powstaje w Twojej przeglądarce przez Web Crypto. Klucz prywatny nigdy nie opuszcza tej karty.

Kto podpisuje Twoją pocztę?
Tworzy własny klucz
Przyjmuje Twój klucz
Używa Twojego klucza
kTyp klucza

Tego wymaga RFC 8301. Zwykły wybór.

sSelektor
._domainkey.example.com
Nowa nazwa dla każdego nowego klucza. Nazwy z datą mówią, kiedy klucz powstał.
tOpcje rekordu
Zaawansowane
Powstaje w Twojej przeglądarce przez Web Crypto. Klucz prywatny nigdy nie opuszcza tej karty.

Twój klucz

Klucz prywatny · Zostaw na swoim serwerzeIzolowana ramka: bez sieci, a żaden inny skrypt na tej stronie nie może go odczytać

Działa offline: wyłącz Wi-Fi i wygeneruj ponownie.

Ustaw OpenDKIM

Plik klucza
# Key file: only the opendkim user may read it
$ sudo mkdir -p /etc/opendkim/keys/example.com
$ sudo nano /etc/opendkim/keys/example.com/s.private
$ sudo chown -R opendkim:opendkim /etc/opendkim/keys
$ sudo chmod 600 /etc/opendkim/keys/example.com/s.private

Plan rotacji

  1. DziśOpublikuj , potem zacznij nim podpisywać.
  2. Za pół rokuUtwórz …, opublikuj go obok .
  3. PrzełączeniePodpisuj kluczem ….
  4. 7 do 30 dni późniejZostaw opublikowany dla poczty, która jest jeszcze w drodze.
  5. UnieważnienieOpublikuj pusty klucz pod , nie usuwaj go.v=DKIM1; k=rsa; p=

Po publikacji

Pełne sprawdzenie: example.comLink zawiera te ustawienia, nigdy klucz. Pytanie z Twojej przeglądarki: resolver Cloudflare, Google jako druga opinia.

Jak wygenerować klucz DKIM i rekord?

Utwórz parę kluczy RSA 2048, trzymaj klucz prywatny na serwerze, który podpisuje Twoją pocztę, i opublikuj klucz publiczny jako rekord TXT pod selector._domainkey.twojadomena (RFC 6376).

Wybieraj nową nazwę selektora dla każdego klucza, na przykład miesiąc jego powstania, by stary klucz mógł zostać opublikowany, dopóki poczta nim podpisana jest jeszcze w drodze.

Potem zainstaluj klucz prywatny w swoim podpisującym i wyślij wiadomość testową: nagłówek DKIM-Signature podaje domenę (d=) i selektor (s=), które odbiorcy sprawdzą.

Klucz prywatnyzostaje na Twoim serwerze pocztypodpisuje każdą wiadomość
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=s202610; …
Klucz publicznypublikowany w DNSs202610._domainkey.example.comodbiorcy weryfikują nim ✓
Dwie połówki jednego klucza
Generator DKIM z kluczem prywatnym RSA 2048 w izolowanej ramce przeglądarki, plikami OpenDKIM i planem rotacjiGenerator DKIM z kluczem prywatnym RSA 2048 w izolowanej ramce przeglądarki, plikami OpenDKIM i planem rotacjiKlucz prywatny, którego nie przeczyta żaden inny skryptTworzony i trzymany w izolowanej ramce, która nie sięga do sieci.Forma, którą czyta Twój podpisującyPKCS#8, PKCS#1 lub jedna linia base64, wybrana pod Twojego podpisującego.Zero żądań i działa offlineLicznik na żywo żądań sieciowych od naciśnięcia Generuj.Pliki Twojego podpisującegoOpenDKIM, rspamd, Exim, Postfix lub Amazon SES, z uzupełnioną Twoją domeną i selektorem.Selektor z datąJego nazwa mówi, kiedy klucz powstał; plan rotacji poniżej datuje następny klucz i unieważnienie.
Klucz RSA 2048 dla OpenDKIM utworzony przez Web Crypto: klucz prywatny w izolowanej ramce bez sieci, uzupełnione pliki podpisującego i plan rotacji z prawdziwymi datami.

Czy muszę generować własny klucz DKIM?

Tylko jeśli Twoją pocztę podpisuje Twój własny serwer: Google Workspace, Microsoft 365 i większość usług poczty tworzy klucz samodzielnie i pokazuje rekord do publikacji, więc klucz z jakiegokolwiek generatora nigdy nie zostałby użyty.

Własny klucz ma znaczenie dla Postfix z OpenDKIM, rspamd, Exim, Haraka, Twojej własnej aplikacji i usług, które go przyjmują, jak Amazon SES (BYODKIM) i Mailgun.

NadawcaKlucz tworzyPublikujeszSelektory
Google WorkspacedostawcaTXT (ich klucz)google
Microsoft 365dostawcaCNAME do ich kluczyselector1, selector2
SendGriddostawcaCNAME do ich kluczys1, s2
MailchimpdostawcaCNAME do ich kluczyk2, k3
PostmarkdostawcaTXT (ich klucz)<date>pm
BrevodostawcaCNAME do ich kluczybrevo1, brevo2
Zoho MaildostawcaTXT (ich klucz)zoho
Amazon SESkażda ze stronTXT (Twój klucz)dowolne
Mailgunkażda ze stronTXT (Twój klucz)dowolne
OpenDKIMTyTXT (Twój klucz)dowolne
rspamdTyTXT (Twój klucz)dowolne
EximTyTXT (Twój klucz)dowolne
Kto tworzy klucz

Co zawiera rekord DKIM?

Rekord TXT pod selector._domainkey.domena z v=DKIM1, typem klucza k= i kluczem publicznym p=; opcjonalne tagi ograniczają skróty (h=) lub usługi (s=) albo oznaczają klucz jako testowy (t=).

Pusty p= oznacza, że klucz jest unieważniony. Klucze RSA są publikowane jako SubjectPublicKeyInfo, którego wymagają OpenDKIM i rspamd; klucze Ed25519 jako surowe 32 bajty.

s202610._domainkey.example.com · TXT
v=DKIM1; k=rsa; h=sha256; s=email; p=MIIBIjANBgkqhkiG9w0BAQ…GQIDAQAB
TagZnaczenieDomyślnie
vWersja, pierwsza, jeśli jestDKIM1
kTyp klucza: rsa lub ed25519rsa
hDozwolone skrótywszystkie
sUsługi: email lub **
ty = testowanie, s = dokładna domenabrak
nUwagi dla ludzibrak
pKlucz publiczny; pusty = unieważnionywymagany
Rekord DKIM, tag po tagu

RSA 1024, 2048, 4096 czy Ed25519?

Użyj RSA 2048: 1024 to minimum, które odbiorcy akceptują, 4096 obciąża DNS, a Ed25519 jest krótki, ale niezależne testy wykazały, że więksi dostawcy skrzynek go nie weryfikują, więc pomaga tylko obok podpisu RSA.

Wiele narzędzi nadal domyślnie daje 1024: opendkim-genkey, dkim_keygen z rspamd i Microsoft 365. RFC 8301 prosi o 2048.

Jeśli dodajesz Ed25519, podpisuj też RSA, pod drugim selektorem; Yahoo może nie zaliczyć DMARC, gdy zawiedzie jeden z kilku dopasowanych podpisów.

RSA 1024234 znaków · 1minimum
RSA 2048410 znaków · 2zalecany
RSA 3072582 znaków · 3sprawdź swojego podpisującego
RSA 4096754 znaków · 3może nie zmieścić się w UDP
Ed2551966 znaków · 1niezweryfikowany przez dużych dostawców

ciągi po 255 bajtów: 255, 510, 765

Długość rekordu według typu klucza

Jak ustawić OpenDKIM, rspamd lub Exim?

Przechowuj klucz prywatny tam, gdzie przeczyta go tylko podpisujący, wskaż w jego konfiguracji swoją domenę i selektor i zrestartuj; karty pokazują pliki każdego podpisującego z uzupełnionymi Twoimi nazwami.

Sprawdź wynik, wysyłając sobie wiadomość i czytając jej wynik DKIM w nagłówkach albo w naszym sprawdzaniu DKIM.

OpenDKIM · KeyTable · SigningTable
# /etc/opendkim/KeyTable
s202610._domainkey.example.com example.com:s202610:/etc/opendkim/keys/example.com/s202610.private

# /etc/opendkim/SigningTable
*@example.com s202610._domainkey.example.com

# /etc/opendkim/TrustedHosts
127.0.0.1
localhost
Rspamd · dkim_signing.conf
# /etc/rspamd/local.d/dkim_signing.conf
domain {
  example.com {
    selector = "s202610";
    path = "/var/lib/rspamd/dkim/example.com.s202610.key";
  }
}
# only if example.com is a subdomain: use_esld = false;
# only if users log in without @example.com: allow_username_mismatch = true;

$ sudo rspamadm configtest && sudo systemctl restart rspamd
Pliki Twojego podpisującego

Dlaczego mój rekord DKIM jest podzielony na kilka ciągów?

Rekord klucza 2048-bitowego ma około 410 znaków, więcej niż jeden ciąg TXT o 255 bajtach, więc DNS przechowuje go jako dwa ciągi, które weryfikujący łączą bez niczego pomiędzy.

Cloudflare, Azure i panele w stylu cPanel przyjmują całą wartość i same ją dzielą; Route 53 i Google Cloud DNS chcą wklejonych ciągów w cudzysłowach. GoDaddy ogranicza wartość do 1024 znaków.

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtw0DwsqwlKexAE5H5WDgWwJlEz/C+7FIeL9/Y1TahjkvMvvX+lUQofjxhVmt/yMXVjvgrYb9jZIxtG96iO9qggOWi0vAeClBst4m3rj3O7GjkC/dfbG2BhQBpwJYt6ec76B8y6cyHBZ0+hMWGfAxuLQt/kkiVsaqwRxRQvEuMfnL4L9S8I7evV8GHFihlEgIaM9W8ag4zzL0ZxiEeznDaHYmJDbmgzarExXIY1IuMdpPu1/GmSrq9RCHEifKVvKsOPcmbv2u6xMbW63/EZmPIY78eZRqkioT8TangIPKsP7HEFZRKQwnQJy/OybqexdiFmt29BXBo7A745shhzueGQIDAQAB
1255 B2155 B
s202610._domainkey.example.com. 3600 IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtw0DwsqwlKexAE5H5WDgWwJlEz/C+7FIeL9/Y1TahjkvMvvX+lUQofjxhVmt/yMXVjvgrYb9jZIxtG96iO9qggOWi0vAeClBst4m3rj3O7GjkC/dfbG2BhQBpwJYt6ec76B8y6cyHBZ0+hMWGfAxuLQt/kkiVsaqwRxRQvEuMfnL4L9S8I7evV8GHFihlEgIa"
	"M9W8ag4zzL0ZxiEeznDaHYmJDbmgzarExXIY1IuMdpPu1/GmSrq9RCHEifKVvKsOPcmbv2u6xMbW63/EZmPIY78eZRqkioT8TangIPKsP7HEFZRKQwnQJy/OybqexdiFmt29BXBo7A745shhzueGQIDAQAB" )
Rekord 2048-bitowy, tak jak przechowuje go DNS

Jak rotować klucze DKIM?

Opublikuj nowy klucz pod nowym selektorem, przełącz na niego podpisywanie, zostaw stary rekord na 7 do 30 dni dla poczty w drodze, potem unieważnij go pustym p=; M3AAWG mówi, by rotować co najmniej co sześć miesięcy.

Unieważniaj zamiast usuwać, by weryfikujący zgłaszali stary selektor jako unieważniony. Nigdy nie używaj ponownie nazwy selektora dla nowego klucza.

lisgrustylutmarkwimajczelip
s202611podpisujezachowany 7–30 dnip= (unieważniony)
s202705podpisuje
Dwa selektory, jedno przekazanie

Czy bezpiecznie jest generować klucz DKIM online?

Tylko jeśli klucz powstaje w Twojej przeglądarce i nigdy nie jest wysyłany: ta strona tworzy go przez Web Crypto w izolowanej ramce bez dostępu do sieci, co możesz potwierdzić w narzędziach deweloperskich przeglądarki.

Niektóre generatory online tworzą klucz na swoim serwerze i odsyłają go w odpowiedzi, gdzie może zostać zapisany w logach lub zachowany. Klucz utworzony w przeglądarce istnieje tylko w Twojej karcie, dopóki go nie zapiszesz.

Żaden inny skrypt na tej stronie nie może odczytać ramki z kluczem, a strona działa offline: wyłącz Wi-Fi i wygeneruj ponownie.

Powstaje w Twojej przeglądarceizolowana ramkadziała offline0żądania sieciowe
Powstaje na serwerzeGET /generate?key_size=2048200 {"private_key": "-----BEGIN…"}może zostać zapisany w logach
Którędy wędruje klucz prywatny

Generator DKIM: najczęstsze pytania

Czym jest rekord DKIM?

Rekord DKIM to rekord TXT pod selector._domainkey.twojadomena, który publikuje publiczną połowę pary kluczy. Twój serwer poczty podpisuje każdą wiadomość prywatną połową, a odbiorcy pobierają klucz publiczny, by sprawdzić, że wiadomość naprawdę pochodzi z Twojej domeny i nie została po drodze zmieniona. Definiuje go RFC 6376.

Czy bezpiecznie jest generować tu klucze DKIM?

Tak. Para kluczy powstaje przez Web Crypto w Twojej przeglądarce, w izolowanej ramce bez dostępu do sieci, a żaden inny skrypt na stronie nie może jej odczytać. Nic nie jest wysyłane: możesz patrzeć, jak karta sieci w narzędziach deweloperskich pozostaje pusta, albo wyłączyć połączenie i wygenerować ponownie.

Jakiego rozmiaru klucza użyć?

RSA 2048. RFC 8301 prosi podpisujących o co najmniej 2048 bitów, Gmail i Yahoo to zalecają, a jego rekord mieści się u większości hostingów DNS jako dwa ciągi. 1024 to minimum, które odbiorcy akceptują; użyj go tylko wtedy, gdy Twój hosting DNS nie przyjmuje długich wartości. 4096 daje długi rekord, który może nie zmieścić się w zwykłej odpowiedzi DNS.

Czy potrzebuję klucza DKIM dla Google Workspace lub Microsoft 365?

Nie. Google Workspace tworzy klucz w Admin console i pokazuje rekord TXT dla google._domainkey; Microsoft 365 podpisuje kluczami za dwoma rekordami CNAME, selector1 i selector2. Klucz z jakiegokolwiek generatora nigdy nie zostałby użyty. Wybierz swojego nadawcę w generatorze, by zobaczyć dokładnie, co opublikować.

Czym jest selektor DKIM?

Selektor to nazwa przed ._domainkey, która mówi odbiorcom, jaki klucz pobrać, na przykład s202610 w s202610._domainkey.example.com. Pozwala jednej domenie mieć kilka kluczy naraz, po jednym na serwer, usługę lub datę. Generator proponuje selektor z datą, więc każdy nowy klucz dostaje nową nazwę, a rotacja jest łatwa.

W jakim formacie jest klucz prywatny?

Domyślnie PKCS#8 PEM (BEGIN PRIVATE KEY), który czytają OpenDKIM, rspamd i Exim. Możesz przełączyć na PKCS#1 (BEGIN RSA PRIVATE KEY), tradycyjną formę opisywaną przez niektóre narzędzia, albo na jedną linię base64 bez nagłówka i łamań wierszy, której chce Amazon SES BYODKIM. Zapisz go z uprawnieniami, które pozwalają czytać go tylko podpisującemu.

Czy domena może mieć więcej niż jeden rekord DKIM?

Tak, pod różnymi selektorami: każda usługa, która podpisuje Twoją pocztę, może mieć własny, a rotacja na krótko daje dwa Twoje. Jedna nazwa selektora musi jednak trzymać tylko jeden rekord TXT; dwa rekordy pod tą samą nazwą sprawiają, że wynik jest nieokreślony, a weryfikujący mogą wybrać któryś z nich.

Dlaczego mój rekord DKIM jest dłuższy niż 255 znaków?

Klucz publiczny RSA 2048-bitowy to 392 znaki base64, więc cały rekord ma około 410. Ciąg TXT mieści najwyżej 255 bajtów, więc DNS przechowuje go jako dwa ciągi, a weryfikujący łączą je bez niczego pomiędzy. Większość hostingów DNS dzieli go za Ciebie; Route 53 i Google Cloud DNS potrzebują ciągów w cudzysłowach.

Co znaczy t=y w rekordzie DKIM?

t=y oznacza klucz jako testowany: weryfikujący muszą traktować pocztę nim podpisaną dokładnie jak niepodpisaną, nawet gdy podpis zawodzi. Używaj go, gdy sprawdzasz konfigurację, potem usuń, bo klucz testowy nie daje DMARC niczego. t=s jest czymś innym: wymaga, by tożsamość podpisu używała dokładnie Twojej domeny, nie subdomeny.

Jak często rotować klucze DKIM?

Co najmniej co sześć miesięcy, jak zaleca M3AAWG. Opublikuj nowy klucz pod nowym selektorem, przełącz na niego podpisującego i zostaw stary rekord na 7 do 30 dni, gdy podpisana poczta jest jeszcze w drodze. Potem unieważnij stary selektor, publikując go z pustym p=, zamiast go usuwać.

Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie