Nginx ile SSL/TLS Sertifikası Kurulumu Rehberi
Günümüzde internet güvenliği, kullanıcıların kişisel verilerinin korunması açısından büyük önem taşımaktadır. Web sitelerinin güvenli bir bağlantı üzerinden erişilebilir olması, hem kullanıcı güvenini artırır hem de arama motoru sıralamalarında olumlu etki yaratır. Nginx, popüler ve yüksek performanslı bir web sunucusu olarak, SSL/TLS sertifikalarının kurulumu ve yönetimi için güçlü yeteneklere sahiptir. Bu rehber, Nginx üzerinde SSL/TLS sertifikası kurulumunun adım adım nasıl yapılacağını teknik detaylarıyla açıklamaktadır.
SSL/TLS Sertifikası Nedir?
SSL/TLS sertifikası (Secure Sockets Layer/Transport Layer Security), bir web sunucusu ile bir web tarayıcısı arasındaki iletişimi şifreleyen ve doğrulayan dijital bir sertifikadır. Bu sertifikalar, web sitelerinin kimliğini doğrular ve hassas bilgilerin (kullanıcı adları, şifreler, kredi kartı bilgileri vb.) aktarımı sırasında gizliliğini ve bütünlüğünü sağlar. SSL/TLS sertifikaları, web tarayıcılarında URL çubuğunda görünen "kilit" simgesi ve "https://" öneki ile temsil edilir. Bu teknoloji, internet üzerinde güvenli iletişimin temelini oluşturur ve kullanıcıların çevrimiçi etkinliklerinde kendilerini güvende hissetmelerini sağlar. Sertifikalar, güvenilir sertifika otoriteleri (CA - Certificate Authority) tarafından verilir ve belirli bir süre için geçerlidir.
SSL/TLS Sertifikası Nasıl Çalışır?
SSL/TLS sertifikası, bir web sunucusu ve bir istemci (tarayıcı) arasındaki iletişimi güvence altına almak için şifreleme ve doğrulama süreçlerini kullanır. İşlem şu adımları izler:
- İstemci İsteği: Bir kullanıcı web sitesine erişmek için tarayıcısına URL'yi girdiğinde veya bir bağlantıya tıkladığında, tarayıcı sunucuya bir SSL/TLS el sıkışma (handshake) isteği gönderir.
- Sunucu Yanıtı: Sunucu, kendi SSL/TLS sertifikasını ve genel anahtarını (public key) istemciye gönderir. Bu sertifika, bir sertifika otoritesi tarafından imzalanmıştır ve sunucunun kimliğini doğrular.
- Anahtar Değişimi: Tarayıcı, sunucunun sertifikasını doğrular. Ardından, iletişimi şifrelemek için kullanılacak özel bir simetrik oturum anahtarı oluşturur. Bu oturum anahtarı, sunucunun genel anahtarı kullanılarak şifrelenir ve sunucuya gönderilir.
- Doğrulama ve Şifreleme: Sunucu, kendi özel anahtarını (private key) kullanarak şifrelenmiş oturum anahtarını çözer. Artık hem sunucu hem de istemci aynı simetrik oturum anahtarına sahiptir. Bu anahtar, tüm sonraki veri aktarımlarını şifrelemek ve şifresini çözmek için kullanılır.
- Güvenli İletişim: Tüm veri alışverişi bu oturum anahtarı ile şifrelenir, böylece iletilen bilgiler yetkisiz kişiler tarafından okunamaz hale gelir. Bu süreç, web sitesinin güvenli bir bağlantı üzerinden veri alışverişi yapmasını sağlar.
Bu protokoller, web üzerinde güvenli ve özel iletişimin sağlanması için kritik öneme sahiptir. İşlemlerin tamamı milisaniyeler içinde gerçekleşerek kullanıcı deneyimini olumsuz etkilemez.
Nginx İçin SSL/TLS Sertifika Türleri
Nginx ile kullanılabilecek çeşitli SSL/TLS sertifikası türleri bulunmaktadır. Seçim, ihtiyacın niteliğine ve güvenlik gereksinimlerine göre yapılır:
- Alan Adı Doğrulamalı (DV - Domain Validated) Sertifikalar: En temel sertifika türüdür. Sadece alan adının sahibi olduğunuzu doğrular. Genellikle ücretsiz sertifikalar (örneğin Let's Encrypt) bu kategoriye girer.
- Kuruluş Doğrulamalı (OV - Organization Validated) Sertifikalar: Alan adı doğrulamasına ek olarak, sertifikayı alan kuruluşun fiziksel varlığını ve yasal statüsünü de doğrular. Daha yüksek bir güven seviyesi sunar.
- Genişletilmiş Doğrulamalı (EV - Extended Validation) Sertifikalar: En yüksek doğrulama seviyesine sahip sertifikalardır. Kuruluşun tüm yasal, fiziksel ve operasyonel bilgilerini titizlikle inceler. Tarayıcılarda genellikle yeşil bir çubuk veya kuruluş adının görünmesiyle ayırt edilir.
- Wildcard Sertifikalar: Tek bir sertifika ile bir ana alan adının ve onun alt alan adlarının tamamını kapsar (örn: *.example.com). Birden çok alt alan adı yönetimi için pratiktir.
- Multi-Domain (SAN - Subject Alternative Name) Sertifikalar: Birden fazla farklı alan adını tek bir sertifika ile güvence altına alır.
Her sertifika türü, farklı düzeylerde doğrulama ve güvenlik özellikleri sunar. Web sitenizin gereksinimlerine en uygun olanı seçmek önemlidir.
Nginx ile SSL/TLS Sertifikası Kurulum Rehberi
Nginx'te SSL/TLS sertifikası kurulumu, birkaç temel adımdan oluşur. Öncelikle bir sertifika tedarik etmeniz, ardından Nginx yapılandırmasını düzenlemeniz gerekir.
- Sertifika Edinin:
- Ücretsiz Sertifikalar (Let's Encrypt): Certbot gibi araçlar kullanarak ücretsiz ve otomatik yenilenebilen sertifikalar alabilirsiniz. Bu yöntem, çoğu web sitesi için idealdir.
- Ticari Sertifikalar: Güvenilir sertifika otoritelerinden (Comodo, DigiCert, GlobalSign vb.) DV, OV veya EV sertifikaları satın alabilirsiniz. Bu işlem genellikle bir Sertifika İmzalama Talebi (CSR - Certificate Signing Request) oluşturmayı gerektirir.
- Sertifika Dosyalarını Sunucuya Yükleyin:
- Genellikle sertifika dosyalarınız (örneğin `.crt`, `.pem`) ve özel anahtar dosyanız (`.key`) olacaktır. Bu dosyaları sunucunuzda güvenli bir dizine (örneğin `/etc/nginx/ssl/`) yükleyin. Özel anahtar dosyasının dosya izinlerinin kısıtlı olduğundan emin olun (sadece root kullanıcısı okuyabilmeli).
- Nginx Yapılandırmasını Düzenleyin:
- Nginx yapılandırma dosyanızı (genellikle `/etc/nginx/nginx.conf` veya `/etc/nginx/sites-available/your_site` gibi) açın.
- Sitenizin sunucu bloğu (server block) içine aşağıdaki ayarları ekleyin veya mevcut ayarları güncelleyin:
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name your_domain.com www.your_domain.com; ssl_certificate /etc/nginx/ssl/your_domain.crt; ssl_certificate_key /etc/nginx/ssl/your_domain.key; # SSL/TLS Ayarları (Optimizasyonlar ve Güvenlik) ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_session_tickets off; # Veya güvenlik gereksinimlerinize göre # HTTP'den HTTPS'e Yönlendirme (isteğe bağlı ama önerilir) # Bu ayarı 80 portunu dinleyen ayrı bir server bloğuna koymak daha yaygındır. # Eğer tek server bloğunda yapıyorsanız: # if ($scheme != "https") { # return 301 https://$host$request_uri; # } # Diğer Nginx yapılandırmalarınız (location blokları vb.) location / { proxy_pass http://your_backend_server; # Veya root /var/www/html; # ... } } # HTTP (80) trafiğini HTTPS'e (443) yönlendiren server bloğu server { listen 80; listen [::]:80; server_name your_domain.com www.your_domain.com; return 301 https://$host$request_uri; } - Yukarıdaki örnekte `your_domain.com` ve `www.your_domain.com` yerine kendi alan adınızı, `/etc/nginx/ssl/your_domain.crt` ve `/etc/nginx/ssl/your_domain.key` yerine ise sertifika ve özel anahtar dosyalarınızın tam yolunu yazmalısınız.
- Nginx'i Yeniden Başlatın veya Yeniden Yükleyin:
- Yapılandırma değişikliklerinin etkili olması için Nginx servisini yeniden başlatmanız veya yapılandırmayı yeniden yüklemeniz gerekir:
sudo systemctl restart nginx # Veya sadece yapılandırmayı yeniden yüklemek için: sudo systemctl reload nginx - Test Edin:
- Web tarayıcınızda sitenizi `https://your_domain.com` adresiyle ziyaret ederek SSL/TLS sertifikasının doğru çalışıp çalışmadığını kontrol edin. URL çubuğunda kilit simgesini görmeli ve sertifika detaylarını incelemelisiniz.
- Online SSL test araçlarını (örneğin SSL Labs) kullanarak sertifikanızın yapılandırmasını ve güvenlik düzeyini detaylı olarak analiz edebilirsiniz.
Bu adımlar, Nginx sunucusunda temel bir SSL/TLS kurulumunu tamamlamanızı sağlar. Daha gelişmiş güvenlik ayarları ve optimizasyonlar için Nginx belgelerine başvurulabilir.
Sık Yapılan Hatalar ve Çözümleri
Nginx ile SSL/TLS sertifikası kurulumu sırasında karşılaşılabilecek bazı yaygın hatalar ve çözüm önerileri şunlardır:
- Hata: "ERR_SSL_PROTOCOL_ERROR" veya tarayıcıda sertifika uyarıları.
- Çözüm: Sertifika dosyalarının (hem sertifika hem de anahtar) doğru yolda olduğundan ve Nginx yapılandırmasında doğru belirtildiğinden emin olun. Dosya izinlerinin doğru ayarlandığını kontrol edin (özellikle özel anahtar için). SSL protokollerinin ve şifreleme algoritmalarının uyumluluğunu gözden geçirin.
- Hata: Sertifika yenileme sorunları (özellikle Let's Encrypt ile).
- Çözüm: Certbot'un doğru şekilde kurulduğundan, alan adının doğrulanabildiğinden ve otomatik yenileme cron job'larının çalıştığından emin olun. Sunucu duvarında (firewall) gerekli portların (80 ve 443) açık olduğunu doğrulayın.
- Hata: Kombine içerik hataları (Mixed Content Errors).
- Çözüm: HTTPS sayfasında HTTP üzerinden yüklenen kaynaklar (resimler, CSS, JavaScript dosyaları) bu hataya neden olur. Tüm kaynakların HTTPS üzerinden yüklendiğinden emin olun. Nginx'te `ssl_upgrade` direktifini kontrol edin ve Content Security Policy (CSP) başlıklarını doğru yapılandırın.
- Hata: Nginx servisi başlarken hata veriyor.
- Çözüm: Nginx yapılandırma dosyasında syntax hatası olup olmadığını kontrol edin: `sudo nginx -t`. Hataları düzeltip servisi yeniden başlatın.
- Hata: Sertifika süresi dolmuş veya geçersiz.
- Çözüm: Sertifikanın geçerlilik süresini kontrol edin. Ücretsiz sertifikalar için otomatik yenileme mekanizmalarını kurduğunuzdan emin olun. Ticari sertifikalar için yenileme işlemlerini zamanında gerçekleştirin ve Nginx yapılandırmasını güncelleyin.
Sorun giderme sürecinde Nginx hata günlüklerini (`/var/log/nginx/error.log`) düzenli olarak kontrol etmek, sorunun kaynağını belirlemede büyük fayda sağlar.
Teknik Özellikler ve Standartlar
SSL/TLS protokolleri, internet üzerinde güvenli iletişimi sağlamak için belirli standartlara ve teknik özelliklere dayanır. Bu standartlar, protokolün sürekli gelişimini ve güvenliğini garanti eder:
- TLS Protokolü Sürümleri: Transport Layer Security (TLS) protokolünün farklı sürümleri mevcuttur. En güncel ve güvenli sürüm TLS 1.3'tür. TLS 1.2 hala yaygın olarak kullanılmaktadır. Daha eski sürümler (TLS 1.0, TLS 1.1) güvenlik açıkları nedeniyle artık önerilmemektedir ve birçok tarayıcı ve sunucu tarafından desteklenmemektedir. Nginx yapılandırmasında `ssl_protocols TLSv1.2 TLSv1.3;` gibi bir ifade ile desteklenen protokoller belirtilir.
- Şifreleme Algoritmaları (Cipher Suites): İletişimi şifrelemek için kullanılan algoritmalar topluluğudur. Güvenli şifreleme algoritmalarının kullanılması kritik öneme sahiptir. Nginx'te `ssl_ciphers` direktifi ile güvenli ve performanslı şifreleme paketleri belirlenir. Örneğin, ECDHE, ChaCha20-Poly1305 gibi modern algoritmalar tercih edilir.
- Sertifika Standartları: SSL/TLS sertifikaları X.509 standardına uygun olarak oluşturulur. Bu standart, sertifikanın yapısını, anahtar bilgilerini ve kimlik doğrulama verilerini tanımlar.
- Anahtar Uzunlukları: Güvenlik için yeterli uzunlukta RSA veya ECDSA anahtarları kullanılmalıdır. Günümüzde minimum 2048 bit RSA veya 256 bit ECDSA anahtarları önerilmektedir.
- OCSP Stapling: Sertifika Durumu Protokolü (OCSP) aracılığıyla sertifika iptal durumunu sorgulama süreci, performansı artırmak ve gizliliği korumak için OCSP Stapling ile optimize edilebilir. Nginx'te `ssl_stapling on;` ve `ssl_stapling_verify on;` gibi direktiflerle etkinleştirilir.
Bu standartlara uyum, web sitelerinin güncel güvenlik tehditlerine karşı korunmasını ve güvenli bir kullanıcı deneyimi sunmasını sağlar.
2026 Sektör Verileri ve İstatistikler
İnternet güvenliği ve web sunucu teknolojilerindeki eğilimler, sürekli olarak değişmekte ve gelişmektedir. 2026 yılına ait veriler, bu alandaki güncel durumu ve geleceğe yönelik öngörüleri sunmaktadır:
- W3Techs 2026 verilerine göre, kullanılan tüm web siteleri arasında HTTPS protokolünün penetrasyon oranı %90'ın üzerine çıkarak standart haline gelmiştir. Bu, kullanıcıların ve arama motorlarının güvenli bağlantılara verdiği önemin bir göstergesidir.
- Statista 2026 raporuna göre, global siber güvenlik pazarının değeri 300 milyar doları aşmış olup, SSL/TLS sertifikaları ve ilgili güvenlik çözümleri bu pazarın önemli bir parçasını oluşturmaktadır.
- Cloudflare Radar 2026 verilerine göre, web trafiğinin büyük bir kısmı (%75'ten fazlası) hala mobil cihazlardan gelmekte ve bu durum, mobil uyumlu ve güvenli web sitelerinin önemini artırmaktadır.
- Netcraft 2026 araştırmasına göre, Nginx sunucu pazar payı %30'un üzerine çıkarak, özellikle yüksek performans ve ölçeklenebilirlik gerektiren uygulamalarda tercih edilen bir web sunucusu olmaya devam etmektedir. Apache ise hala yaygın bir kullanım oranına sahip olsa da, Nginx'in pazar payındaki artış devam etmektedir.
Bu istatistikler, SSL/TLS sertifikalarının ve HTTPS'in günümüz internet ekosistemindeki kritik rolünü vurgulamaktadır.
İlgili Konular
Nginx ile SSL/TLS sertifikası kurulumu, web sunucusu yönetimi ve güvenliği ile yakından ilişkilidir. Bu konuda daha fazla bilgi edinmek için aşağıdaki makaleleri inceleyebilirsiniz:
- Web sunucusu kurulumu genel prensiplerini anlamak için Web Sunucusu Kurulumu rehberimize göz atabilirsiniz.
- Nginx ve Apache arasındaki farkları ve seçim kriterlerini öğrenmek için Apache vs Nginx Hangisi Daha İyi? makalesini inceleyebilirsiniz.

