İçeriğe geç
Guides 7 dk okuma 1578 görüntülenme

Ters proxy olarak Caddy

Caddy'yi verimli bir ters proxy olarak yapılandırmayı ve sitelerinizi otomatik olarak HTTPS ile korumayı öğrenin. Sadeliğini ve gücünü keşfedin.

Ters proxy olarak Caddy

Ters proxy olarak yapılandırıldığında Caddy, Let's Encrypt veya ZeroSSL gibi ACME sağlayıcılarını kullanarak alan adlarınız için TLS sertifikalarını otomatik olarak alır, yeniler ve yönetir; böylece HTTPS elle müdahale olmadan varsayılan olarak etkinleşir. Bu özellik, elle sertifika yönetimi işlerini ortadan kaldırarak güvenli web sunucusu kurulumunu basitleştirir.

Caddy'nin otomatik HTTPS özelliğini anlamak

Caddy'nin temel farkı, HTTPS'e sıfır yapılandırmayla yaklaşmasıdır. Caddy bir alan adı için istek aldığında, o alan adına ait geçerli bir sertifika yoksa ve açıkça yapılandırılmamışsa sertifikayı almaya çalışır. Bu süreç ACME (Automatic Certificate Management Environment) protokolünü kullanır.

ACME ile Caddy nasıl etkileşir

  1. Alan adı çözümleme: Caddy, gelen istekle ilişkili alan adını belirler.
  2. Sertifika kontrolü: o alan adı için geçerli ve mevcut bir sertifika olup olmadığını yerel deposunda kontrol eder.
  3. ACME doğrulaması: geçerli bir sertifika bulunamazsa Caddy, yapılandırılmış ACME sağlayıcısıyla (varsayılan Let's Encrypt, yedek olarak ZeroSSL) bir ACME doğrulaması başlatır. En yaygın doğrulama türleri HTTP-01 ve DNS-01'dir.
    • HTTP-01 doğrulaması: Caddy, sunucuda belirli bir yolda (/.well-known/acme-challenge/) geçici bir dosya oluşturur. ACME sağlayıcısı daha sonra alan adı sahipliğini doğrulamak için bu dosyaya 80 numaralı port üzerinden HTTP ile erişmeye çalışır. Bu, Caddy'nin 80 numaralı portta herkese açık erişilebilir olmasını gerektirir.
    • DNS-01 doğrulaması: Caddy, ACME sağlayıcısına alan adının DNS bölgesindeki belirli bir TXT kaydını kontrol ederek sahipliği doğrulamasını söyler. Bu yöntem wildcard sertifikalar için zorunludur ve 80 numaralı port kullanılamadığında da işe yarar. Caddy'nin desteklenen bir DNS sağlayıcısına ait kimlik bilgilerine sahip olmasını gerektirir.
  4. Sertifika verilmesi: doğrulama başarıyla tamamlandığında ACME sağlayıcısı alan adı için bir TLS sertifikası verir.
  5. Sertifika depolama: Caddy, sertifikayı ve özel anahtarını disk üzerinde güvenli biçimde saklar.
  6. Otomatik yenileme: Caddy sertifikaların son kullanma tarihlerini izler ve aynı ACME doğrulama sürecini kullanarak bunları çok önceden (genellikle son kullanma tarihinden 30 gün önce) otomatik olarak yeniler.
  7. OCSP Stapling: Caddy ayrıca OCSP yanıtlarını otomatik olarak alıp sertifikalara ekler; böylece istemciler sertifika iptal durumunu doğrudan Sertifika Otoritesi'ne bağlanmadan doğrulayabilir, bu da istemci performansını ve gizliliğini artırır.

Otomatik HTTPS ile temel ters proxy yapılandırması

Ters proxy için asgari bir Caddyfile yapılandırması, otomatik HTTPS'i dolaylı olarak etkinleştirir.

Basit ters proxy örneği

yourdomain.com {
    reverse_proxy localhost:8080
}

Bu örnekte:
* yourdomain.com: bu, site etiketidir. Caddy bu alan adına gelen istekleri hem 80 numaralı portta (HTTP yönlendirmeleri ve ACME doğrulamaları için) hem de 443'te (HTTPS için) dinler.
* reverse_proxy localhost:8080: bu yönerge, yourdomain.com için gelen tüm istekleri localhost üzerinde 8080 portunda çalışan upstream uygulamaya iletir.

Caddy bu yapılandırmayla başlatıldığında aşağıdaki adımları otomatik olarak gerçekleştirir:
1. Bir ACME sağlayıcısından yourdomain.com için TLS sertifikası almayı dener.
2. 80 numaralı porttaki tüm trafik için HTTP'den HTTPS'e yönlendirme kurar.
3. Alınan sertifikayı kullanarak yourdomain.com alan adını HTTPS üzerinden sunar.

Caddy'yi çalıştırma

Caddy'yi bu yapılandırmayla çalıştırmak için:

  1. Yukarıdaki içeriği istediğiniz dizine Caddyfile adıyla kaydedin.
  2. Terminalde o dizine gidin.
  3. Şu komutu çalıştırın: caddy run

Üretim ortamlarında Caddy'yi bir systemd servisi olarak ya da Docker konteyneri içinde çalıştırmanız önerilir.

Gelişmiş HTTPS yapılandırmaları

Özel sertifikalar

Elinizde hazır TLS sertifikaları varsa (örneğin kurumsal bir CA'dan alınmış ya da elle edinilmiş wildcard sertifikalar), Caddy otomatik sertifika almak yerine bunları kullanacak şekilde yapılandırılabilir.

yourdomain.com {
    tls /path/to/your/cert.pem /path/to/your/key.pem
    reverse_proxy localhost:8080
}
  • tls /path/to/your/cert.pem /path/to/your/key.pem: tam zincir sertifika dosyasını ve özel anahtar dosyasını belirtir. Caddy bu dosyaları kullanır ve yourdomain.com için sertifika almaya çalışmaz.

DNS-01 doğrulamasıyla wildcard sertifikalar

Wildcard sertifikalar (*.yourdomain.com) DNS-01 ACME doğrulamasını gerektirir, çünkü HTTP-01 doğrulaması rastgele alt alan adlarının sahipliğini kanıtlayamaz. Bu nedenle Caddy'nin DNS sağlayıcınıza ait kimlik bilgileriyle yapılandırılması gerekir.

*.yourdomain.com {
    tls {
        dns cloudflare {
            api_token "YOUR_CLOUDFLARE_API_TOKEN"
        }
    }
    reverse_proxy localhost:8080
}
  • tls { dns cloudflare { ... } }: bu blok Caddy'ye DNS-01 doğrulamasını Cloudflare DNS sağlayıcısıyla kullanmasını söyler.
  • api_token "YOUR_CLOUDFLARE_API_TOKEN": bunu gerçek Cloudflare API token'ınızla değiştirin. Caddy, eklentiler aracılığıyla çok sayıda DNS sağlayıcısını destekler. Sağlayıcıya özel yapılandırmalar için Caddy belgelerine bakın.

Birden fazla alan adı ve site blokları

Caddy, her biri kendi otomatik HTTPS'ine sahip birden fazla alan adını sunabilir.

yourdomain.com {
    reverse_proxy localhost:8080
}

anotherdomain.org {
    reverse_proxy localhost:8081
}

Caddy, hem yourdomain.com hem de anotherdomain.org için sertifikaları birbirinden bağımsız olarak alır ve yönetir.

HTTP-01 ve DNS-01 doğrulamalarının karşılaştırması

Özellik HTTP-01 doğrulaması DNS-01 doğrulaması
Doğrulama yöntemi 80 numaralı portta dosya sunmak DNS'e TXT kaydı eklemek
Gerekli port 80 (ACME doğrulaması için) Belirli bir port yok, yalnızca DNS erişimi
Wildcard desteği Hayır Evet (*.yourdomain.com)
Dahili sunucular Caddy herkese açık erişilebilir değilse uygun değil DNS yönetilebiliyorsa dahili sunucular için uygun
Yapılandırma Genellikle otomatik, ek yapılandırma gerekmez DNS sağlayıcı kimlik bilgileri ve eklenti gerektirir
Güvenlik duvarı ihtiyaçları 80 numaralı port internete açık olmalı Doğrulama için Caddy sunucusunda gelen port gerekmez

ACME sağlayıcıları

Caddy sertifika alımı için varsayılan olarak Let's Encrypt kullanır. ZeroSSL yedek olarak devreye girer. Hangi ACME sağlayıcısının kullanılacağını açıkça yapılandırabilirsiniz.

yourdomain.com {
    tls [email protected] {
        ca https://acme-v02.api.letsencrypt.org/directory
    }
    reverse_proxy localhost:8080
}
  • ca https://acme-v02.api.letsencrypt.org/directory: ACME CA URL'sini belirtir.
  • [email protected]: ACME hesabı kaydı ve CA'dan gelecek önemli bildirimler için bir e-posta adresi vermeniz önerilir.

Sertifikaları yönetme

Caddy sertifikaları otomatik yönetir, ancak depolama biçimini ve elle müdahale seçeneklerini bilmek işinize yarayabilir.

Sertifika depolama

Caddy varsayılan olarak sertifikaları, özel anahtarları ve ACME hesap bilgilerini bir veri dizininde saklar. Tam konum, işletim sistemine ve Caddy'nin nasıl çalıştırıldığına bağlıdır:
* Linux: /var/lib/caddy/.local/share/caddy (systemd üzerinden root olarak çalıştırıldığında) veya $HOME/.local/share/caddy (kullanıcı olarak çalıştırıldığında).
* Docker: konteynerin /data birimi içinde.

Her yeniden başlatmada sertifikaların yeniden alınmasını önlemek için bu dizin kalıcı olmalıdır (örneğin Docker'da bağlanmış bir birim).

Elle yenileme ve iptal

Caddy yenilemeyi otomatikleştirse de sertifika deposuyla doğrudan uğraşmanız nadiren gerekir.
* Yenileme: anında yenileme gerekiyorsa (örneğin bir sertifika ele geçirildiyse), ilgili sertifika dosyalarını Caddy'nin veri dizininden silebilirsiniz. Caddy bir sonraki başlatmada veya istekte yenisini almayı dener.
* İptal: sertifika iptali ileri düzey bir işlemdir ve genellikle özel anahtar ele geçirildiğinde yapılır. Caddy iptal için doğrudan bir komut satırı aracı sunmaz. Bu işlem gerektiğinde genellikle ACME sağlayıcısının API'si veya özel bir istemci üzerinden yapılır.

Yaygın HTTPS sorunlarını giderme

Güvenlik duvarı yapılandırması

Caddy sunucunuzda 80 ve 443 numaralı portların gelen trafiğe açık olduğundan emin olun. 80 numaralı port, HTTP-01 ACME doğrulaması ve HTTP'den HTTPS'e yönlendirmeler için kritiktir.

DNS yayılımı

DNS-01 doğrulamasını kullanıyorsanız, DNS kayıtlarınızın (özellikle doğrulamaya ait TXT kaydının) doğru şekilde yayıldığını doğrulayın. dig gibi araçları veya çevrimiçi DNS sorgulama servislerini kullanın. Hatalı veya yavaş DNS yayılımı sertifikanın verilmesini engelleyebilir.

ACME hız limitleri

Let's Encrypt gibi ACME sağlayıcılarının sertifika verme konusunda hız limitleri vardır. Art arda başarısız denemeler geçici engellemelere yol açabilir.
* Staging ortamı: üretim limitlerine takılmamak için testlerde ACME staging ortamını kullanın.
caddyfile yourdomain.com { tls [email protected] { ca https://acme-staging-v02.api.letsencrypt.org/directory } reverse_proxy localhost:8080 }
* Alan adlarını birleştirin: çok sayıda alt alan adı sunuyorsanız, tekil sertifika isteklerinin sayısını azaltmak için wildcard sertifikayı değerlendirin.

Caddy günlükleri

Caddy günlükleri sertifika alma denemeleri, yenilemeler ve hatalar hakkında ayrıntılı bilgi verir. HTTPS beklendiği gibi çalışmıyorsa, günlüklerde ilgili hata mesajlarını kontrol edin.
* Varsayılan günlük konumu: günlükler genellikle standart çıktıya (stdout) veya yapılandırılmış bir günlük dosyasına yazılır.
* Ayrıntılı günlükleme: daha fazla tanı bilgisi için günlük ayrıntı düzeyini artırabilirsiniz.

{
    log {
        output file /var/log/caddy/caddy.log
        level DEBUG
    }
}

yourdomain.com {
    reverse_proxy localhost:8080
}

Dağıtım ile ilgili hususlar

Docker

Caddy'yi Docker'da dağıtırken veri dizininin kalıcı bir birime eşlendiğinden emin olun.

version: '3.8'
services:
  caddy:
    image: caddy:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data # Sertifikalar için kalıcı depolama
      - caddy_config:/config
  myapp:
    image: myapp:latest
    restart: unless-stopped
    expose:
      - "8080" # Dahili port, dışarıya açılmaz

volumes:
  caddy_data:
  caddy_config:

Systemd servisi

Fiziksel sunucu veya sanal makine dağıtımlarında Caddy'yi systemd servisi olarak çalıştırmak standart uygulamadır. Resmî Caddy belgeleri, Caddy'yi ayrı bir kullanıcı olarak çalıştıracak ve veri dizinini doğru yönetecek örnek caddy.service dosyaları sunar.

Kaynak kullanımı

Caddy hafiftir. Sertifika yönetimi işlemleri çok az kaynak tüketir ve genellikle arka planda gerçekleşir. Asıl kaynak tüketimi trafiğin proxy'lenmesiyle ilgili olacaktır.

Güvenlik için en iyi uygulamalar

Caddy'nin otomatik HTTPS özelliği pek çok güvenlik konusunu varsayılan olarak halleder:
* Güçlü TLS şifre paketleri: Caddy modern ve güvenli TLS şifre paketleri kullanır.
* HTTP Strict Transport Security (HSTS): Caddy, tarayıcılara her zaman HTTPS ile bağlanmalarını söyleyen Strict-Transport-Security başlığını otomatik olarak ekleyebilir.
* OCSP Stapling: gecikmeyi azaltır ve gizliliği artırır.

Caddy TLS karmaşıklığının büyük bölümünü üstlense de genel güvenlik uygulamaları geçerliliğini korur:
* Caddy'yi güncel tutun: güvenlik yamalarından ve yeni özelliklerden yararlanmak için Caddy'yi düzenli olarak en son sürüme güncelleyin.
* En az yetki: Caddy'yi gereken en az izinle çalıştırın. Resmî systemd servis dosyaları Caddy'yi root olmayan bir kullanıcı olarak çalıştıracak şekilde yapılandırır.
* Güvenlik duvarı: upstream uygulamalarınıza (örneğin localhost:8080) erişimi kısıtlayın; yalnızca Caddy örneğinden erişilebilir olsunlar.
* Erişim denetimi: proxy arkasındaki belirli rotalar veya uygulamalar için gerekiyorsa ek erişim denetimi veya kimlik doğrulama uygulayın.

Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.