Tüm sistemler operasyonel
Connect365
Sorun Giderme· 30 Mayıs 2026

SSL Sertifikası Yenilendi Ama E-Posta Bağlantısı Hata Veriyor

SSL Sertifikası Yenilendi Ama E-Posta Bağlantısı Hata Veriyor

SSL sertifikanızı yeniledikten sonra e-posta istemciniz veya sunucunuz bağlantı hatası veriyorsa yalnız değilsiniz. Bu durum, yanlış yapılandırılmış sertifika zincirlerinden kaynaklanan bir protokol sorunudur ve birkaç sistematik adımla tamamen çözülebilir.

TL;DR: SSL sertifikası yenilendikten sonra e-posta sunucusunda "certificate verify failed", "SSL handshake error" veya STARTTLS hatası alıyorsanız büyük ihtimalle ara sertifika (intermediate CA) zinciri eksik ya da eski sertifika hâlâ servise yüklü. Postfix/Dovecot'ta smtpd_tls_cert_file ve ssl_cert yollarını güncelleyin, tam zinciri (fullchain.pem) kullanın ve servisi yeniden başlatın.

Sorunun Kaynağı: Sertifika ≠ Güvenli Bağlantı

Pek çok sistem yöneticisi SSL sertifikasını yeniledikten sonra işin bittiğini varsayar. Oysa e-posta protokolleri — SMTP (RFC 5321), IMAP ve POP3 — TLS anlaşması (handshake) sırasında web tarayıcılarından çok daha katı doğrulama adımları uygular. Tarayıcılar ara sertifikaları bazen AIA (Authority Information Access) uzantısı üzerinden dinamik olarak indirebilirken, e-posta istemcileri ve sunucuları bu esnekliği büyük ölçüde desteklemez.

Sonuç olarak, Let's Encrypt, DigiCert veya Sectigo gibi bir CA'dan aldığınız sertifikayı sunucuya yüklerken yalnızca cert.pem dosyasını kopyaladığınızda istemci tarafında şu hata ailesiyle karşılaşırsınız:

Önce Teşhis: Sertifika Zincirini Kontrol Edin

Sorunun tam kaynağını belirlemek için aşağıdaki araçları sırasıyla kullanın.

1. openssl s_client ile Uzak Test

SMTP (port 587, STARTTLS) için:

openssl s_client -connect mail.siteniz.com:587 -starttls smtp 2>&1 | grep -E 'Verify|depth|error'

IMAPS (port 993) için:

openssl s_client -connect mail.siteniz.com:993 2>&1 | grep -E 'Verify|depth|Cert'

Çıktıda Verify return code: 0 (ok) görmek istiyorsunuz. 21 (unable to verify the first certificate) veya 20 (unable to get local issuer certificate) kodları zincirin eksik olduğuna işaret eder.

2. MX Toolbox veya SSL Labs

