Tarayıcı, sunucuya hangi alan adını istediğini SNI ile bildirir; sunucu bu isme ait bir yapılandırma bulamazsa "unrecognized_name" uyarısı gönderir ve Chrome bu hatayı gösterir.
Neden oluşur?
- Alan adı için sanal sunucu (vhost/server block) tanımlı değil
- Yalnızca "www" veya yalnızca "www'suz" adres tanımlanmış
- DNS kaydı başka bir sunucuyu gösteriyor
- CDN veya ters proxy, arka uca yanlış SNI gönderiyor
Teşhis
SNI ile ve SNI olmadan bağlantıyı karşılaştırın:
openssl s_client -connect 203.0.113.10:443 -servername ornek.com
openssl s_client -connect 203.0.113.10:443 -servername www.ornek.com
Biri alert verirken diğeri sertifika döndürüyorsa eksik tanım o isimdedir.
Çözüm
Apache'de tüm adları ekleyin:
<VirtualHost *:443>
ServerName ornek.com
ServerAlias www.ornek.com
SSLEngine on
SSLCertificateFile /etc/ssl/ornek.com.crt
SSLCertificateKeyFile /etc/ssl/ornek.com.key
</VirtualHost>
Nginx için eşdeğeri:
server_name ornek.com www.ornek.com;
Ardından yapılandırmayı sınayıp servisi yeniden yükleyin (apachectl configtest veya nginx -t).
İpuçları
Hem www hem kök alan adını kapsayan bir sertifika kullanın; çok alt alan adı için wildcard SSL uygundur. Ters proxy kullanıyorsanız arka uca SNI iletimini açın.
Sık yapılan hatalar
Bu hata çoğu zaman yapılandırmada küçük bir ayrıntının atlanmasından doğar. Aşağıdakileri gözden geçirin:
- Sertifika alınmış ama yeni alan adı için ayrı bir vhost oluşturulmamış; istekler varsayılan sunucuya düşüyor.
- DNS'te A kaydı yeni IP'yi gösteriyor, ancak eski sunucuda alan adı tanımlı değil; yayılma sürecinde bazı ziyaretçiler eski sunucuya gidiyor.
- Cloudflare benzeri bir ters proxy kullanılıyor ve arka uç, proxy'nin gönderdiği adı tanımıyor.
- Plesk, cPanel gibi panellerde alan adı alias olarak eklenmemiş.
Düzeltmeden sonra önbelleği temizleyin ve farklı bir ağdan yeniden deneyin; DNS önbelleği yüzünden eski davranış bir süre sürebilir.