Server Name Mismatch Nedir?
Diyelim ki, bir web sitesinin URL'sini ziyaret etmeye çalışıyorsunuz ve bir anda, her zaman gördüğünüz sayfa yerine, Nginx sunucusundan gelen korkutucu bir hata mesajıyla karşılaşıyorsunuz. İşte bu, “Server Name Mismatch” hatası. Bu hata genellikle SSL sertifikaları ile ilişkilidir ve SSL sertifikası ile sunucu adının uyuşmazlığı anlamına gelir.
Örneğin, SSL sertifikası `www.example.com` için verilmişse ve sunucu adresi `example.com` ise, bu uyuşmazlık bir hata mesajına yol açar. Çünkü tarayıcılar, SSL sertifikasında belirtilen domaine uymayan bir adresle bağlantı kurduğunda, güvenlik açığı olabileceğini düşünüp sizi uyarır.
Server Name Mismatch Hatasının Sebepleri
Bu hatanın sebepleri genellikle basittir. İşte en yaygın nedenler:
1. Yanlış SSL Sertifikası: SSL sertifikası, doğru alan adı (domain) için alınmadığında bu hata meydana gelir. Örneğin, sertifika `example.com` için alınmışken, sunucu `www.example.com` üzerinde çalışıyorsa, uyuşmazlık yaşanır.
2. Sunucu Yapılandırması: Nginx veya Apache sunucusu, doğru sunucu adını belirtmediğinde de bu hatayı alabilirsiniz. Nginx, gelen isteği doğru şekilde yönlendiremezse, sertifika ile sunucu adı uyuşmazlığı oluşur.
3. HTTP ve HTTPS Karışıklığı: Bazen siteyi hem HTTP hem de HTTPS üzerinden erişmeye çalışırken de bu hata ortaya çıkabilir. Özellikle HTTPS için doğru sertifikayı kullanmak gereklidir.
Server Name Mismatch Hatasını Nasıl Çözebiliriz?
Peki, bu hatadan nasıl kurtulabilirsiniz? İşte çözüm yolları:
1. SSL Sertifikasını Kontrol Edin
İlk olarak, SSL sertifikanızın doğru domain için alındığından emin olun. Sertifikanın, kullandığınız web adresiyle uyumlu olup olmadığını kontrol etmek çok önemli. Eğer sertifikayı başka bir domain için aldıysanız, yeni bir sertifika edinmeniz gerekebilir.
openssl x509 -in /path/to/your/certificate.crt -text -noout
Bu komutla sertifikayı kontrol edebilirsiniz. Sertifikada belirtilen "Common Name" (CN) ve "Subject Alternative Name" (SAN) bölümlerinin doğru domaini içerdiğinden emin olun.
2. Nginx Yapılandırmasını Düzenleyin
Sunucu adınızın doğru şekilde ayarlandığından emin olun. Eğer Nginx kullanıyorsanız, sunucu bloğunuzu kontrol etmelisiniz. Aşağıdaki gibi bir yapılandırma örneği kullanabilirsiniz:
server {
listen 80;
server_name example.com www.example.com;
# Diğer ayarlar...
}
Yukarıdaki yapılandırmada, `server_name` direktifi doğru domainleri içeriyor. Buradaki önemli nokta, doğru domainlerin ve alt alan adlarının belirtildiğinden emin olmaktır.
3. HTTP ve HTTPS Ayarlarını Gözden Geçirin
Siteyi hem HTTP hem de HTTPS üzerinden çalıştırıyorsanız, her iki protokolün de doğru sertifikaya sahip olduğundan emin olun. Aşağıdaki gibi bir Nginx yapılandırması, HTTP'den HTTPS'ye düzgün yönlendirme yapacaktır:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# Diğer ayarlar...
}
Bu yapılandırma, tüm HTTP trafiğini HTTPS'ye yönlendirir, böylece daha güvenli bir bağlantı sağlarsınız.
Sonuç
Nginx'teki "Server Name Mismatch" hatası, çoğu zaman küçük yapılandırma hatalarından kaynaklanır. Sertifika ve domain adı uyumsuzluğu, sunucu yapılandırmalarındaki eksiklikler ya da yanlış yönlendirmeler bu hataya yol açabilir. Yukarıdaki adımları takip ederek sorununuzu kolayca çözebilirsiniz. Web siteniz artık SSL sertifikalarıyla güvenli bir şekilde çalışacak ve ziyaretçileriniz bu hatayla karşılaşmayacak.