E-posta & SMTP Sunucu

    DKIM Anahtar Rotasyonu Nasıl Yapılır

    DKIM anahtarını mail kaybetmeden döndürmenin seçici tabanlı adım adım yöntemi.

    9 dk okuma Güncellendi: 25 Ağustos 2026

    DKIM anahtarını kurulum günü ürettin, DNS'e koydun ve o günden beri hiç dokunmadın. Üç yıl geçti, anahtar hâlâ aynı; belki 1024 bitlik, belki de eski bir sunucudan taşınırken özel anahtar dosyası birkaç yedek arşivine kopyalandı. DKIM anahtar rotasyonu, bu birikmiş riski temizlemenin standart yoludur — ve doğru yapıldığında tek bir mail bile kaybetmeden, kimsenin fark etmediği bir işlemdir. Yanlış yapıldığında ise yüzlerce mailin bir anda dkim=fail almasına yol açar.

    Bu rehberde rotasyonun neden gerekli olduğunu, seçici (selector) mantığının rotasyonu neden kesintisiz kıldığını ve adım adım nasıl uygulanacağını anlatacağım. Hem OpenDKIM hem Rspamd için somut komutlar vereceğim, doğrulama yöntemini göstereceğim ve eski anahtarı ne zaman silmen gerektiğini netleştireceğim. En kritik nokta baştan söyleyeyim: eski DNS kaydını hemen silmemek.

    Neden Anahtar Döndürmelisin#

    Üç somut sebep var ve hiçbiri teorik değil.

    Birincisi anahtar sızıntısı riski. Özel anahtar dosyası sunucuda düz metin durur. Sunucu taşındı, yedek alındı, bir geliştirici tanı için dosyayı kopyaladı — anahtarın kaç kopyası olduğunu gerçekten biliyor musun? Sızmış bir DKIM özel anahtarı, saldırganın senin adına geçerli imzalı mail göndermesi demektir ve DMARC bu maili sorunsuz geçirir.

    İkincisi anahtar uzunluğu. Eski kurulumlarda 1024 bitlik RSA anahtarları yaygındı çünkü DNS TXT kaydına sığması kolaydı. Bugünün standardı 2048 bittir ve bazı alıcılar 1024 bitlik imzaları zayıf kabul eder. Rotasyon, uzunluğu yükseltmenin tek yoludur.

    Üçüncüsü tatbikat değeri. Anahtarı hiç döndürmediysen, gerçekten döndürmen gerektiği gün (bir güvenlik olayı sonrası) prosedürü ilk kez öğreneceksin — hem de baskı altında. Yılda bir kez planlı rotasyon yapmak, o günü sıradan bir bakım işine dönüştürür.

    KonuÖnerilenNeden
    Anahtar uzunluğu2048 bit RSAYaygın destek + yeterli güç
    Rotasyon sıklığı6-12 ayda birSızıntı penceresini daraltır
    Eski kaydı silme7-30 gün sonraKuyruktaki mailler hâlâ eski seçiciyi kullanır
    Seçici adlandırmaTarih bazlı (mail202608)Hangi anahtarın ne zaman üretildiği belli olur

    Rotasyonun Temel Kuralı: Seçici Mantığı#

    DKIM'in en zarif tarafı, rotasyonun kesintisiz olmasını mümkün kılan seçici (selector) kavramıdır. Her imza, hangi genel anahtarla doğrulanacağını kendi içinde söyler:

    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
            d=firmaniz.com; s=mail202602; t=1756000000;
            h=from:to:subject:date:message-id;
            bh=47DEQpj8HBSa...; b=QmFzZTY0...
    

    s=mail202602 etiketi, alıcıya "genel anahtarımı mail202602._domainkey.firmaniz.com adresinde bul" der. Yani her imza kendi anahtarını işaret eder. Bu, aynı anda birden fazla anahtarın DNS'te yayında olabileceği anlamına gelir; eski seçiciyle imzalanmış eski mailler eski kayıttan, yeni mailler yeni kayıttan doğrulanır. Çakışma olmaz.

    Rotasyonun tüm mantığı buradan çıkar: yeni anahtarı yayınla, sonra imzalamayı ona devret, en sonunda eski kaydı kaldır. Bu üç adımı sıraya koyduğun sürece hiçbir mail kaybolmaz.

    Tersine, aynı seçicinin altındaki kaydı doğrudan yeni anahtarla değiştirirsen, o anda kuyrukta bekleyen ve eski anahtarla imzalanmış tüm mailler dkim=fail alır. DMARC politikan reject ise bu mailler teslim edilmez. En sık yapılan hata tam olarak budur.

    Adım Adım Kesintisiz Rotasyon#

    Aşağıdaki plan, tipik bir kurumda yaklaşık iki hafta sürer ve hiçbir aşamasında kesinti yaratmaz.

    1. Yeni seçici adını belirle. Tarih bazlı bir isim kullan: mail202608. Böylece ileride hangi anahtarın ne zaman üretildiğini bilirsin.
    2. Yeni anahtar çiftini üret. 2048 bit RSA yeterlidir.
    3. Genel anahtarı DNS'e ekle. Eski kaydı silme, yanına ekle.
    4. DNS yayılmasını bekle. TTL süresinin en az iki katı kadar, pratikte birkaç saat.
    5. İmzalamayı yeni seçiciye devret. Yapılandırmayı değiştir ve servisi reload et.
    6. Doğrula. Test maili at, alıcı tarafta s= etiketini ve dkim=pass sonucunu kontrol et.
    7. Bekleme süresi. En az bir hafta, tercihen bir ay boyunca eski kaydı yayında bırak.
    8. Eski kaydı emekliye ayır. Önce p= boş değerle iptal et, sonra kaydı tamamen sil.

    Anahtar üretimi standart openssl ile yapılır:

    # Özel anahtarı üret (2048 bit)
    openssl genrsa -out /etc/opendkim/keys/firmaniz.com/mail202608.private 2048
    chmod 600 /etc/opendkim/keys/firmaniz.com/mail202608.private
    chown opendkim:opendkim /etc/opendkim/keys/firmaniz.com/mail202608.private
    
    # Genel anahtarı çıkar ve tek satır hâline getir
    openssl rsa -in /etc/opendkim/keys/firmaniz.com/mail202608.private \
      -pubout -outform PEM 2>/dev/null | grep -v '^-----' | tr -d '\n'
    # MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
    

    Çıkan değeri DNS'e şu biçimde koyarsın:

    ; Yeni kayıt — eskisi yanında kalmaya devam ediyor
    mail202608._domainkey.firmaniz.com.  3600  IN  TXT  ( "v=DKIM1; k=rsa; "
      "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." )
    
    ; Eski kayıt — henüz DOKUNMA
    mail202602._domainkey.firmaniz.com.  3600  IN  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBg..."
    

    2048 bitlik bir genel anahtarın değeri tek bir TXT dizesinin 255 karakter sınırını aşar ve parçalara bölünmesi gerekir; bunu birçok DNS paneli otomatik yapar ama yapmayanlar da vardır. Ayrıntısı DKIM TXT kaydı 255 karakter sınırı yazısında.

    OpenDKIM ile İmzalamayı Devretme#

    OpenDKIM kullanıyorsan, seçici değişimi tablo dosyalarından yapılır. Tek alan adı için en basit yol doğrudan yapılandırmadaki satırları güncellemektir:

    # /etc/opendkim.conf
    Domain              firmaniz.com
    Selector            mail202608
    KeyFile             /etc/opendkim/keys/firmaniz.com/mail202608.private
    Socket              inet:[email protected]
    Mode                sv
    Canonicalization    relaxed/relaxed
    

    Birden fazla alan adı yönetiyorsan KeyTable ve SigningTable kullanılır; orada da yalnızca seçici adını ve anahtar yolunu değiştirirsin:

    # /etc/opendkim/KeyTable
    mail202608._domainkey.firmaniz.com firmaniz.com:mail202608:/etc/opendkim/keys/firmaniz.com/mail202608.private
    
    # /etc/opendkim/SigningTable
    *@firmaniz.com mail202608._domainkey.firmaniz.com
    
    # Değişikliği uygula
    systemctl reload opendkim
    systemctl reload postfix
    
    # İmzalamanın gerçekten yeni seçiciyi kullandığını doğrula
    journalctl -u opendkim -n 20 | grep -i selector
    

    Postfix tarafındaki milter yapılandırmasına dokunman gerekmez; soket adresi aynı kaldığı sürece Postfix hiçbir şey fark etmez. Milter zincirinin genel mantığı için Postfix main.cf yapılandırması yazısına bakabilirsin.

    Rspamd ile İmzalamayı Devretme#

    Rspamd'ın DKIM imzalama modülü seçiciyi yapılandırmadan okur ve anahtar yolunu şablonla çözer, bu yüzden rotasyon daha da basittir.

    # Yeni anahtarı üret — rspamadm hem anahtarı hem DNS kaydını verir
    rspamadm dkim_keygen -s mail202608 -b 2048 -d firmaniz.com \
      -k /var/lib/rspamd/dkim/firmaniz.com.mail202608.key
    
    chown _rspamd:_rspamd /var/lib/rspamd/dkim/firmaniz.com.mail202608.key
    chmod 600 /var/lib/rspamd/dkim/firmaniz.com.mail202608.key
    
    # /etc/rspamd/local.d/dkim_signing.conf
    path = "/var/lib/rspamd/dkim/$domain.$selector.key";
    selector = "mail202608";
    sign_authenticated = true;
    sign_local = true;
    use_domain = "header";
    
    systemctl reload rspamd
    
    # Etkin seçiciyi doğrula
    rspamadm configdump dkim_signing | grep -i selector
    

    path içindeki $selector değişkeni sayesinde dosya adını da otomatik çözer; tek değiştirdiğin satır selector olur. ARC imzalama da kullanıyorsan onun seçicisini ayrı tut — aynı seçiciyi paylaşırlarsa DKIM rotasyonu ARC zincirini de kırar. Ayrıntısı ARC imzası nedir yazısında.

    Doğrulama ve Eski Anahtarı Emekliye Ayırma#

    Devretme sonrası doğrulama üç adımlıdır ve hiçbirini atlama.

    # 1) Yeni DNS kaydı yayında mı
    dig mail202608._domainkey.firmaniz.com TXT +short
    
    # 2) Test maili at ve imzadaki seçiciyi kontrol et
    # Alıcı taraftaki ham başlıkta beklenen:
    #   DKIM-Signature: ... d=firmaniz.com; s=mail202608; ...
    #   Authentication-Results: mx.hedef.com; dkim=pass header.d=firmaniz.com
    
    # 3) Eski kaydın hâlâ yayında olduğunu doğrula (kuyruktaki mailler için)
    dig mail202602._domainkey.firmaniz.com TXT +short
    

    Doğrulama temizse bekleme süresine geç. En az yedi gün, tercihen bir ay boyunca eski kaydı yayında bırak. Sebebi şu: kuyrukta bekleyen, geçici hata alıp tekrar denenen ya da bir yönlendirme zincirinde takılmış mailler günlerce yolda kalabilir ve hepsi eski seçiciyi işaret eder. Kaydı erken silersen bu maillerin hepsi dkim=fail alır.

    Süre dolduğunda önce anahtarı iptal et, hemen silme. Boş p= değeri, "bu anahtar artık geçersiz" anlamına gelen standart iptal biçimidir:

    ; Adım 1 — iptal (birkaç gün böyle kalsın)
    mail202602._domainkey.firmaniz.com.  3600  IN  TXT  "v=DKIM1; k=rsa; p="
    
    ; Adım 2 — birkaç gün sonra kaydı tamamen sil
    

    İptal edilmiş bir kayıt, o seçiciyle gelen imzaların açıkça geçersiz sayılmasını sağlar; kaydın hiç olmaması ise "geçici DNS sorunu olabilir" biçiminde yorumlanabilir. Aradaki fark küçük ama doğru olanı yapmak bedava.

    Son adım sunucudaki özel anahtar dosyasını güvenli biçimde silmektir:

    # Eski özel anahtarı sil
    shred -u /etc/opendkim/keys/firmaniz.com/mail202602.private
    
    # Yedeklerde de kalmadığından emin ol
    grep -rl 'mail202602' /etc/opendkim/ /var/lib/rspamd/ 2>/dev/null
    

    Sık Yapılan Hatalar#

    1. Aynı seçicinin kaydını yeni anahtarla değiştirmek. Rotasyonun tüm noktası yeni bir seçici kullanmaktır. Aynı seçiciyi üzerine yazmak, kuyruktaki tüm maillerin imzasını anında geçersiz kılar.
    2. Eski kaydı hemen silmek. Yolda olan mailler için en az bir hafta yayında bırak. Bu, rotasyondaki en sık ve en pahalı hatadır.
    3. DNS yayılmasını beklemeden imzalamayı devretmek. Yeni kayıt henüz yayılmadan imzalamaya başlarsan, o aralıktaki mailler doğrulanamaz.
    4. Özel anahtarın izinlerini gevşek bırakmak. Dosya 600 olmalı ve sahibi imzalayan servis olmalı. 644 bırakılmış bir anahtar, sunucudaki her kullanıcıya senin adına imza atma yetkisi verir.
    5. ARC ile aynı seçiciyi paylaşmak. DKIM rotasyonu ARC zincirini de kırar; her mekanizmaya kendi seçicisini ver.
    6. Rotasyonu takvime almamak. Bir kez yapıp unutursan üç yıl sonra yine aynı noktaya gelirsin. Yıllık bir hatırlatıcı kur.

    İmza doğrulamasında rotasyon dışı sebeplerle de hata alabilirsin; başlık değişimi, satır sonu dönüşümü ve gövde kanonikleştirme sorunları için DKIM doğrulaması başarısız yazısındaki kontrol listesi işini görür. Rotasyon sırasında DMARC politikanı geçici olarak gevşetmen gerekmez; süreç doğru yürütüldüğünde p=reject altında bile kesintisizdir, ilgili planı DMARC politikası seçimi yazısında bulabilirsin.

    Sıkça Sorulan Sorular#

    DKIM anahtarını ne sıklıkla değiştirmeliyim#

    Altı ile on iki ay arası bir aralık çoğu kurum için makuldür. Daha sık döndürmenin somut bir güvenlik kazancı sınırlıdır ve her rotasyon küçük bir operasyonel risk taşır. Bunun dışında üç durumda gecikmeden döndürmelisin: sunucuya yetkisiz erişim şüphesi varsa, anahtar dosyası bir yedek veya depo üzerinden dışarı çıkmışsa ve hâlâ 1024 bitlik bir anahtar kullanıyorsan.

    Rotasyon sırasında mail kaybeder miyim#

    Doğru sırayı izlersen hayır. Yeni seçiciyi DNS'e ekleyip yayılmasını bekledikten sonra imzalamayı devredersen, eski mailler eski kayıttan, yeni mailler yeni kayıttan doğrulanır ve ikisi bir arada sorunsuz çalışır. Mail kaybı yalnızca iki hatadan doğar: aynı seçicinin kaydını üzerine yazmak ya da eski kaydı çok erken silmek. Bu ikisini yapmadığın sürece süreç görünmezdir.

    Eski DKIM kaydını ne zaman silebilirim#

    İmzalamayı yeni seçiciye devrettikten sonra en az yedi gün, tercihen bir ay bekle. Kuyrukta bekleyen, geçici hata alıp tekrar denenen ya da yönlendirme zincirinde takılmış mailler günlerce yolda kalabilir ve hepsi eski seçiciyi işaret eder. Silmeden önce eski kaydı birkaç gün boş p= değeriyle iptal edilmiş hâlde bırakman da iyi bir pratiktir.

    1024 bitlik anahtarım var, hemen değiştirmeli miyim#

    Acil bir tehlike yok ama planına almalısın. 1024 bitlik RSA anahtarları bugün zayıf kabul edilir ve bazı alıcılar bu imzalara daha düşük güven atfeder. Bir sonraki planlı bakımda 2048 bite geçmeni öneririm; süreç, normal bir rotasyondan farklı değildir. 4096 bite çıkmayı ise önermem, DNS kaydı gereksiz büyür ve pratik bir kazanç sağlamaz.

    Birden fazla DKIM anahtarı aynı anda yayında olabilir mi#

    Evet, ve rotasyonu mümkün kılan şey tam olarak budur. Her imza s= etiketiyle hangi seçiciyi kullandığını söyler, alıcı da o seçicinin DNS kaydına bakar. İstediğin kadar seçici yayınlayabilirsin; farklı gönderim sistemleri için ayrı anahtarlar kullanmak da yaygın bir yaklaşımdır. Tek kısıt, her bir kaydın kendi seçici adı altında bulunmasıdır.

    DKIM anahtarımın sızdığını nasıl anlarım#

    Kesin bir tespit yöntemi yoktur, bu yüzden şüphe yeterli sebeptir. Dolaylı işaretler şunlar olabilir: DMARC raporlarında tanımadığın kaynak IP'lerden gelen ve DKIM'i geçen trafik görmek, sunucuda yetkisiz erişim izleri bulmak ya da anahtar dosyasının bir yedek arşivinde veya kod deposunda ortaya çıkması. Bu durumların herhangi birinde rotasyonu beklemeden yap ve eski kaydı bu kez kısa sürede iptal et.

    Kapanış#

    DKIM rotasyonu, doğru sırayla yapıldığında hiç kimsenin fark etmediği bir bakım işidir; yanlış sırayla yapıldığında ise saatler süren bir teslimat krizidir. Aklında kalması gereken dört şey: her rotasyonda yeni bir seçici kullan, yeni kaydı DNS'e ekleyip yayılmasını bekle, imzalamayı devrettikten sonra eski kaydı en az bir hafta yayında bırak ve özel anahtar dosyalarını 600 izinle ve tek bir kopya hâlinde tut. Yıllık bir takvim hatırlatıcısı kurmak da bu işi kriz anından çıkarıp rutine sokar.

    Kendi posta sunucunda DKIM anahtarlarını yönetmek istiyorsan VDS ve sanal sunucu paketlerimizde tam root erişimiyle çalışabilirsin. DKIM anahtarı üretilmiş, DNS kaydı hazır bir gönderim altyapısını doğrudan almak istersen SMTP sunucu paketlerimiz tam bu ihtiyaç için hazırlanıyor; rotasyon dâhil bakım işlerini devretmek istersen sunucu yönetimi hizmetimize, yalnızca posta kutusu ihtiyacın varsa kurumsal e-posta çözümümüze göz atabilirsin.

    DKIMAnahtar YönetimiDNS

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.