İçeriğe atla
Cloudflare Wiki

    ↑↓ gez↵ açEsc kapatCloudflare Wiki

    SSL/TLS

    Tek istekte iki ayrı sertifika var: ziyaretçiye sunulan edge sertifikası ve origin'e giden bacaktaki sertifika. Şifreleme modu bu ikisinin nasıl kullanılacağını belirliyor ve yanlış seçim en sık görülen arızayı üretiyor.

    • DurumGenel kullanımda
    • FiyatUniversal SSL ücretsiz; Advanced Certificate Manager 10 USD/ay eklenti
    • Ücretsiz katmanvar
    • Doğrulama

    SSL/TLS nedir?

    Cloudflare’de tek bir isteğin arkasında iki ayrı sertifika var. Bu, ürünle ilgili anlaşılması gereken ilk şey:

    “instead of only one certificate, there can actually be two certificates involved in a single request: an edge certificate and an origin certificate.”

    • Edge certificate — Cloudflare’in ziyaretçiye sunduğu sertifika. Panelde SSL/TLS → Edge Certificates.
    • Origin certificate — Cloudflare ile senin sunucun arasındaki bacaktaki sertifika. Onu sen yönetirsin.

    Şifreleme modu, bu iki sertifikanın nasıl kullanılacağını belirler. Yanlış seçim bu ürünle ilgili en sık görülen arızayı üretir.

    Her planda ücretsiz gelenler: Universal SSL, backup sertifikaları, Cloudflare Origin CA, Authenticated Origin Pulls, Always Use HTTPS, HSTS, Automatic HTTPS Rewrites, Opportunistic Encryption, TLS 1.3, zone seviyesi Minimum TLS, Certificate Transparency Monitoring, Encrypted Client Hello ve Cloudflare-yönetimli CA ile mTLS.

    Nasıl çalışır?

    Şifreleme modları

    ModZiyaretçi bacağıOrigin bacağıSertifika doğrulanıyor mu
    OffŞifresiz — HTTPS isteği HTTP’ye düşürülürŞifresiz—
    FlexibleHTTPSHer zaman düz HTTP—
    FullHTTPSHTTPS (ziyaretçinin şemasını izler)Hayır
    Full (strict)HTTPSHTTPSEvet
    Strict (SSL-Only Origin Pull)HTTPS veya HTTPHer zaman HTTPSEvet — Enterprise

    Cloudflare’in tavsiyesi tek cümle: “If possible, Cloudflare strongly recommends using Full or Full (strict) modes to prevent malicious connections to your origin.”

    Full (strict)‘te origin sertifikasının üç şartı sağlaması gerekiyor: süresi dolmamış olmak, public olarak güvenilir bir CA veya Cloudflare’in Origin CA’sı tarafından verilmiş olmak, ve istenen hostname ile eşleşen bir CN veya SAN taşımak.

    Flexible’ın iki gizli kısıtı var: “Flexible mode is only supported for HTTPS connections on port 443… Other ports using HTTPS will fall back to Full mode” ve “Authenticated Origin Pull does not work when your SSL/TLS encryption mode is set to Off or Flexible.”

    Automatic SSL/TLS

    Yeni zone’lar Full (strict) ile başlamıyor — Automatic SSL/TLS ile başlıyor, ve bu özellik zone’u origin’in desteklediği en güvenli moda yükseltiyor.

    Nasıl çalışıyor:

    • Cloudflare-SSLDetector ajanı origin’den hem HTTP hem HTTPS üzerinden içerik indirip içerik benzerliği algoritması uyguluyor. robots.txt’yi yok sayıyor.
    • Yükseltme %1 trafikle başlayıp sorun yoksa %10’luk artışlarla ilerliyor.
    • Bağlantı bozulursa: “Cloudflare aborts the upgrade, immediately rolls traffic back to the previous mode, and logs the failure.”
    • Tarama yaklaşık ayda bir.
    • Asla aşağı indirmiyor: “Automatic SSL/TLS will not change your setting to a less secure encryption mode.” Origin sertifikan dolarsa Full (strict)‘ten Full’e düşmüyor — sorumluluk sende.

    2025’te yapılan toplu yükseltmenin dağılımı: Flexible→Full ≈ 2.200.000, Flexible→Full (strict) ≈ 2.000.000, Full→Full (strict) ≈ 1.800.000 alan adı.

    Kapatmak için: PATCH /zones/$ZONE_ID/settings/ssl_automatic_mode → {"value":"custom"}

    Sertifika tipleri

    TipKim verirGeçerlilikPlanÜcret
    Universal SSLCloudflare seçer (LE / GTS / SSL.com)90 gün, 30 gün kala yenilenirHepsiÜcretsiz
    BackupFarklı CA + farklı anahtar90 günHepsiÜcretsiz
    AdvancedSen seçersin2 hafta – 1 yılACM eklentisi10 USD/ay
    Custom (yüklediğin)Kendi CA’nSeninBusiness+Plan içinde 1+1
    Origin CACloudflare Origin CA — public olarak güvenilir değil7 gün – 15 yılHepsiÜcretsiz
    Custom hostname (SaaS)Cloudflare90 günCloudflare for SaaS100 dahil

    Universal SSL’in kapsamı — full DNS kurulumunda apex + yalnızca birinci seviye subdomain. dev.www.example.com kapsanmıyor. Partial (CNAME) kurulumunda ise “each proxied subdomain receives its own certificate regardless of depth”.

    Ücretsiz planda yalnızca ECDSA sunuluyor; ücretli planlarda RSA da var.

    Origin CA’nın ayırt edici özellikleri: en fazla 200 SAN, IP adresi kullanılamıyor, wildcard tek seviye (ama aynı sertifikada birden çok kez kullanılabiliyor), ve geçerlilik 5475 güne (15 yıl) kadar çıkabiliyor.

    Kullanılan sertifika otoriteleri

    Tam olarak dört tane:

    CAGeçerlilikDCV token ömrüNot
    Let’s Encrypt90 gün7 günEn fazla 10 seviye subdomain; haftada 5 duplicate; Android 7.0 ve öncesi 2024 zincir değişikliğinden sonra uyumsuz
    Google Trust Services14 / 30 / 90 gün14 gün“Browser compatibility (most compatible)” — eski GlobalSign köküyle cross-sign
    SSL.com14 / 30 / 90 gün, Enterprise + advanced ile 1 yıl14 günRSA ve ECDSA için ayrı token gerekiyor — sipariş başına iki token
    Sectigo90 gün—Yalnızca backup sertifikaları

    Universal SSL’de CA’yı seçemiyorsun ve “Cloudflare can change the certificate authority without prior notification.”

    CAA kayıtları Cloudflare DNS kullanıyorsan senin adına otomatik ekleniyor ve panelde görünmüyor (dig example.com caa +short ile görülür). Ama bu ACM için geçerli değil: “Advanced certificates are dedicated (not shared), so Cloudflare does not add CAA records automatically for them.”

    Neden 90 gün

    “Cloudflare only issues certificates with validity periods of three months or less for two reasons. First, shorter-lived certificates limit the damage from key compromise and mistaken issuance. Any compromised key material will be valid for a shorter period of time. Second, shorter certificates encourage automation.”

    Doğrulama (DCV)

    • Full DNS kurulumu: “Cloudflare handles DCV automatically on your behalf using a TXT record.” Yapman gereken bir şey yok.
    • Partial (CNAME) kurulumu: duruma göre değişiyor. Wildcard sertifika için TXT zorunlu; ACM varsa Delegated DCV öneriliyor.
    • HTTP DCV wildcard’da çalışmıyor: “HTTP DCV validation does not work for wildcard certificates.”
    • Delegated DCV kullanıyorsan CNAME’i kalıcı bırakman gerekiyor, ve tek bir sağlayıcıya delege edilebiliyor — çoklu CDN kullanıyorsan bu yöntem diğerlerini engeller.
    • E-posta DCV: Cloudflare’in yöntem listesinde yok. Yalnızca Delegated, TXT ve HTTP var (pozitif kontrollü doğrulandı).

    Doğrulama başarısız olursa geri çekilme üstel: min(floor(60 × 1.05^deneme) sn, 4 saat). Deneme 40’tan sonra sabit 4 saat.

    TLS sürümü, cipher ve edge ayarları

    • Varsayılan minimum TLS 1.0’dır. “TLS 1.0 is the version that Cloudflare sets by default.” PCI için 1.2, Cloudflare’in tavsiyesi 1.3.
    • TLS 1.3 tüm planlarda. tls_1_3 değeri "zrt" yapılırsa 0-RTT açılıyor. Kısıt: “You cannot set specific TLS 1.3 ciphers.”
    • Cipher seviyeleri: Modern (9 cipher, hepsi forward-secret + AEAD), Compatible (13), Legacy (varsayılan, 23 — DES-CBC3-SHA dahil). Değiştirmek ACM gerektiriyor.
    • HSTS açılırken dikkat: kapatmak için toggle yetmiyor, Max Age’i 0 (Disable) yapman gerekiyor. Preload “can make a website without HTTPS completely inaccessible”.
    • ECH (Encrypted Client Hello) SNI’yi şifreliyor; ECH’li tüm siteler dışarıdan cloudflare-ech.com görünüyor. “ECH is enabled by default on Free zones.”

    Authenticated Origin Pulls — üç bağımsız seviye

    SeviyeSertifikaGüvence
    GlobalCloudflare sağlar, tüm hesaplarda ortakYalnızca “Cloudflare ağından geliyor”
    Zone-levelSen yüklersinHesabına özel
    Per-hostnameSen yüklersinEn yüksek; diğer ikisini ezer

    mTLS — ters yön

    AOP Cloudflare’in origin’e kendini kanıtlaması; mTLS ziyaretçinin Cloudflare’e kendini kanıtlaması. Doğrulama hesap seviyesinde yapılıyor, yani aynı sertifikalar hesabındaki birden çok alan adında çalışıyor.

    mTLS’i açmak tek başına hiçbir şeyi engellemiyor — doğrulamayı zorunlu kılmak için bir WAF custom rule gerekiyor. Sonuç cf.tls_client_auth.cert_verified alanına yazılıyor.

    BYOCA (kendi CA’nı getirmek) yalnızca Enterprise ve hesap başına 5 CA ile sınırlı — bu kota API Shield, Workers mTLS ve Gateway ile paylaşılıyor.

    Post-quantum

    BağlantıAnahtar anlaşmasıİmzalar
    Ziyaretçi → Cloudflare✅ X25519MLKEM768Planlanan: Merkle Tree Certificates
    Cloudflare iç ağı🚧 devam ediyor—
    Cloudflare → origin✅ X25519MLKEM768✅ ML-DSA (AOP + Custom Origin Trust Store)
    Cloudflare Tunnel✅ X25519MLKEM768—

    Şart: “Cloudflare post-quantum key agreements are only supported in protocols based on TLS 1.3 (including HTTP/3).” Hedef 2029’da tüm ürün yelpazesi.

    İstemci desteği: Chrome/Edge 131+, Firefox 132+, Safari 26+, OpenSSL 3.5.0+, nginx (OpenSSL 3.5+ ile derlenmişse varsayılan).

    Ne zaman kullanılır, ne zaman kullanılmaz

    Bu ürün için soru “kullanır mıyım” değil — proxy’lediğin her zone’da açık. Doğru soru hangi modu seçeceğin.

    Full (strict) seç

    • Origin’inde geçerli bir sertifika kurabiliyorsan — Origin CA ücretsiz ve 15 yıla kadar
    • Kişisel veri, oturum, ödeme taşıyan her uygulama
    • PCI, KVKK veya kurumsal denetim gerekçesi olan her yerde

    Full ile idare et

    • Geçiş dönemindesin ve origin’de sertifika kurmak için henüz zaman yok — ama bunun geçici olduğunu bil ve takvime bağla

    Flexible’ı seçme

    • Sadece origin’de HTTPS kuramadığın, veri hassasiyeti olmayan statik bir sitede geçici olarak. Cloudflare’in kendi ifadesiyle hassas veri varsa “use Full or Full (Strict) modes instead”.

    Off’u hiç seçme

    • HTTPS isteklerini aktif olarak HTTP’ye düşürüyor, Always Use HTTPS seçeneğini panelden gizliyor ve AOP’yi çalışmaz hâle getiriyor.

    Bu ürünün çözmediği şeyler

    • Mixed content. Always Use HTTPS çözmüyor; Automatic HTTPS Rewrites pasif içeriği çoğu zaman yeniden yazmıyor. Kalıcı çözüm kaynak kodda.
    • Certificate pinning. Edge sertifikaları rotasyona giriyor; pin’lemek siteyi çökertir.
    • Türk CA’sıyla çalışmak. Cloudflare yalnızca dört CA kullanıyor; Türk CA’sından alınmış bir sertifikayı ancak Business+ planda custom certificate olarak yükleyebilirsin.
    • Anahtarların Türkiye’de kalması. Regional Services Türkiye’yi destekliyor ama Geo Key Manager desteklemiyor.

    Somut örnekler

    1. Origin CA sertifikası üretmek ve kurmak

    Panel: SSL/TLS → Origin Server → Create Certificate. Ya da API ile. Kurulumdan sonra doğrula:

    sudo openssl x509 -in /etc/ssl/demo/origin-ca.crt -noout -subject -issuer -dates

    issuer alanında CloudFlare Origin SSL Certificate Authority görmelisin.

    2. Minimum TLS’i test etmek

    curl https://ornek.com -svo /dev/null --tls-max 1.1

    Engellenmişse handshake tamamlanmaz: error:1400442E:SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert

    Yerel VPN veya güvenlik istemcisi eski protokolleri zaten engelliyor olabilir — testten önce kapat.

    3. Origin’i Cloudflare’in cipher listesiyle eşlemek

    Cloudflare’in yayımladığı nginx bloğu:

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ecdh_curve X25519:P-256:P-384;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256:ECDHE+3DES:RSA+3DES;
    ssl_prefer_server_ciphers on;

    Cloudflare origin’e sabit bir liste sunuyor, seçimi origin yapıyor: “Cloudflare will present the cipher suites to your origin and your server will select whichever cipher suite it prefers.”

    4. Post-quantum bağlantıyı origin’de doğrulamak

    bssl client -connect origin.ornek.com:443 -curves X25519MLKEM768

    Handshake çıktısında ECDHE curve alanı X25519MLKEM768 olmalı.

    5. DCV’yi bloklamamak

    /.well-known/* yolunu bloklayan bir Redirect Rule varsa ifadesine şunu ekle:

    not starts_with(http.request.uri.path, "/.well-known/")

    Always Use HTTPS doğrulamayı etkilemiyor — “Enabling Always Use HTTPS does not impact the validation process.” Sorun çıkaranlar: WAF custom rule, IP Access Rule, Under Attack mode ve */* ile eşleşen Workers route.

    Demo 1: Full’dan Full (strict)‘e, gerçek bir 526 üreterek

    Bu demonun değeri hatayı görmekte. Önce self-signed sertifikayla Full modda sitenin çalıştığını göstereceğiz, sonra Full (strict)‘e geçip 526 üreteceğiz, sonra Origin CA ile düzelteceğiz.

    export DOMAIN="demo.ornek.com"
    export ORIGIN_IP="203.0.113.10"
    export ZONE_ID="<zone_id>"
    export CF_TOKEN="<Zone Settings Write yetkili token>"

    Adım 1 — nginx ve bilinçli olarak geçersiz sertifika

    sudo apt update && sudo apt install -y nginx openssl curl
    sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw --force enable
    
    sudo mkdir -p /etc/ssl/demo
    sudo openssl req -x509 -nodes -newkey rsa:2048 \
      -keyout /etc/ssl/demo/selfsigned.key \
      -out /etc/ssl/demo/selfsigned.crt \
      -days 365 -subj "/CN=${DOMAIN}"
    
    sudo openssl x509 -in /etc/ssl/demo/selfsigned.crt -noout -subject -issuer -dates

    subject ve issuer aynı — self-signed olduğunun kanıtı, ve demonun çıkış noktası.

    Terminal — openssl x509 çıktısında subject=CN = demo.ornek.com ve issuer=CN = demo.ornek.com satırları alt alta, ikisinin aynı olduğu net görünecek şekilde

    Adım 2 — nginx yapılandırması

    sudo tee /etc/nginx/sites-available/demo.conf >/dev/null <<'EOF'
    server {
        listen 80;
        listen [::]:80;
        server_name demo.ornek.com;
        root /var/www/demo;
        index index.html;
    }
    
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;
        server_name demo.ornek.com;
    
        ssl_certificate     /etc/ssl/demo/selfsigned.crt;
        ssl_certificate_key /etc/ssl/demo/selfsigned.key;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
    
        root /var/www/demo;
        index index.html;
    
        add_header X-Origin-Cert "selfsigned" always;
    }
    EOF
    
    sudo mkdir -p /var/www/demo
    echo "<h1>Origin OK</h1>" | sudo tee /var/www/demo/index.html
    sudo ln -sf /etc/nginx/sites-available/demo.conf /etc/nginx/sites-enabled/demo.conf
    sudo rm -f /etc/nginx/sites-enabled/default
    sudo nginx -t && sudo systemctl reload nginx

    server_name satırlarına kendi alan adını yaz — heredoc tırnaklı olduğu için $DOMAIN genişlemez, bu bilinçli.

    Adım 3 — Origin’i Cloudflare’i atlayarak test et

    openssl s_client -connect ${ORIGIN_IP}:443 -servername ${DOMAIN} </dev/null 2>/dev/null \
      | openssl x509 -noout -subject -issuer
    
    curl -vI --resolve ${DOMAIN}:443:${ORIGIN_IP} https://${DOMAIN}/ 2>&1 | head -20

    curl başarısız oluyor ve bu doğru davranış: curl: (60) SSL certificate problem: self-signed certificate

    İki komutun çıktısı — openssl s_client sonucunda subject ve issuer aynı, altında curl: (60) SSL certificate problem: self-signed certificate satırı

    Adım 4 — Modu Full yap

    curl -s "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/settings/ssl" \
      --request PATCH \
      --header "Authorization: Bearer ${CF_TOKEN}" \
      --json '{"value":"full"}' | head -c 400
    Panel ekran görüntüsü — SSL/TLS → Overview sayfası, Full seçeneği işaretli, kartın tamamı ve seçenek açıklamaları görünür durumda

    Adım 5 — Full modda sitenin ÇALIŞTIĞINI gör

    curl -sI https://${DOMAIN}/ | head -5

    HTTP/2 200, server: cloudflare. Origin sertifikası geçersiz olmasına rağmen site çalışıyor — Full modun tehlikesi tam olarak bu.

    Tarayıcıda demo.ornek.com adres çubuğunda kilit simgesiyle açık, yanında terminalde HTTP/2 200 yanıtı — ikisi tek karede olsun, çelişki net görünsün

    Adım 6 — Full (strict)‘e geç ve 526’yı üret

    curl -s "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/settings/ssl" \
      --request PATCH \
      --header "Authorization: Bearer ${CF_TOKEN}" \
      --json '{"value":"strict"}' | head -c 300
    
    sleep 20
    curl -sI https://${DOMAIN}/ | head -3
    curl -s  https://${DOMAIN}/ | grep -iEo "error 5[0-9]{2}|invalid ssl certificate" | head -3
    Tarayıcıda tam Error 526 — Invalid SSL certificate sayfası; What happened / What can I do bölümleri ve sağ altta Ray ID görünsün. Yanında terminalde HTTP/2 526 satırı

    Adım 7 — Origin CA sertifikasını kur

    Panel: SSL/TLS → Origin Server → Create Certificate · Hostname’ler: demo.ornek.com ve *.demo.ornek.com · Format: PEM.

    sudo tee /etc/ssl/demo/origin-ca.crt >/dev/null   # sertifikayı yapıştır, sonra Ctrl-D
    sudo tee /etc/ssl/demo/origin-ca.key >/dev/null   # private key'i yapıştır, sonra Ctrl-D
    sudo chmod 600 /etc/ssl/demo/origin-ca.key
    
    sudo openssl x509 -in /etc/ssl/demo/origin-ca.crt -noout -subject -issuer -dates

    issuer artık CloudFlare Origin SSL Certificate Authority — Adım 1’in tam tersi.

    Terminal — openssl x509 çıktısı; issuer satırında CloudFlare Origin SSL Certificate Authority okunacak şekilde. Mümkünse Adım 1'in çıktısıyla aynı karede
    sudo sed -i 's#/etc/ssl/demo/selfsigned.crt#/etc/ssl/demo/origin-ca.crt#; s#/etc/ssl/demo/selfsigned.key#/etc/ssl/demo/origin-ca.key#' /etc/nginx/sites-available/demo.conf
    sudo sed -i 's/X-Origin-Cert "selfsigned"/X-Origin-Cert "origin-ca"/' /etc/nginx/sites-available/demo.conf
    sudo nginx -t && sudo systemctl reload nginx

    Adım 8 — Düzeldiğini doğrula

    curl -sI https://${DOMAIN}/ | head -5
    curl -sI https://${DOMAIN}/ | grep -i x-origin-cert

    HTTP/2 200 ve x-origin-cert: origin-ca — istek gerçekten yeni sertifikalı origin’e gitti.

    Terminal — HTTP/2 200 ve x-origin-cert: origin-ca başlıkları; yanında panelde Full (strict) seçili SSL/TLS Overview ekranı

    Adım 9 — Beklenen yan etkiyi de göster

    curl -vI --resolve ${DOMAIN}:443:${ORIGIN_IP} https://${DOMAIN}/ 2>&1 \
      | grep -iE "issuer|verify|SSL certificate problem" | head -5

    Doğrudan origin’e vurulduğunda yine hata — çünkü Origin CA public olarak güvenilir değil: curl: (60) SSL certificate problem: unable to get local issuer certificate

    Bu normal: “These certificates only encrypt traffic between Cloudflare and your origin server, not traffic from client browsers to your origin” ve “SSL Labs or similar SSL validators are expected to flag the certificate as invalid.”

    İki bölmeli görüntü — solda doğrudan origin'e yapılan curl'ün 'unable to get local issuer certificate' hatası, sağda tarayıcıda Cloudflare üzerinden sorunsuz açılan site

    Demo 2: Authenticated Origin Pulls — origin yalnızca Cloudflare’e cevap versin

    Ön koşul: Demo 1 tamamlanmış olmalı; şifreleme modu Full veya üzeri olmalı.

    Adım 1 — Cloudflare’in AOP CA sertifikasını indir

    sudo mkdir -p /etc/nginx/certs
    sudo curl -fsSL https://developers.cloudflare.com/ssl/static/authenticated_origin_pull_ca.pem \
         -o /etc/nginx/certs/cloudflare.crt
    sudo openssl x509 -in /etc/nginx/certs/cloudflare.crt -noout -subject -issuer -enddate

    Beklenen: CN=origin-pull.cloudflare.net, notAfter=Nov 1 17:00:00 2029 GMT.

    Terminal — openssl çıktısında CN=origin-pull.cloudflare.net ve notAfter 2029 satırları okunacak şekilde

    Adım 2 — nginx’te önce optional ile başla

    Dokümanın önerdiği sıra bu: önce gözlemle, sonra zorunlu kıl.

    sudo sed -i '/ssl_certificate_key/a \    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;\n    ssl_verify_client optional;' /etc/nginx/sites-available/demo.conf
    sudo sed -i 's#add_header X-Origin-Cert "origin-ca" always;#add_header X-Origin-Cert "origin-ca" always;\n    add_header X-Client-Verify $ssl_client_verify always;#' /etc/nginx/sites-available/demo.conf
    sudo nginx -t && sudo systemctl reload nginx
    grep -nE "ssl_client_certificate|ssl_verify_client|X-Client-Verify" /etc/nginx/sites-available/demo.conf

    Adım 3 — Cloudflare tarafında AOP’yi aç

    curl -s "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/settings/tls_client_auth" \
      --request PATCH \
      --header "Authorization: Bearer ${CF_TOKEN}" \
      --json '{"value":"on"}' | head -c 300
    Panel ekran görüntüsü — SSL/TLS → Origin Server → Authenticated Origin Pulls sekmesi, Global bölümündeki toggle açık durumda

    Adım 4 — Cloudflare’in gerçekten sertifika sunduğunu kanıtla

    sleep 20
    curl -sI https://${DOMAIN}/ | grep -i -E "x-client-verify|^HTTP"
    
    # Karşılaştırma: Cloudflare'i atlayarak doğrudan origin'e
    curl -skI --resolve ${DOMAIN}:443:${ORIGIN_IP} https://${DOMAIN}/ | grep -i -E "x-client-verify|^HTTP"

    Cloudflare üzerinden: x-client-verify: SUCCESS. Doğrudan: x-client-verify: NONE — ama optional olduğu için istek hâlâ 200 dönüyor.

    Terminal — iki curl çıktısı alt alta; birinde x-client-verify: SUCCESS, diğerinde x-client-verify: NONE, ikisinde de HTTP 200

    Adım 5 — Zorunlu kıl ve 400’ü üret

    sudo sed -i 's/ssl_verify_client optional;/ssl_verify_client on;/' /etc/nginx/sites-available/demo.conf
    sudo nginx -t && sudo systemctl reload nginx
    
    # Cloudflare disindan, dogrudan origin'e
    curl -k --resolve ${DOMAIN}:443:${ORIGIN_IP} https://${DOMAIN}/ -i 2>&1 | head -12
    
    # Cloudflare uzerinden — calismaya devam etmeli
    curl -sI https://${DOMAIN}/ | grep -i -E "x-client-verify|^HTTP"

    Doğrudan istek HTTP 400 ile reddediliyor. nginx’in gövdesinde No required SSL certificate was sent yazıyor.

    Tek terminalde üst üste iki sonuç — doğrudan istekte HTTP 400 Bad Request ve 'No required SSL certificate was sent' satırı, altında Cloudflare üzerinden HTTP/2 200 ve x-client-verify: SUCCESS

    Adım 6 — Negatif kontrol: AOP’yi kapat

    curl -s "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/settings/tls_client_auth" \
      --request PATCH --header "Authorization: Bearer ${CF_TOKEN}" \
      --json '{"value":"off"}' > /dev/null
    sleep 20
    curl -sI https://${DOMAIN}/ | head -3

    Cloudflare artık sertifika sunmuyor, nginx ise zorunlu kılıyor — site Cloudflare üzerinden de kırılıyor. İki tarafın birlikte yapılandırılması gerektiğinin kanıtı bu. Sonra geri aç.

    Terminal — AOP kapalıyken alınan hata kodu ve altında tekrar açıldıktan sonra HTTP/2 200 dönmesi

    Ölçüm tablosu

    ÖlçütDeğer
    Self-signed sertifikayla Full modda HTTP kodu
    Full (strict)‘e geçince HTTP kodu
    Origin CA kurulduktan sonra HTTP kodu
    Doğrudan origin’e curl sonucu (Origin CA ile)
    AOP optional iken Cloudflare üzerinden / doğrudan
    AOP on iken doğrudan istek
    AOP Cloudflare tarafında kapatılınca

    Fiyatlandırma

    Rakamlar 1 Eylül 2026’da cloudflare.com/plans üzerinden doğrulanmıştır.

    KalemFiyat
    Universal SSLÜcretsiz — Free, Pro, Business, Enterprise
    Origin CA, AOP, HSTS, Always Use HTTPS, TLS 1.3, CT Monitoring, ECH, mTLS (Cloudflare CA)Ücretsiz, tüm planlar
    Advanced Certificate Manager10 USD/ay — “Flexible certificate issuance and management for your domains. $10/mo”
    Custom certificatesBusiness ve Enterprise: 1 Modern + 1 Legacy dahil; Enterprise ek satın alabiliyor
    SSL for SaaS — dahil100 hostname (Free, Pro, Business)
    SSL for SaaS — ek hostname0,10 USD / hostname; Enterprise: özel fiyat
    SSL for SaaS — üst sınır50.000 hostname
    Keyless SSLEnterprise ücretli eklenti — fiyat yayımlanmıyor

    Plan fiyatları: Free 0 USD, Pro 20 USD/ay (yıllık) veya 25 USD/ay, Business 200 USD/ay (yıllık) veya 250 USD/ay, Enterprise özel.

    Fiyatı yayımlanmayanlar — bu sayfada rakam verilmedi: ek custom certificate birim fiyatı, Keyless SSL eklenti fiyatı, Geo Key Manager fiyatı, Enterprise plan fiyatı.

    Lisanslama ve hukuki çerçeve

    SSL/TLS tescilli bir hizmettir ve Cloudflare Hizmet Şartlarına tabidir.

    Türkiye — Regional Services destekleniyor. Data Localization dokümanından birebir:

    “Turkey — Cloudflare will only use data centers that are physically located within Turkey to decrypt and service HTTPS traffic.”

    BölgeGeo Key ManagerRegional ServicesCustomer Metadata Boundary
    Turkey✘✅✘

    Bunun pratik anlamı:

    1. Regional Services ✅ — TLS sonlandırma, yani özel anahtarın kullanımı ve HTTPS trafiğinin çözülmesi, fiziksel olarak Türkiye’deki veri merkezleriyle sınırlandırılabiliyor. Bu, veri yerelleştirme tartışmalarında doğrudan kullanılabilecek resmî bir taahhüt.
    2. Geo Key Manager ✘ — “özel anahtarlarım yalnızca Türkiye’de saklansın” yapılamıyor. Geo Key Manager v2 bölgeleri arasında Türkiye’ye özel bir bölge yok.
    3. Customer Metadata Boundary ✘ — metadata sınırı Türkiye için mevcut değil.

    Türk sertifika otoriteleri. Cloudflare yalnızca dört CA kullanıyor ve SSL dokümantasyonunun tamamında TÜRKTRUST, E-Tuğra, Kamu SM veya TÜBİTAK hiç geçmiyor. Türk CA’sından alınmış bir sertifikayı kullanmanın tek yolu Business veya Enterprise planda custom certificate olarak yüklemek — ve o sertifikanın büyük bir tarayıcı tarafından public olarak güvenilir olması gerekiyor.

    .tr alan adları. Cloudflare Registrar’ın .tr desteği doğrulanamadı; TLD listesi sayfada istemci tarafında yükleniyor. Güncel listeyi cloudflare.com/tld-policies adresinden kontrol et. Registrar desteği ile zone olarak eklemek farklı şeylerdir: .tr bir alan adı, nameserver’ları Cloudflare’e yönlendirilerek zone olarak eklenebilir ve Universal SSL alabilir.

    Sık yapılan hatalar

    Flexible modda origin’de HTTPS yönlendirmesi bırakmak

    Cloudflare origin’e HTTP gönderiyor, origin HTTPS’e yönlendiriyor, Cloudflare yine HTTP gönderiyor. Sonuç: ERR_TOO_MANY_REDIRECTS. Çözüm: origin’deki yönlendirmeyi kaldır veya modu Full’e yükselt. Ters yön de aynı: Full modda origin HTTPS’i HTTP’ye yönlendiriyorsa yine döngü oluşuyor.

    Cloudflare’in genel tavsiyesi: “Cloudflare recommends not performing redirects at your origin web server, as this can cause redirect loop errors.”

    HSTS’i mod Off iken açmak

    Döngü üretiyor. HSTS varsa mod en az Flexible olmalı.

    HSTS’i kapatmak için toggle’ı kapatmak

    Yetmiyor. Max Age Header’ı 0 (Disable) yapman, sonra tarayıcılarda kayıtlı sürenin dolmasını beklemen gerekiyor. Ve açtıktan sonra yapmaman gerekenler: DNS kayıtlarını gri buluta almak, Cloudflare’i pause etmek, nameserver’ları çıkarmak, HTTPS’i HTTP’ye yönlendirmek.

    Ara sertifikaları sunmamak

    526’nın en az fark edilen sebebi: “the origin server must serve the leaf certificate along with any required intermediate CA certificates.” Sertifika geçerli olsa bile zincir eksikse Full (strict) reddediyor.

    Workers alt isteklerinin farklı davrandığını bilmemek

    “Workers subrequests to any hostname outside your Cloudflare zone that is not proxied by Cloudflare are always made using the Full (strict) SSL mode, regardless of the Workers zone configuration.”

    Zone’un Full olsa bile Worker’ın dışarıya yaptığı istek strict davranıyor.

    Kaydı gri buluta almak

    “Cloudflare can only serve an SSL/TLS certificate for a DNS record when you set the record’s proxy status to Proxied.” Gri bulutta sertifika sunulmuyor ve ERR_SSL_VERSION_OR_CIPHER_MISMATCH alınıyor. Origin CA kullanan bir kaydı gri buluta almak ise NET::ERR_CERT_AUTHORITY_INVALID üretiyor.

    AAAA kaydını unutmak

    “The HTTP verification process is done preferably over IPv6, so if any AAAA record exists and does not point to the same dual-stack location as the A record, the validation will fail.”

    Total TLS sertifikasını silmek

    Kalıcı opt-out yapıyor: “our system assumes you want to opt that hostname out… This behavior applies even if you delete and re-create the hostname’s DNS record.”

    Custom certificate pack’te tek bir sertifikanın süresinin dolması

    “The expiration date of a certificate pack is equivalent to the soonest Not After date among the certificates in the pack… if one of them expires the whole pack will be removed.”

    Universal SSL kapatınca HTTPS DNS kaydının da durduğunu bilmemek

    “Disabling Universal SSL will prevent automatic HTTPS record generation for proxied hostnames, even if you have Advanced Certificates or custom certificates configured.”

    Sıkça sorulan sorular

    Flexible neden yeterli değil?
    Çünkü Cloudflare ile sunucun arasındaki bacak tamamen şifresiz. Ziyaretçi yeşil kilit görüyor ama veri düz HTTP ile gidiyor. Cloudflare'in kendi cümlesi: “If your application contains sensitive information (personalized data, user login), use Full or Full (Strict) modes instead.” İki kısıt daha: “Flexible mode is only supported for HTTPS connections on port 443… Other ports using HTTPS will fall back to Full mode” ve Authenticated Origin Pulls Flexible'da çalışmıyor. En sık yan etkisi: origin HTTP'yi HTTPS'e yönlendiriyorsa sonsuz döngü — ERR_TOO_MANY_REDIRECTS.
    Full modda sitem çalışıyor, sorun yok demek mi?
    Hayır. Full modda Cloudflare origin sertifikanı hiç kontrol etmiyor. Birebir: “The certificate presented by the origin will not be validated in any way. It can be expired, self-signed, or not even have a matching CN/SAN entry for the hostname requested.” Ve riski: “Without using Full (strict), a malicious party could technically hijack the connection and present their own certificate.” Cloudflare'in tavsiyesi net: “For the best security, choose Full (strict) mode whenever possible.”
    526 hatası nereden geliyor?
    İki şart aynı anda doğruysa: Cloudflare origin sertifikanı doğrulayamıyor ve mod Full (strict). Sebepleri: süresi dolmuş, iptal edilmiş, self-signed, CN/SAN hostname ile eşleşmiyor, ara sertifikalar eksik (“the origin server must serve the leaf certificate along with any required intermediate CA certificates”), veya 443 kapalı. Kalıcı çözüm: Origin CA sertifikası kurmak ya da kendi CA'nı Custom Origin Trust Store'a yüklemek (ACM gerekir). Geçici çözüm Full'e düşmektir ama sorunu gizler, çözmez.
    525 ile 526 arasındaki fark ne?
    525 = SSL handshake başarısız — bağlantı hiç kurulamadı: 443 kapalı, SNI desteği yok, cipher uyuşmazlığı, ya da origin'de hiç sertifika yok. 526 = handshake oldu ama sertifika doğrulanamadı. 525 hem Full hem Full (strict)'te görülür; 526 yalnızca Full (strict)'te. 525 teşhisi için Origin Analytics'te originResponseStatus = 0 aramak TLS müzakere hatasına işaret eder.
    Yeni zone'lar Full (strict) ile mi başlıyor?
    Hayır — ve bu yaygın bir yanlış bilgi. Cloudflare hiçbir sayfada bunu söylemiyor. Söylediği şey yeni zone'ların Automatic SSL/TLS ile başladığı ve bu özelliğin zone'u origin'in desteklediği en güvenli moda yükselttiği — bu Full de olabilir Full (strict) de. 2025-09-24 tarihli bloktan: “We also have enabled this for all new domains that will onboard onto Cloudflare regardless of plan type.” Ve önemli bir güvence: “Automatic SSL/TLS will not change your setting to a less secure encryption mode.”
    Automatic SSL/TLS trafiğimi bozar mı?
    Kademeli çalışıyor. Cloudflare origin'i hem HTTP hem HTTPS üzerinden tarayıp içerik benzerliğine bakıyor (ajan adı Cloudflare-SSLDetector, robots.txt'yi yok sayıyor). Yükseltme %1 trafikle başlıyor ve sorun yoksa %10'luk artışlarla ilerliyor. Bağlantı bozulursa: “Cloudflare aborts the upgrade, immediately rolls traffic back to the previous mode, and logs the failure.” Tarama yaklaşık ayda bir. Kapatmak için: PATCH /zones/$ZONE_ID/settings/ssl_automatic_mode → {"value":"custom"}. Bildirimler haftalık özet e-postası olarak yalnızca Super Admin'lere gidiyor. 2025'te yapılan toplu yükseltmenin dağılımı: Flexible→Full ~2.200.000, Flexible→Full (strict) ~2.000.000, Full→Full (strict) ~1.800.000 alan adı.
    Universal SSL neden alt-alt alan adımı kapsamıyor?
    Full DNS kurulumunda Universal SSL yalnızca apex + birinci seviye subdomain'i kapsıyor. dev.www.example.com kapsanmıyor. Dört çözüm: ACM alıp advanced certificate, ACM alıp Total TLS, custom certificate (Business ve üzeri), ya da o kaydı gri buluta alıp origin'in kendi sertifikasını sunmasına izin vermek. Not: partial (CNAME) kurulumunda bu sorun yok — orada her proxied hostname derinliğine bakılmaksızın kendi sertifikasını alıyor. Cloudflare bunu açıkça yazıyor: “If your only reason for considering an advanced certificate is to cover subdomains beyond the first level, Universal SSL may already be sufficient.”
    Wildcard sertifika alt-alt alan adını kapsar mı?
    Hayır, wildcard tek seviye kapsar. *.example.com → www.example.com ✓, api.staging.example.com ✗. Çözüm: her seviye için ayrı wildcard (*.example.com + *.staging.example.com) veya Total TLS. Aynı kural Origin CA sertifikaları için de geçerli: “Wildcards may only cover one level, but can be used multiple times on the same certificate.”
    Sertifikam neden yenilenmedi?
    Önce kurulum tipine bak. Full DNS kurulumunda Cloudflare DCV'yi otomatik yapıyor (TXT kaydıyla) ve yenileme sorunu nadir. Partial kurulumda token'ı sen yerleştirmek zorunda kalabilirsin. En sık nedenler: /.well-known/* yolunu bloklayan WAF kuralı, IP Access Rule, Under Attack mode veya */* ile eşleşen Workers route; /.well-known/* üzerinde HTTP→HTTPS yönlendirmesi; CAA kayıtlarının Cloudflare CA'larına izin vermemesi; DNSSEC bogus; ve şu sinsi olan: “The HTTP verification process is done preferably over IPv6, so if any AAAA record exists and does not point to the same dual-stack location as the A record, the validation will fail.” Yenileme denemeleri süre dolmadan 24 saat öncesine kadar sürüyor.
    Doğrulama başarısız olursa Cloudflare ne sıklıkla tekrar deniyor?
    Üstel geri çekilmeyle, en fazla dört saatte bir. Formül birebir: now() + min((floor(60 * pow(1.05, retry_attempt)) * INTERVAL '1 second'), INTERVAL '4 hours'). Örnek noktalar: deneme 0 → 60 sn, deneme 20 → ~16 dk, deneme 30 → ~66 dk, deneme 40 ve sonrası → 4 saat sabit. Cloudflare'in notu: “most of the checks take place on the first day” ve “In automatic processes, most validations complete within the first five minutes, unless there is a setup misconfiguration.” DCV token'ları da süreli: Google Trust Services 14 gün, Let's Encrypt 7 gün, SSL.com 14 gün.
    Kendi sertifikamı yükleyebilir miyim, hangi planda?
    Business ve Enterprise. Free ve Pro'da yok. Business'a 1 Modern + 1 Legacy dahil; Enterprise ek satın alabiliyor (birim fiyat yayımlanmıyor). Yenileme tamamen sana ait — Cloudflare yenilemiyor, ama 30 ve 14 gün önce e-posta uyarısı gönderiyor. OV/EV sertifikası kullanmanın tek yolu bu (Universal ve advanced sertifikalar yalnızca DV). Ayrıca certificate pinning'in çalışabildiği tek sertifika tipi. Bir tuzak: “The expiration date of a certificate pack is equivalent to the soonest Not After date among the certificates in the pack… if one of them expires the whole pack will be removed.”
    Cloudflare hangi CA'ları kullanıyor, seçebilir miyim?
    Dört CA: Let's Encrypt, Google Trust Services, SSL.com ve yalnızca yedek sertifikalar için Sectigo. Universal SSL'de seçemiyorsun — ve Cloudflare uyarıyor: “Cloudflare can change the certificate authority without prior notification, and will not send any notification as the change happens.” Seçmek için ACM (advanced certificate) alman ya da custom certificate yüklemen gerekiyor. Geçerlilik süreleri: Let's Encrypt 90 gün; Google Trust Services ve SSL.com 14/30/90 gün (SSL.com'da Enterprise + advanced certificate ile 1 yıl da mümkün). SSL.com'un özel bir tuzağı var: “SSL.com DCV tokens are specific for RSA certificates and ECDSA certificates… you will have to place two validation tokens per certificate order.”
    Eski Android cihazlar siteme bağlanamıyor.
    Muhtemelen Let's Encrypt zincir değişikliği. Birebir: “Starting September 9, 2024, visitors that try to connect to your website using older devices — for example, Android 7.0 and earlier — have access problems.” En hızlı çözüm CA'yı Google Trust Services'e çevirmek — Cloudflare onu “Browser compatibility (most compatible)” başlığı altında listeliyor, 20 yıldan eski bir GlobalSign köküyle cross-sign edildiği için. Bunun için ACM gerekiyor. İkinci olası sebep: ücretsiz planda yalnızca ECDSA sertifikası sunuluyor; ücretli planlarda RSA da var.
    Sertifikam ne kadar sürede aktif olur?
    “within 15 minutes to 24 hours of domain activation.” 24 saati aşarsa üç şey dene: DNS kaydını gri buluta alıp geri Proxied'e almak, Universal SSL'i kapatıp açmak, ya da validation endpoint'ine PATCH atmak. Acil durumda Cloudflare'i geçici olarak pause et ki origin kendi sertifikasıyla HTTPS sunabilsin.
    HSTS preload'a girersem geri dönebilir miyim?
    Dönüş çok zor ve hızlı değil. Preload listeleri tarayıcıların içine gömülüyor; çıkmak için her tarayıcının listesinden ayrı ayrı çıkarılmayı beklemen gerekiyor. Cloudflare'in uyarısı: “Preload can make a website without HTTPS completely inaccessible.” Listeye girmek için en az 12 ay max-age gerekiyor. Ve HSTS'i kapatmak için toggle'ı kapatmak yetmiyor — Max Age Header'ı 0 (Disable) yapman, sonra tarayıcılarda kayıtlı sürenin dolmasını beklemen gerekiyor.
    Origin CA sertifikamı tarayıcıda test ettim, güvenilmez diyor.
    Beklenen davranış. Origin CA sertifikaları public olarak güvenilir değil; yalnızca Cloudflare ile origin arasını şifreliyorlar. SSL Labs gibi araçların geçersiz işaretlemesi normal. Cloudflare'i pause edersen veya kaydı gri buluta alırsan ziyaretçiler NET::ERR_CERT_AUTHORITY_INVALID görür. Ziyaretçilerin doğrudan origin'e bağlanması gerekiyorsa origin'e public olarak güvenilir bir sertifika kur — Full (strict) yine çalışır.
    Origin CA sertifikamın süresi dolarsa uyarı gelir mi?
    Hayır. Birebir: “Cloudflare does not currently send expiration notifications for origin CA certificates. If you rely on long-lived origin CA certificates, track their expiration in your own certificate inventory or monitoring system.” Geçerlilik seçenekleri 7, 30, 90, 365, 730, 1095 ve 5475 gün (15 yıl). 15 yıllık seçtiysen bunu kendi envanterinde takip etmen şart — süresi dolduğunda Full (strict)'te siten 526 verir.
    Advanced Certificate Manager almadan neleri yapamam?
    Advanced certificate siparişi (50 hostname, çok seviyeli subdomain, CA seçimi, geçerlilik süresi seçimi), Total TLS, Delegated DCV, Custom Origin Trust Store, cipher suite özelleştirmesi, hostname bazlı minimum TLS, ve CSR üretimi. Fiyatı 10 USD/ay ve dikkat: plan kapısı yok — Free dahil her planda satın alınabilen bir eklenti. ACM için plan yükseltmene gerek yok.
    Minimum TLS sürümünü tek bir hostname için ayarlayabilir miyim?
    Zone geneli için evet, tüm planlarda. Tek hostname için ACM gerekiyor ve yalnızca API ile yapılıyor (panelde yok): PUT /zones/$ZONE_ID/hostnames/settings/min_tls_version/$HOSTNAME. Ve önemli bir varsayılan: “TLS 1.0 is the version that Cloudflare sets by default for all customers using certificate-based encryption.” PCI için 1.2'ye çekmen gerekiyor; Cloudflare'in genel tavsiyesi 1.3. Test: curl https://ornek.com -svo /dev/null --tls-max 1.1 — engellenmişse handshake tamamlanmaz.
    SSL Labs varsayılan yapılandırmamı zayıf buluyor.
    Beklenen. Cloudflare'in varsayılan cipher seviyesi Legacy — TLS 1.0–1.3 arası 23 cipher, içinde DES-CBC3-SHA, AES128-SHA, AES256-SHA gibi eskiler var. Doküman bunu kabul ediyor: “security testing tools like Qualys SSL Labs may flag Cloudflare's default configuration.” Modern (9 cipher, hepsi forward-secret + AEAD) veya Compatible (13 cipher) seviyesine geçebilirsin — ama ACM gerekiyor: “Customizing cipher suites is only available with Advanced Certificate Manager or within Cloudflare for SaaS.” Sıkı seviyeye geçerken minimum TLS sürümünü de yükseltmelisin. Ve bir kısıt: “You cannot set specific TLS 1.3 ciphers.”
    Mixed content uyarısını Always Use HTTPS çözer mi?
    Hayır. Tarayıcı, kaynağı istemeden önce protokolü kontrol ediyor. Birebir: “Forcing HTTPS does not resolve issues with mixed content, as browsers check the protocol of included resources before making a request.” Automatic HTTPS Rewrites kısmen çözüyor ama sinsi bir kısıtı var: zone'un EFF HTTPS Everywhere veya Chrome HSTS preload listesinde değilse “only active content will be rewritten. Passive content (such as images) will not be rewritten and will still cause mixed content errors.” Kalıcı çözüm kaynak kodda göreli veya https:// bağlantı kullanmak.
    Authenticated Origin Pulls açtım ama Cloudflare Tunnel kullanıyorum.
    Uyumsuzlar. Birebir: “Tunnel uses outbound-only connections from your origin, so there is no inbound listener for Cloudflare to present a client certificate to.” Tunnel'da trafik zaten connector kimlik bilgileriyle doğrulanıyor; AOP ayarlarının o hostname'e etkisi yok. Ayrıca AOP şifreleme modu Off veya Flexible iken de çalışmıyor — Full veya üzeri gerekiyor.
    Global AOP yeterli mi?
    Çoğu senaryo için hayır. Birebir uyarı: “The Cloudflare-provided certificate used by global AOP is not exclusive to your account. It only guarantees that a request is coming from the Cloudflare network.” Yani başka bir Cloudflare müşterisi de teorik olarak origin'ine ulaşabilir. Hesabına özel güvence ve FIPS uyumu için zone-level veya per-hostname AOP ile kendi sertifikanı yüklemen gerekiyor. Öncelik sırası: per-hostname > zone-level > global. Ve bir tuzak: yüklenen sertifika leaf olmalı — root CA yüklersen missing leaf certificate hatası alırsın.
    mTLS ile Authenticated Origin Pulls aynı şey mi?
    Hayır, yönleri ters. AOP = Cloudflare'in origin'e kendini kanıtlaması. Client certificates / mTLS = ziyaretçinin veya cihazın Cloudflare'e kendini kanıtlaması. mTLS doğrulaması hesap seviyesinde yapılıyor, yani aynı sertifikalar hesabındaki birden çok alan adında çalışıyor. Ve kritik bir nokta: mTLS'i açmak tek başına hiçbir şeyi engellemiyor — doğrulamayı zorunlu kılmak için bir WAF custom rule yazman gerekiyor (panelde “Create mTLS Rule” şablonu var). API Shield ile ilişkisi: “While API Shield is not required to use mTLS, many teams may use mTLS to protect their APIs.”
    Certificate pinning yapabilir miyim?
    Universal, advanced ve custom hostname sertifikalarında hayır — Cloudflare edge sertifikalarını düzenli rotasyona sokuyor, pin'lersen her rotasyonda siten çöker. Önerilen alternatif Certificate Transparency Monitoring: aynı problemi downtime riski olmadan çözüyor, 13 Ağustos 2026'da tüm planlarda GA oldu ve opt-in. Bir sınırı var ama: “for cloudflare.com, an alert would not trigger if a certificate was issued for cloudf1are.com or cloud-flare.com” — yani phishing tespit etmiyor. Zorunluysa pinning'in tek yolu custom certificate + User Defined bundling.
    Post-quantum şifreleme açık mı?
    Ziyaretçi bacağında evet, Ekim 2022'den beri. Kullanılan hibrit anahtar anlaşması X25519MLKEM768 (TLS identifier 0x11ec); X25519Kyber768Draft00 artık Obsolete. Şart: “Cloudflare post-quantum key agreements are only supported in protocols based on TLS 1.3 (including HTTP/3).” Origin bacağında da anahtar anlaşması ✅ ve imzalar için ML-DSA ✅ (AOP + Custom Origin Trust Store). Hedef: 2029'da tüm ürün yelpazesinde. Origin'ini test etmek için: bssl client -connect origin:443 -curves X25519MLKEM768 → çıktıda ECDHE curve alanı X25519MLKEM768 olmalı. Origin PQC desteklemiyorsa Cloudflare Tunnel arkasına alarak da PQ bağlantı elde edebilirsin. Trafiğin yüzde kaçının PQ olduğu için sabit bir rakam yayımlanmıyor; canlı veri Radar'da.
    Türkiye'de veri yerelleştirme yapabilir miyim?
    TLS sonlandırma için evet. Cloudflare Türkiye'yi Regional Services bölgesi olarak destekliyor, birebir: “Turkey | Cloudflare will only use data centers that are physically located within Turkey to decrypt and service HTTPS traffic.” Ama aynı tabloda: Geo Key Manager ✘ ve Customer Metadata Boundary ✘. Yani “özel anahtarlarım yalnızca Türkiye'de saklansın” yapılamıyor; yapılabilen şey trafiğin Türkiye'deki veri merkezlerinde çözülmesi. Bu ayrım hukuki değerlendirmede önemli.
    Türk sertifika otoritesinden aldığım sertifikayı kullanabilir miyim?
    Cloudflare'in kendi verdiği sertifikalarda hayır — yalnızca dört CA kullanıyor: Let's Encrypt, Google Trust Services, SSL.com ve (yedekler için) Sectigo. SSL dokümantasyonunun tamamında TÜRKTRUST, E-Tuğra, Kamu SM veya TÜBİTAK hiç geçmiyor (pozitif kontrollü doğrulandı). Türk CA'sından alınmış bir sertifikayı kullanmanın tek yolu Business/Enterprise planda custom certificate yüklemek — ve o sertifikanın büyük bir tarayıcı tarafından public olarak güvenilir olması gerekiyor. Ayrıca Cloudflare'in KVKK ile TLS ilişkisini kuran resmî bir sayfası yok; “Cloudflare KVKK uyumludur” diye bir Cloudflare beyanı bulunamadı.

    İlgili servisler

    • Advanced Certificate ManagerÖzel sertifika ömrü, CA seçimi ve wildcard/çoklu alan adı sertifikaları.
    • Keyless SSLPrivate key’ini kendi donanımında tutarken Cloudflare’in TLS sonlandırmasını sağlar.
    • Cloudflare TunnelŞirket içi sunucunu, güvenlik duvarında port açmadan Cloudflare’e giden bir tünelle yayınlar.
    • WAFSQL injection, XSS ve bilinen zafiyet istismarlarını request origin’e ulaşmadan engeller.
    • API ShieldAPI uç noktalarını schema validation, mTLS ve anomali tespitiyle korur.
    • CDNStatik içeriği kullanıcıya en yakın şehirde cache’leyip origin yükünü düşürür.

    Bu sayfadaki fiyat ve özellik bilgileri 1 Eylül 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.

    Hata bildir

    Yanlış bir rakam, eskimiş bir bilgi veya bozuk bir bağlantı mı buldun? Bildir, kaynağıyla birlikte kontrol edelim.