SNI Nedir?
Server Name Indication, TLS protokolünün bir uzantısıdır ve aynı IP adresi üzerinde birden fazla SSL sertifikası barındırılmasını sağlar. SNI olmadan, her SSL sertifikası için ayrı bir IP adresi gerekirdi.
SNI Sorunları
- Çok eski tarayıcılar (IE6, Android 2.x) SNI desteklemez
- Sunucu SNI yapılandırması eksik
- Yanlış sertifika sunuluyor (default sertifika)
Çözüm
Apache
# Her site için ayrı VirtualHost
<VirtualHost *:443>
ServerName site1.com
SSLEngine on
SSLCertificateFile /etc/ssl/site1.crt
SSLCertificateKeyFile /etc/ssl/site1.key
</VirtualHost>
<VirtualHost *:443>
ServerName site2.com
SSLEngine on
SSLCertificateFile /etc/ssl/site2.crt
SSLCertificateKeyFile /etc/ssl/site2.key
</VirtualHost>
Nginx
server {
listen 443 ssl;
server_name site1.com;
ssl_certificate /etc/ssl/site1.crt;
ssl_certificate_key /etc/ssl/site1.key;
}
server {
listen 443 ssl;
server_name site2.com;
ssl_certificate /etc/ssl/site2.crt;
ssl_certificate_key /etc/ssl/site2.key;
}