Tarayıcı tabanlı araçlardan SSL Labs Mail Server Test (https://www.ssllabs.com/ssltest/) ve MX Toolbox SuperTool, sertifika zincirini, TLS versiyonunu ve cipher suite uyumluluğunu görsel olarak raporlar. Özellikle Google Postmaster Tools ile izlediğiniz alan adlarında bu test skoru, spam filtresi kararlarını doğrudan etkiler.

3. Sunucu Log'larını İnceleyin

Postfix için:

journalctl -u postfix --since "1 hour ago" | grep -i 'tls\|ssl\|cert'

Dovecot için:

grep -i 'ssl\|tls\|cert' /var/log/dovecot.log | tail -50

En Yaygın Senaryo: Eksik Ara Sertifika (Intermediate CA)

Let's Encrypt'in ISRG Root X1 zinciri veya DigiCert'in hiyerarşisi gibi modern CA yapılarında en az bir ara sertifika bulunur. Sunucunuza yalnızca son kullanıcı (leaf) sertifikasını yüklediyseniz, CA kök sertifikasını kendi güven deposunda barındırmayan istemciler bağlantıyı reddeder.

Çözüm: CA'nın size sağladığı fullchain.pem (ya da chain.pem + cert.pem) dosyasını kullanın. Bu dosya, leaf sertifikayı ve tüm ara sertifikaları sıralı biçimde içerir.

Postfix (/etc/postfix/main.cf):

smtpd_tls_cert_file = /etc/letsencrypt/live/siteniz.com/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/siteniz.com/privkey.pem

Dovecot (/etc/dovecot/conf.d/10-ssl.conf):

ssl_cert = </etc/letsencrypt/live/siteniz.com/fullchain.pem
ssl_key  = </etc/letsencrypt/live/siteniz.com/privkey.pem

Değişiklikten sonra servisleri yeniden yükleyin:

systemctl reload postfix
systemctl reload dovecot

İkinci Senaryo: Eski Sertifika Hâlâ Aktif

Bazı kontrol panelleri (cPanel, Plesk, DirectAdmin) e-posta servisleri için ayrı bir sertifika deposu kullanır. Web sunucusunuzdaki sertifikayı güncellediniz; ancak Postfix ve Dovecot hâlâ eski sertifikayı sunabilir. Şu komutla hangi sertifikanın aktif olduğunu kontrol edin:

openssl x509 -in /etc/postfix/ssl/smtpd.crt -noout -dates

notAfter değeri geçmiş bir tarihe işaret ediyorsa sertifika dosyasını yeni fullchain.pem ile değiştirip servisi yeniden başlatmanız yeterlidir.

Üçüncü Senaryo: SNI Uyumsuzluğu

Tek IP üzerinde birden fazla alan adı barındırıyorsanız ve TLS için SNI (Server Name Indication) kullanıyorsanız, istemcinin gönderdiği sunucu adı ile sertifikadaki CN veya SAN alanı eşleşmeyebilir. Özellikle eski Outlook sürümleri ve bazı kurumsal güvenlik duvarları SNI desteği olmadan bağlantı kurmaya çalıştığında varsayılan sertifika sunulur ve bu sertifika doğru alan adını kapsamıyorsa bağlantı kesilir. Sertifikanızın SAN listesini doğrulayın:

openssl x509 -in fullchain.pem -noout -ext subjectAltName

Dördüncü Senaryo: SPF, DKIM ve DMARC Kaydı Değişmedi ama İmza Doğrulaması Bozuldu

SSL sertifikası yenilemesiyle doğrudan ilgisi olmasa da, bazı yöneticiler bu süreçte sunucu hostname veya IP adresini değiştirdiğinde SPF kaydındaki (RFC 7208) ip4: veya a: mekanizmaları geçersiz hale gelir. DKIM (RFC 6376) özel anahtarı da taşınan sunucularda kaybolabilir. Bu durum, alıcı sunucularda 550 5.7.26 This message does not have authentication information veya DMARC policy of ... disallows (RFC 7489) hatası olarak görünür. Google Workspace ve Microsoft 365 kaynaklı reddedilen iletileri Google Postmaster Tools ve Microsoft SNDS panellerinden takip edebilirsiniz.

Port ve Firewall Kontrolü

SSL yenileme sırasında bazen güvenlik duvarı kuralları da değiştirilir. E-posta için kritik portları şu şekilde kontrol edin:

ss -tlnp | grep -E '25|465|587|993|995'

Hata Kodları ve Anlamları

Hata Kodu / Mesajı Olası Neden Çözüm Yönü
Verify return code: 20 Yerel veren sertifika bulunamadı fullchain.pem kullan, servis yeniden başlat
Verify return code: 21 İlk sertifika doğrulanamıyor Ara sertifika zinciri eksik
TLS error: no shared cipher TLS versiyonu veya cipher uyumsuzluğu TLSv1.2+ ve ECDHE cipher'larını etkinleştir
certificate has expired Eski sertifika hâlâ sunucuda aktif Doğru dosya yolunu yapılandırmaya yaz
hostname mismatch SNI veya SAN uyuşmazlığı Sertifika SAN listesini ve istemci hostnamını kontrol et
550 5.7.26 SPF/DKIM/DMARC doğrulama hatası DNS kayıtlarını ve DKIM özel anahtarını doğrula
421 4.7.0 TLS required Alıcı sunucu TLS zorunlu kılıyor, istemci başaramıyor STARTTLS veya SMTPS yapılandırmasını etkinleştir

Adım Adım Kontrol Listesi

  1. Sertifika dosyası yolunu doğrulayın — Postfix ve Dovecot yapılandırmalarındaki yollar mevcut ve okunabilir olmalı.
  2. fullchain.pem kullandığınızdan emin olun — Yalnızca cert.pem değil, tüm zinciri içeren dosyayı belirtin.
  3. Dosya izinlerini kontrol edinprivkey.pem yalnızca root veya ilgili servis kullanıcısı tarafından okunabilir olmalı (chmod 600).
  4. Servisleri yeniden yükleyinreload ile mevcut bağlantılar kesilmeden yeni sertifika aktif hale gelir.
  5. openssl s_client ile doğrulayınVerify return code: 0 (ok) görene kadar adımları tekrarlayın.
  6. SPF, DKIM ve DMARC kayıtlarını kontrol edin — DNS değiştiyse kayıtları güncelleyin.
  7. E-posta test aracıyla gönderim yapınmail-tester.com veya mxtoolbox.com üzerinden tam skor alın.

Otomatik Yenileme ve Servis Yeniden Başlatma

Let's Encrypt kullanıyorsanız certbot renew komutu sertifikayı günceller; ancak Postfix ve Dovecot'u otomatik olarak yeniden yüklemez. /etc/letsencrypt/renewal-hooks/deploy/ dizinine aşağıdaki gibi bir betik ekleyin:

#!/bin/bash
systemctl reload postfix
systemctl reload dovecot

Bu betiği çalıştırılabilir yapın: chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-mail.sh. Böylece sertifika her yenilendiğinde servisler otomatik olarak güncel sertifikayı devreye alır.

Sık Sorulan Sorular

SSL sertifikamı yeniledim ama Outlook "güvenli bağlantı kurulamıyor" hatası veriyor. Ne yapmalıyım?

İlk olarak openssl s_client -connect mail.siteniz.com:993 komutuyla sertifika zincirini doğrulayın. "Verify return code: 0 (ok)" görmüyorsanız Dovecot yapılandırmasında ssl_cert yolunun fullchain.pem'e işaret ettiğinden ve servisi yeniden yüklediğinizden emin olun. Outlook eski profillerde önbelleğe alınmış sertifika hatası gösterebilir; hesabı kaldırıp yeniden eklemek sorunu çözer.

Sunucuya bağlanabiliyorum ama e-postalar alıcıya ulaşmıyor. SSL ile ilgisi var mı?

Doğrudan değil. SSL sorunu bağlantıyı keser; iletiler ulaşmıyorsa SPF, DKIM veya DMARC kaydınız geçersizleşmiş olabilir. Özellikle sunucu taşıma veya IP değişikliği yaptıysanız SPF kaydını (RFC 7208) güncelleyip DKIM anahtarını yeniden yayınlayın. Google Postmaster Tools paneli bu sorunları açıkça raporlar.

Let's Encrypt sertifikası 90 günde bir yenileniyor. Her seferinde bu sorunu yaşar mıyım?

Yalnızca /etc/letsencrypt/renewal-hooks/deploy/ dizinine servis yeniden yükleme betiği eklemezsek evet. Bu betiği bir kez tanımladıktan sonra certbot renew her çalıştığında Postfix ve Dovecot otomatik olarak yeni sertifikayı devreye alır ve sorun tekrarlanmaz.

"TLS error: no shared cipher" hatası ne anlama geliyor?

Sunucu ile istemci ortak bir şifreleme algoritması (cipher suite) üzerinde anlaşamıyor. TLSv1.0 ve TLSv1.1 desteği artık yaygın olarak kaldırıldığından eski istemciler bu hatayı üretir. Postfix'te smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 ile TLSv1.2 ve üstünü zorunlu kılıp ECDHE tabanlı cipher'ları öncelikli sıraya alın.

cPanel kullanıyorum, e-posta sertifikasını ayrıca mı güncellemeliyim?

Evet. cPanel'in "SSL/TLS" bölümündeki sertifika, web sunucusunu (Apache/LiteSpeed) etkiler. E-posta servisleri (Exim, Dovecot) için "E-posta > SSL/TLS Hizmetleri" menüsünden ayrıca sertifika ataması yapmanız gerekir. AutoSSL etkinse bunu otomatik yapabilir; ancak atama başarılı oldu mu servis loglarından doğrulayın.

Sertifika geçerli görünüyor ama port 587'de STARTTLS el sıkışması başarısız oluyor. Neden?

STARTTLS, bağlantı şifreli başlamaz; düz metin olarak başlar ve ardından STARTTLS komutuyla yükseltilir (RFC 5321, §3.3). Güvenlik duvarınız veya bir proxy bu komutu filtreliyorsa ya da Postfix'te smtpd_tls_security_level = encrypt ayarı eksikse el sıkışması başarısız olabilir. Port 465 (SMTPS, örtülü TLS) ile test yaparak sorunun STARTTLS'e özgü olup olmadığını doğrulayın.

Sertifika zinciri tam ama Android uygulamasında hâlâ hata var. Sorun nerede?

Android'in güven deposu (trust store) işletim sistemi sürümüne bağlıdır. Android 7.1 ve öncesi, Let's Encrypt'in ISRG Root X1 sertifikasını güven deposunda bulundurmaz ve DST Root CA X3 sertifikasının süresi 2021'de dolduğundan bu cihazlarda doğrulama başarısız olur. Çözüm ya cihazı güncellemek ya da istemcinin kendi güven deposunu içeren bir uygulama sürümü kullanmaktır (örn. Thunderbird for Android).

openssl s_client çıktısında "self signed certificate in certificate chain" yazıyor. Bu ne anlama gelir?

Sertifika zincirinde bir ara sertifika, doğrulanamayan başka bir sertifika tarafından imzalanmış demektir; bu genellikle CA bundle dosyasının eksik veya yanlış sıralanmış olduğunu gösterir. fullchain.pem dosyasının leaf sertifikadan başlayıp kök CA'ya kadar doğru sırada birleştirildiğini openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt fullchain.pem komutuyla doğrulayın.

SSL sorununu çözdükten sonra e-posta gönderimlerimin spam kutusuna düşmesi de duracak mı?

SSL, iletim güvenliğini sağlar; spam sınıflandırması ise içerik, gönderen itibarı, SPF/DKIM/DMARC uyumu ve IP itibarıyla belirlenir. Ancak TLS kullanımı Google ve Microsoft gibi büyük alıcılar için pozitif bir sinyaldir. Sorun çözüldükten sonra Google Postmaster Tools'daki alan adı itibarı grafiğini birkaç gün izleyerek iyileşme olup olmadığını değerlendirin.

Kurumsal e-postaya ₺99'a geçin

Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.

📞 0312 434 35 34
Haziran kampanyası

Ücretsiz taşıma kampanyası
tüm e-postalarınızı biz taşıyoruz

₺99/kullanıcı/ay ₺199 %50 indirim

Kurulum + migrasyon ücretsiz. KVKK uyumlu, Türkiye'de barındırma. 7/24 Türkçe destek.

Kampanya 30 Haziran'a kadar geçerlidir.

WhatsApp 0312 434 35 34