Exchange Server pek çok diğer servis gibi güvenli bir iletişim için sertifika kullanır. Ancak bildiğiniz gibi sertifikalarında mutlaka bir kullanım süreleri olur. Genelde internete açık servisler için (Owa, Active Sync, Outlook anywhere vb) public sertifika kullanılır. Yani bir üreticiden satın alınan ve her yıl yenilenmesi gereken bir sertifika. Bunu unuttuğunuz zaman zaten hızlı bir şekilde kullanıcılarınızın alacağı uyarılardan hatırlayabiliyorsunuz. Ancak exchange server iç mesajlaşma veya kurulum ile birlikte güvenlik trafik için kurulum sonrasında self-signed dediğimiz kendi kendine imzalanmış sertifikalar kullanır. Bu sertifikalar sunucu kurulumu ile birlikte oluşturulur ve bir süre sonra unutulur. işte konumuz olan hata da tam bunun ile ilgili. Tabi ki bu hata içerisindeki sertifika sizin satın almış olduğunuz bir sertifika da olabilir, çünkü bu olay günlüğü size SMTP için kullandığınız TLS sertifikasının süresinin dolduğunu söyler. Ama saha da genelde hep self-signed olan sertifikalar için bu uyarıları görüyoruz. Olay günlüğü aşağıdaki gibidir;
Bunu ecp ekranında da görebilirsiniz;
Not: Server Auth Sertifikasının yenilenmesi ayrı bir süreç olup aşağıdaki makaleyi inceleyebilirsiniz.
Peki biz standart sunucu kurulumu ile gelen ve sunucu ismini taşıyan sertifikayı yenilemek için ne yapacağız?
Öncelikle mevcut sertifikaları listeleyelim;
EMS ile komutumuz;
Get-ExchangeCertificate
Bu komut mevcut kullandığınız sertifikaları listeler.
Buradaki amacımız SMTP için hangi sertifikanın kullanıldığını bulmaktadır. Bu sertifikayı bulduktan sonra “Thumbprint” kısmını kopyalayıp aşağıdaki gibi ilgili sertifikayı silin;
Remove-ExchangeCertificate {thumbnail of certificate}
Veya mmc konsolu üzerinden ilgili sertifikayı arayüz kullanarak da silebilirsiniz.
Artık yeni bir sertifika alabiliriz. Eğer ortamda CA var ise mmc konsolundan aşağıdaki gibi bir sertifika isteği yapmanız yeterli;
Veya aşağıdaki gibi bir PS kullanabilirsiniz;
New-ExchangeCertificate -FriendlyName “CozumPark Exchange Certificate” -SubjectName CN=Exchange1 -DomainName Exchange1.cozumpark.com -Services SMTP -PrivateKeyExportable $true
Dikkat ederseniz bu sertifikayı IIS için atamadık, çünkü IIS için muhtemel public bir sertifikanız vardır.
Burada FriendlyName, mmc konsolu ve diğer ara yüzlerde ilgili sertifikanın listelenme ismini temsil eder. Subject name ise bu sertifika için URL ismidir, normal bir sertifikada mail.cozumpark.com gibi görebilirsiniz. DomainName kısmı ise subject name dışında sorumlu olduğu domain yani URL isimlerini içeririr. burada Public bir sertifikada autodisvover ve mail gibi kayıtlar olurken biz sadece sunucu FQDN ismini yazdık. Eğer sizin domain cozumpark.com ve sunucu isminiz EXCH ise bu isim exch.cozumpark.com olmalı, yani domain ismi ve sunucu ismi gibi düşünebilirsiniz. Bu domain ismi mail domain ismi olmak zorunda değil, AD domain ismi kullanılır. Ama SMTP de gerçekten TLS kullanıyorsanız mail domain ismi kullanmanızı öneririm.
Son PS komutu ile sertifikayı oluşturmuş ve SMTP ye atamış olduk. Artık Transport servisini bir kere yeniden başlatmanız yeterlidir.