SSL sertifikaları, web sitelerinin güvenliğini sağlamak için kritik bir unsurdur.
SSL sertifikaları, web sitelerinin güvenliğini sağlamak için kritik bir unsurdur. Özellikle birden fazla alan adı (domain) paylaşan sunucularda, SNI (Server Name Indication) teknolojisi, her domain için ayrı SSL sertifikası kullanma imkanı sunar. Bu konfigürasyon, tek bir IP adresi üzerinden birden fazla güvenli site barındırmayı mümkün kılar ve kaynak kullanımını optimize eder. Bu makalede, SNI konfigürasyonunun temel prensiplerini, pratik adımlarını ve yaygın uygulamalarını kurumsal bir yaklaşımla ele alacağız. Kurumunuzun web altyapısını güçlendirmek için bu rehber, adım adım talimatlar ve örneklerle donatılmıştır.
SNI, TLS (Transport Layer Security) protokolünün bir uzantısı olarak çalışır ve istemci tarayıcısının, bağlantı kurulmadan önce sunucuya hangi domain için bağlandığını belirtmesini sağlar. Geleneksel SSL konfigürasyonlarında, her IP adresi yalnızca bir sertifika ile ilişkilendirilebiliyordu; ancak SNI ile bu sınırlama aşılır. Bu sayede, sanal sunucular (virtual hosts) için her biri farklı sertifikalara sahip birden fazla site aynı IP’yi paylaşabilir. Özellikle bulut tabanlı hosting ortamlarında, maliyetleri düşürür ve ölçeklenebilirlik sağlar.
SNI’nin etkinliğinden yararlanmak için, sunucu yazılımınızın (Nginx, Apache gibi) SNI desteğine sahip olması şarttır. Modern tarayıcıların %99’undan fazlası SNI’yi destekler, bu da geniş uyumluluk anlamına gelir. Konfigürasyon öncesi, her domain için geçerli bir SSL sertifikası (örneğin Let’s Encrypt’ten alınmış) hazırlayın. Sertifika dosyaları (.crt ve .key) sunucuda erişilebilir konumda bulundurulmalıdır. Bu temel altyapı, sonraki adımların sorunsuz ilerlemesini sağlar ve güvenlik açıklarını önler.
Nginx, SNI desteğiyle yüksek performanslı bir web sunucusudur ve birden fazla domain için SSL offloading yapar. Konfigürasyonu /etc/nginx/sites-available/ dizininde ayrı dosyalarda yönetmek önerilir. Öncelikle, ana nginx.conf dosyasında ssl_protocols TLSv1.2 TLSv1.3; ve ssl_ciphers gibi global SSL ayarlarını tanımlayın. Her sanal sunucu bloğu için server_name direktifiyle domain belirtin ve ssl_certificate ile ssl_certificate_key yollarını eşleştirin.
Bu adımlar, iki domain için SNI’yi etkinleştirir. Performansı artırmak için ssl_session_cache ve ssl_session_timeout gibi direktifleri ekleyin. Test için openssl s_client -connect example.com:443 -servername example.com komutunu kullanın; doğru sertifika dönmelidir. Bu konfigürasyon, trafiği %30’a varan oranda hızlandırabilir ve kurumunuzun uptime’ını korur.
Apache HTTP Server’da SNI, mod_ssl modülüyle desteklenir ve httpd.conf veya sanal host dosyalarında uygulanır. Önce a2enmod ssl ve a2enmod socache_shmcb komutlarıyla modülleri etkinleştirin. Her VirtualHost bloğunda ServerName ile domaini belirtin ve SSLCertificateFile ile SSLCertificateKeyFile yollarını tanımlayın. Listen 443 direktifini paylaşın, SNI otomatik algılanır.
Apache 2.2.12 ve üzeri sürümlerde SNI tam desteklenir. Sertifika zincirini (CA bundle) SSLCACertificateFile ile belirtin. Firewall’da 443 portunu açın ve SELinux/AppArmor politikalarını SSL için ayarlayın. Bu hazırlıklar, konfigürasyon hatalarını minimize eder ve güvenli bir temel oluşturur. Örnek: SSLEngine on; SSLProtocol all -SSLv3 -TLSv1 gibi protokol kısıtlamaları ekleyin.
/etc/apache2/sites-available/ altına example.com.conf oluşturun: <VirtualHost *:443> ServerName example.com; SSLEngine on; SSLCertificateFile /path/to/example.crt; SSLCertificateKeyFile /path/to/example.key; </VirtualHost>. İkinci domain için ayrı dosya yapın. a2ensite ile etkinleştirin, apachectl configtest ile doğrulayın ve systemctl restart apache2 ile uygulayın. Logları /var/log/apache2/error.log’da izleyin.
SNI konfigürasyonu tamamlandıktan sonra, web siteleriniz şifreli bağlantılarla hizmet verir ve arama motoru sıralamalarınızı olumlu etkiler. Düzenli sertifika yenileme ve sunucu güncellemeleriyle bu yapıyı koruyun; böylece kurumunuzun dijital varlığı her zaman güvende kalır.