# Ubuntu 14.04’te Nginx’i Let’s Encrypt ile Güvence Altına Alma
Meta Açıklama: Ubuntu 14.04 sunucunuzu Let’s Encrypt ile güvence altına alarak HTTPS’ye geçmek mi istiyorsunuz? Bu rehberde adım adım Nginx kurulumunuzu SSL sertifikasıyla nasıl koruyacağınızı, performans optimizasyonunu ve olası sorunları nasıl çözeceğinizi öğreneceksiniz. Güvenli bir web sunucusu için ihtiyacınız olan her şey burada!
Günümüzde internette güvenlik en önemli konulardan biri. Kullanıcılarınızın verilerini korumak ve güvenilir bir web sitesi imajı oluşturmak için HTTPS kullanmak şart. Peki, Ubuntu 14.04 sunucunuzu Let’s Encrypt ile nasıl güvence altına alırsınız? Bu makalede, adım adım bir kılavuzla, Nginx sunucunuzu Let’s Encrypt SSL sertifikasıyla korumanın yollarını, performans optimizasyonlarını ve olası sorunları ele alacağız. Hazırsanız başlayalım!
Öğrenme Yol Haritası
Bu makale, farklı seviyelerdeki kullanıcılara hitap edecek şekilde tasarlanmıştır:
Yeni Başlayan: Adım adım kurulum, basit kod örnekleri ve temel kavramlar.
Orta Seviye: Gerçek dünya senaryoları, optimizasyon ipuçları ve daha gelişmiş konfigürasyonlar.
İleri Seviye: Performans analizi, edge case’ler ve karmaşık sorunların çözümü.
Nginx ve Let’s Encrypt: Temel Kavramlar
Nginx, yüksek performanslı bir web sunucusudur. Esnekliği ve performansı sayesinde birçok büyük web sitesi tarafından tercih edilir. Let’s Encrypt ise, otomatik ve ücretsiz SSL/TLS sertifikaları sağlayan bir kuruluştur. HTTPS protokolü, web siteleri ile kullanıcılar arasındaki iletişimi şifreleyerek güvenliği sağlar. Let’s Encrypt sayesinde, pahalı SSL sertifikaları satın almadan web sitenizi güvence altına alabilirsiniz. Bu makalede, Ubuntu 14.04 üzerinde Nginx’i kurup yapılandırarak Let’s Encrypt ile SSL sertifikası almayı ve sunucunuzu güvenli hale getirmeyi öğreneceksiniz.
Ubuntu 14.04’e Nginx Kurulumu (Yeni Başlayan)
Ubuntu 14.04’ü çalıştıran bir sunucunuz varsa, öncelikle Nginx’i kurmalısınız. Bunun için aşağıdaki komutları terminalde çalıştırın:
sudo apt-get update
sudo apt-get install nginx
Kurulum tamamlandıktan sonra, Nginx’i başlatmak ve otomatik başlatmayı etkinleştirmek için:
sudo systemctl start nginx
sudo systemctl enable nginx
Nginx’in çalıştığından emin olmak için tarayıcınızda sunucunuzun IP adresini veya domain adını yazın. Nginx’in varsayılan karşılama sayfasını görmelisiniz.
Let’s Encrypt ile SSL Sertifikası Alma (Orta Seviye)
Let’s Encrypt kullanarak SSL sertifikası almak için certbot aracını kullanacağız. Öncelikle certbot‘u kurun:
sudo apt-get update
sudo apt-get install python-certbot-nginx
Şimdi certbot ile sertifikayı talep edelim. Aşağıdaki komutu çalıştırın. -d bayrağı ile domain adınızı belirtmeniz önemlidir. Eğer www alt alan adını da kullanıyorsanız, bunu da ekleyebilirsiniz:
sudo certbot --nginx -d benimdomain.com -d www.benimdomain.com
Komutu çalıştırdıktan sonra, certbot size bazı sorular soracak. Örneğin, sertifikayı hangi e-posta adresine bağlamak istediğinizi soracaktır. Bu adımları tamamladıktan sonra, sertifikalar otomatik olarak Nginx konfigürasyonuna eklenecektir.
Nginx Konfigürasyonunun Güvenliğini Artırma (Orta Seviye)
Sadece SSL sertifikası eklemek yeterli değildir. Nginx konfigürasyonunuzu güvenlik açısından iyileştirmeniz gerekir. Örneğin, http trafiğini https‘a yönlendirmeniz, gereksiz modülleri devre dışı bırakmanız ve güvenlik duvarı kurallarınızı düzenlemeniz önemlidir. nginx.conf dosyasını düzenleyerek listen direktifini sadece 443 (HTTPS) portu için ayarlayabilirsiniz. Ayrıca, server_name direktifi ile domain adınızı belirtmeyi unutmayın.
Örnek nginx.conf dosyası (değişiklikleri kendi domain adınıza göre yapın):
server {
listen 443 ssl;
server_name benimdomain.com www.benimdomain.com;
ssl_certificate /etc/letsencrypt/live/benimdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/benimdomain.com/privkey.pem;
# ... diğer konfigürasyonlar ...
location / {
root /var/www/html;
index index.html;
}
}
server {
listen 80;
server_name benimdomain.com www.benimdomain.com;
return 301 https://$server_name$request_uri;
}
Bu konfigürasyon, http (80. port) üzerinden gelen istekleri https‘a (443. port) yönlendirir. fatihsoysal.com sitesi gibi başarılı sitelerin konfigürasyonlarını inceleyerek daha fazla ipucu bulabilirsiniz.
Gerçek Dünya Senaryoları ve Vaka Analizleri (İleri Seviye)
Senaryo 1: Birden fazla domain adını aynı sunucuda barındırıyorsanız, her domain için ayrı bir server bloğu oluşturmanız gerekir. Her blokta doğru server_name, ssl_certificate ve ssl_certificate_key değerlerini belirtmeniz önemlidir.
Senaryo 2: Sertifika süresi dolduğunda, certbot aracını kullanarak otomatik yenileme işlemini gerçekleştirebilirsiniz. certbot renew komutunu düzenli olarak çalıştırmanız veya cron job ile otomatikleştirmeniz önerilir.
Senaryo 3: Hata ayıklama: Eğer Nginx’te bir sorunla karşılaşırsanız, error.log dosyasını kontrol etmelisiniz. Bu dosyada, olası hatalar ve sorunlar hakkında detaylı bilgiler bulunur. tail -f /var/log/nginx/error.log komutu ile bu dosyayı gerçek zamanlı olarak izleyebilirsiniz.
Performans Optimizasyonu (İleri Seviye)
Nginx’in performansını artırmak için çeşitli optimizasyon teknikleri uygulayabilirsiniz. Bunlardan bazıları:
* Gzip sıkıştırması: İstemcilere gönderilen verileri sıkıştırarak bant genişliği kullanımını azaltır.
* Keep-alive bağlantıları: Birden fazla istek için aynı bağlantıyı kullanarak bağlantı kurma süresini azaltır.
* Caching: Statik dosyaları önbelleğe alarak sunucu yükünü azaltır.
* Nginx’i optimize etmek için farklı modüller ve konfigürasyon seçenekleri: Daha detaylı bilgi için Nginx dokümanlarına bakabilirsiniz.
Sonuç
Bu makalede, Ubuntu 14.04 üzerinde Nginx’i Let’s Encrypt ile güvence altına almanın adım adım yol haritasını anlattık. Güvenlik ve performans optimizasyonuna dikkat ederek, web sitenizi kullanıcılarınız için daha güvenli ve hızlı hale getirebilirsiniz. Unutmayın ki güvenlik sürekli bir süreçtir ve düzenli güncellemeler ve güvenlik denetimleri yapmanız önemlidir.
Sıkça Sorulan Sorular:
1. Let’s Encrypt sertifikaları ne kadar süreyle geçerlidir? 90 gün.
2. Sertifikalarımı nasıl otomatik olarak yenileyebilirim? certbot renew komutunu kullanarak veya cron job ile otomatikleştirerek.
3. Nginx’in error.log dosyası nerede bulunur? /var/log/nginx/error.log
4. HTTPS kullanmanın önemi nedir? Kullanıcı verilerini şifreleyerek güvenliği sağlar ve arama motorlarında daha iyi sıralama elde etmenizi sağlar.
5. Daha fazla bilgi için nereye başvurabilirim? Nginx ve Let’s Encrypt dokümanlarına bakabilirsiniz. Ayrıca, [fatihsoysal.com](https://fatihsoysal.com) gibi güvenilir kaynaklardan da bilgi edinebilirsiniz.
Yazar: Fatih Soysal