Ana içeriğe geç

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

  1. Cloudflare paneline giriş yapın
  2. Alan adınızı seçin
  3. SSL/TLS → Origin Server yolunu izleyin
  4. 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ı

  1. Güvenlik Duvarını Güncelleme

sudo ufw allow 'Nginx Full'
  • Bu komut HTTP ve HTTPS trafiğine izin verir.


sudo ufw reload

  1. Nginx Server Block Düzenleme

sudo nano /etc/nginx/sites-available/your_domain

  1. HTTP isteklerini HTTPS’e yönlendirme:

server {
listen 80;
server_name your_domain www.your_domain;
return 302 https://$server_name$request_uri;
}

  1. 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;
}
}

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