Server Name Mismatch Hatası Nedir?
Nginx'in amacı, gelen istekleri doğru sunucu bloğuna yönlendirmektir. Ancak, bazen "Server Name Mismatch" hatasıyla karşılaşırsınız. Bu hata, genellikle SSL sertifikasının, Nginx konfigürasyonundaki sunucu ismiyle uyumsuz olmasından kaynaklanır. Yani, sunucu adınız ile SSL sertifikasındaki bilgiler uyuşmazsa, tarayıcılar hata verir ve güvenlik sertifikası hatalı olarak gösterilir.
Bu durum, genellikle şöyle görünür:
“SSL connection error: server name mismatch”
Server Name Mismatch Hatası Nasıl Çözülür?
Çözüm aslında oldukça basittir, sadece birkaç adımda hatanızı düzeltebilirsiniz. İşte o adımlar:
1. Nginx Konfigürasyonunu Kontrol Edin
İlk yapmanız gereken şey, Nginx konfigürasyon dosyasını kontrol etmektir. Genellikle bu dosya `/etc/nginx/sites-available/default` veya `/etc/nginx/nginx.conf` dosyasındaki sunucu bloğunda yer alır. Burada, doğru domain adının yazılı olup olmadığını kontrol edin.
Örnek bir Nginx sunucu bloğu şöyle görünebilir:
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/html;
index index.html;
}
}
Bu noktada dikkat etmeniz gereken şey, server_name direktifinin doğru bir şekilde yapılandırıldığından emin olmanızdır. SSL sertifikanızda da aynı domain adı olmalı.
2. SSL Sertifikasını Kontrol Edin
SSL sertifikanızın domain adı ile uyumsuz olup olmadığını kontrol edin. Örneğin, SSL sertifikanız sadece `example.com` için geçerliyse, `www.example.com` ile yapılacak bağlantılar hatalı olacaktır.
Eğer SSL sertifikası ile ilgili bir sorun varsa, doğru sertifikayı yükleyin ya da mevcut sertifikanızı güncelleyin.
3. SSL Sertifikasını Nginx’e Bağlayın
SSL sertifikasını doğru şekilde bağladığınızdan emin olun. İşte bir örnek konfigürasyon:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
location / {
root /var/www/html;
index index.html;
}
}
Bu dosyada, SSL sertifikalarının yolu doğru şekilde belirtildiğinden emin olun. Eğer sertifikanızda birkaç domain varsa (çoklu domain SSL sertifikası), her bir domain için ayrı server_name tanımlamanız gerekebilir.
4. Nginx’i Yeniden Başlatın
Yaptığınız değişiklikleri aktifleştirmek için Nginx’i yeniden başlatmanız gerekecek. Bu işlem için terminale şu komutu yazabilirsiniz:
sudo systemctl restart nginx
Bu adım, yaptığınız tüm konfigürasyon değişikliklerinin geçerli olmasını sağlar.
Sonuç: Hata Giderildi!
Tüm bu adımları takip ettikten sonra, artık "Server Name Mismatch" hatasından kurtulmuş olmalısınız. SSL sertifikası ile uyumsuzluk sorunu çözüldü ve web siteniz artık güvenli bir şekilde çalışıyor.
Eğer hata devam ediyorsa, konfigürasyon dosyanızı yeniden gözden geçirebilir veya SSL sertifikasının doğru şekilde yüklenip yüklenmediğini kontrol edebilirsiniz. Hatanın kaynağı genellikle basit bir yazım hatası veya sertifika uyumsuzluğu olabiliyor, bu yüzden dikkatlice kontrol etmek faydalı olacaktır.