SSL Sertifikası SNI Konfigürasyonu

SSL sertifikaları, web sitelerinin güvenliğini sağlamak için kritik bir unsurdur.

Reklam Alanı

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 Teknolojisinin Temelleri

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 Sunucusunda SNI Konfigürasyonu

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.

  1. Sertifika dosyalarını /etc/ssl/certs/ ve /etc/ssl/private/ altına kopyalayın.
  2. Yeni bir site konfigürasyonu oluşturun:
    server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/ssl/certs/example.crt; ssl_certificate_key /etc/ssl/private/example.key; … }
  3. Benzer şekilde ikinci domain için başka bir server bloğu ekleyin: server_name example2.com ile.
  4. nginx -t ile sintaksı test edin, ardından nginx -s reload ile yeniden yükleyin.

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 Sunucusunda SNI Konfigürasyonu

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.

Gereksinimler ve Hazırlık

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.

Adım Adım Uygulama

/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.

Kategori: Genel
Yazar: Editör
İçerik: 513 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 25-02-2026
Güncelleme: 25-02-2026