Mail sunucularında TLS sertifikalarının yenilenmesi, güvenli e-posta iletişimi için kritik bir işlemdir.
Mail sunucularında TLS sertifikalarının yenilenmesi, güvenli e-posta iletişimi için kritik bir işlemdir. TLS (Transport Layer Security), verilerin şifrelenmesini sağlayarak man-in-the-middle saldırılarını önler ve kullanıcı güvenini artırır. Sertifikalar genellikle 90 gün ila bir yıl arasında geçerlidir; bu sürenin sonunda yenilenmezse, sunucu bağlantıları reddedilir, e-postalar gecikir veya tamamen iletilemez hale gelir. Bu makalede, Postfix ve Dovecot gibi yaygın mail sunucu yazılımları için adım adım yenileme sürecini ele alacağız. Süreci doğru yönetmek, kesintisiz hizmet ve uyumluluk sağlar.
TLS sertifika yenilemesine başlamadan önce, mevcut sertifikanın durumunu detaylı incelemek esastır. Bu aşama, olası sorunları önceden tespit etmenizi ve yenileme stratejisini planlamanızı sağlar. Öncelikle, sunucunuzda OpenSSL aracını kullanarak sertifika bilgilerini kontrol edin. Komut satırında openssl x509 -in /etc/ssl/certs/mailserver.crt -text -noout komutunu çalıştırın; bu, sona erme tarihini, issuer bilgilerini ve subject alternatif adlarını (SAN) gösterir. Eğer sertifika 30 günden az süre kaldıysa, acil yenileme gereklidir.
Hazırlık sırasında, yedekleme yapmayı unutmayın. Sertifika dosyalarını (/etc/ssl/private/ ve /etc/ssl/certs/ dizinleri) ve ilgili yapılandırma dosyalarını (main.cf, master.cf) kopyalayın. Ayrıca, firewall kurallarını gözden geçirin; TLS için 465 (SMTPS), 993 (IMAPS) ve 995 (POP3S) portlarının açık olduğundan emin olun. Bu adımlar, yenileme sırasında oluşabilecek hataları minimize eder ve geri dönüşü kolaylaştırır.
Sertifika süresini kontrol etmek için openssl x509 -enddate -noout -in sertifika_dosyasi.crt komutunu kullanın. Çıktıdaki “notAfter” tarihi, geçerlilik sonunu gösterir. Tarih formatını Unix epoch’a çevirmek için openssl x509 -enddate -noout -in sertifika_dosyasi.crt | cut -d= -f2 ile işleyin ve date -d "$(echo ...)" ile insan okunur hale getirin. Bu yöntemle, birden fazla domain için SAN’ları da doğrulayın; mail sunucularında genellikle mail.example.com, smtp.example.com gibi birden fazla isim bulunur. Kontrol sonrası, yenileme penceresini belirleyin – ideal olarak sona erme tarihinden 15 gün önce başlayın.
Yenileme için Certbot gibi ACME istemcilerini yükleyin. Ubuntu/Debian için apt update && apt install certbot komutunu çalıştırın. CentOS/RHEL’de ise dnf install certbot kullanın. Certbot, Let’s Encrypt ile otomatik yenileme sağlar. Manuel işlem için openssl ve cfssl gibi araçlar da gereklidir. Bu araçlar yüklendikten sonra, test ortamında (–dry-run) çalıştırarak uyumluluğu sağlayın; bu, DNS kayıtlarınızın doğru yönlendirdiğini doğrular.
Yeni sertifika edinme, ücretsiz Let’s Encrypt veya ücretli CA’lerden (Certificate Authority) manuel taleple yapılabilir. Let’s Encrypt, otomasyonuyla tercih edilir; certbot certonly --standalone -d mail.example.com -d smtp.example.com komutuyla sertifika üretir. Bu komut, geçici bir web sunucusu başlatır ve ACME challenge’ı doğrular. Ücretli sertifikalar için CSR (Certificate Signing Request) oluşturun: openssl req -new -newkey rsa:2048 -nodes -keyout private.key -out request.csr. CSR’yi CA’ya yükleyin ve imzalı sertifikayı indirin.
--preferred-challenges dns bayrağını ekleyin; bu, HTTP portu kapalı sunucularda idealdir.Edinilen sertifikayı /etc/letsencrypt/live/domain/ dizinine yerleştirin. Private key’in izinlerini 600 yapın (chmod 600 privkey.pem) ve sahibi root olsun. Bu, güvenlik ihlallerini önler.
Certbot ile cron job kurun: crontab -e ile 0 12 * * * /usr/bin/certbot renew --quiet && systemctl reload postfix dovecot ekleyin. Bu, günlük kontrol yapar ve yenileme sonrası servisleri yeniden yükler. Test için certbot renew --dry-run çalıştırın. Otomatik yenileme, manuel müdahaleyi ortadan kaldırır ve %99.9 uptime sağlar.
Sertifikayı Postfix ve Dovecot’a entegre edin. Postfix main.cf dosyasında smtp_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem ve smtp_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem satırlarını ekleyin. smtpd_tls_cert_file için incoming bağlantıları yapılandırın. Değişiklik sonrası postfix check && systemctl reload postfix ile uygulayın. Dovecot için 10-ssl.conf dosyasında ssl_cert ve ssl_key yollarını güncelleyin; doveconf -n | grep ssl ile doğrulayın.
Postfix’te TLS’yi zorunlu kılmak için master.cf’de smtps servisini etkinleştirin: smtps inet n - y - - smtpd -o smtpd_tls_wrappermode=yes. tls_preempt_cipherlist = yes ile güçlü şifrelemeyi önceliklendirin. Yeniden yükleme sonrası logları izleyin: tail -f /var/log/mail.log; “certificate verification failed” hatalarını kontrol edin. Bu yapılandırma, outgoing ve incoming trafiği korur.
Dovecot ssl_cert = fullchain.pem ve ssl_key = privkey.pem olarak ayarlayın. IMAP/POP3 için protokolleri ssl=yes ile etkinleştirin. Doğrulama için openssl s_client -connect mail.example.com:993 -servername mail.example.com kullanın; “Verify return code: 0 (ok)” çıktısı başarıyı gösterir. MX Toolbox veya Qualys SSL Labs gibi araçlarla external test yapın, ancak sunucu bazlı doğrulama öncelikli olsun.
TLS sertifika yenileme sürecini düzenli olarak uygulayarak, mail sunucunuzun güvenliğini ve performansını korursunuz. Bu adımları belgeleyin, ekip üyeleriyle paylaşın ve yıllık denetimlere dahil edin. Potansiyel sorunlar için izleme araçları (örneğin, Nagios veya Zabbix) entegre edin; böylece proaktif yönetimle kesintileri önleyin. Güvenli iletişim, kurumsal itibarı doğrudan etkiler – bu yüzden yenilemeleri ihmal etmeyin.