Ubuntu 22.04 Cloudflare ve Nginx ile Güvenli Web Sitesi Barındırma
Bu rehber, Ubuntu 22.04 üzerinde çalışan Nginx web sunucusunu Cloudflare ile entegre ederek güvenli biçimde yayınlamayı anlatır.
Amaç, tüm trafiğin Cloudflare üzerinden geçmesini sağlamak ve origin sunucuya doğrudan erişimi engellemektir.
Bu Rehberde Ne Öğreneceksiniz?
- Cloudflare Origin CA sertifikası oluşturma
- Nginx üzerinde HTTPS yapılandırması
- Cloudflare Full (Strict) SSL kullanımı
- Authenticated Origin Pulls ile doğrudan erişimi engelleme
Ön Koşullar
- Ubuntu 22.04 yüklü sunucu
- sudo yetkisine sahip kullanıcı
- Nginx kurulu ve yapılandırılmış olmalı
- Cloudflare hesabı ve ekli alan adı
- Alan adı Nginx sunucusuna yönlendirilmiş olmalı
Adım 1: Cloudflare Origin CA Sertifikası Oluşturma
Cloudflare Origin CA, Cloudflare ile sunucunuz arasındaki trafiği şifreler.
Bu sertifika yalnızca Cloudflare tarafından güvenilir kabul edilir.
Sertifikayı Oluşturma
- Cloudflare paneline giriş yapın
- Alan adınızı seçin
- SSL/TLS → Origin Server yolunu izleyin
- Create Certificate butonuna tıklayın
Varsayılan ayarları değiştirmeden devam edin.
Sertifikayı Sunucuya Kaydetme
sudo nano /etc/ssl/cert.pem
- Bu dosya Origin CA sertifikasını tutar.
sudo nano /etc/ssl/key.pem
- Bu dosya özel anahtarı tutar.
Not: Dosyalar içinde boş satır olmamalıdır.
Adım 2: Nginx Üzerinde HTTPS Yapılandırması
- Güvenlik Duvarını Güncelleme
sudo ufw allow 'Nginx Full'
- Bu komut HTTP ve HTTPS trafiğine izin verir.
sudo ufw reload
- Nginx Server Block Düzenleme
sudo nano /etc/nginx/sites-available/your_domain
- HTTP isteklerini HTTPS’e yönlendirme:
server {
listen 80;
server_name your_domain www.your_domain;
return 302 https://$server_name$request_uri;
}
- HTTPS yapılandırması:
server {
listen 443 ssl http2;
server_name your_domain www.your_domain;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
root /var/www/your_domain/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- Nginx Yapılandırmasını Test Etme
sudo nginx -t
- Bu komut yapılandırma hatalarını kontrol eder.
sudo systemctl restart nginx
Adım 3: Cloudflare SSL Modunu Ayarlama
1. Cloudflare panelinde:
- SSL/TLS → Overview → Full (Strict) seçin.
Bu ayar Cloudflare ile sunucu arasındaki bağlantıyı zorunlu HTTPS yapar.
Adım 4: Authenticated Origin Pulls Kurulumu
- Bu adım, sunucunun yalnızca Cloudflare’dan gelen isteklere yanıt vermesini sağlar.
1. Cloudflare Sertifikasını Sunucuya Ekleme
sudo nano /etc/ssl/cloudflare.crt
- Bu dosya Cloudflare istemci CA sertifikasını tutar.
2. Nginx Konfigürasyonunu Güncelleme
sudo nano /etc/nginx/sites-available/your_domain
3. SSL bloğuna aşağıdaki satırları ekleyin:
ssl_client_certificate /etc/ssl/cloudflare.crt;
ssl_verify_client on;
4. Nginx’i Yeniden Başlatma
sudo nginx -t
sudo systemctl restart nginx
5. Cloudflare Panelinde Etkinleştirme
- Cloudflare panelinde:
SSL/TLS → Origin Server → Authenticated Origin Pulls özelliğini aktif edin.
Adım 6. Test ve Doğrulama
Site normal şekilde açılıyorsa yapılandırma doğrudur Özellik kapatıldığında site hata veriyorsa güvenlik aktiftir
Sıkça Sorulan Sorular (SSS)
1. Origin CA sertifikası ne işe yarar? Cloudflare ile sunucu arasındaki trafiği şifreler.
2. Authenticated Origin Pulls ne sağlar? Sunucuya doğrudan erişimi tamamen engeller.
3. Neden Full (Strict) SSL kullanılıyor? En yüksek Cloudflare güvenlik seviyesini sağlar.
4. Cloudflare devre dışı kalırsa ne olur? Origin CA sertifikası geçersiz sayılır.
Sonuç
Bu rehberle Nginx üzerinde barındırılan web sitenizi Cloudflare ile güvenli hale getirdiniz. Artık sunucunuz yalnızca Cloudflare üzerinden erişilebilir durumdadır.
Bu yapılandırmayı Rabisu Bulut altyapısında hemen deneyebilirsiniz.