Güvenlik & SSL

    SSL Sertifika Zinciri, Ara ve Kök CA Nedir?

    Kök CA, ara sertifika ve sunucu sertifikası arasındaki güven zincirini yeni başlayanlara anlatan rehber.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir HTTPS bağlantısında tarayıcının adres çubuğunda beliren kilit simgesi tek bir sertifikanın değil, birbirine imzalarla bağlı bir sertifika dizisinin sonucudur. Sunucunuza yüklediğiniz sertifika kendi başına "güvenilir" değildir; güvenilir bir üst makam tarafından imzalandığı için güvenilir sayılır ve o üst makam da başka bir makam tarafından imzalanmıştır. Bu imza silsilesine sertifika zinciri (certificate chain) veya güven zinciri (chain of trust) denir. Zincir doğru kurulduğunda ziyaretçi hiçbir uyarı görmeden siteye girer; tek bir halkası eksik kaldığında ise bazı tarayıcılar ve özellikle mobil cihazlar "bu bağlantı güvenli değil" diyerek kapıyı kapatır.

    Bu rehberde zincirin üç ana halkasını (kök CA, ara sertifika ve sunucu sertifikası) bir şema mantığıyla ele alacak, ara sertifikanın neden var olduğunu, tarayıcının zinciri hangi adımlarla doğruladığını ve eksik bir ara sertifikanın hangi hatalara yol açtığını göstereceğiz. Ardından openssl ile zincirinizi nasıl inceleyeceğinizi ve Nginx, Apache ile cPanel üzerinde tam zinciri (fullchain) nasıl doğru kuracağınızı adım adım göreceksiniz. SSL/TLS'in temel mantığına henüz yabancıysanız önce SSL sertifikası nedir yazımızı okumanız, buradaki kavramları çok daha net oturtacaktır.

    Sertifika Zinciri Nedir?#

    Sertifika zinciri, bir web sitesinin kimliğini en tepedeki güvenilir bir köke kadar izlenebilir kılan imzalı sertifikalar dizisidir. Mantığı basit bir referans sistemine benzer: siz birini tanımıyorsunuz ama tanıdığınız güvendiğiniz biri onu tanıyorsa, o kişiye de bir ölçüde güvenirsiniz. Tarayıcı da aynısını yapar. Sitenizin sertifikasını tanımaz, ama onu imzalayan ara sertifikayı, onu da imzalayan kök sertifikayı takip eder. Kök sertifika, tarayıcının veya işletim sisteminin fabrika ayarı olarak zaten güvendiği bir listede yer alıyorsa zincir "kapanır" ve sitenize güvenilir.

    Zincir tipik olarak üç seviyeden oluşur. En altta sizin sunucu sertifikanız (leaf / end-entity certificate) vardır; alan adınızı bu sertifika temsil eder. Onun bir üstünde, sertifikayı fiilen imzalayan ara sertifika (intermediate) bulunur. En tepede ise kök sertifika (root) yer alır; kök, kendi kendini imzalamış (self-signed) ve tarayıcı ile işletim sistemlerinin güven deposuna (trust store) önceden gömülmüş özel bir sertifikadır. Bazı sağlayıcılarda birden fazla ara sertifika olabilir, dolayısıyla zincir dört seviyeye çıkabilir; ama mantık her zaman aynıdır.

    Burada kritik bir noktayı baştan vurgulamak gerekir: kök sertifika hiçbir zaman sunucuya yüklenmez ve zincirin içinde gönderilmez. Kök, karşı tarafta (tarayıcıda) zaten mevcuttur. Sunucunun görevi yalnızca kendi sertifikasını ve onu köke bağlayan ara sertifikaları ziyaretçiye sunmaktır. Bu ayrımı kavramak, ilerideki "eksik zincir" hatalarını anlamanın anahtarıdır.

    Kök CA, Ara Sertifika ve Sunucu Sertifikası#

    Üç halkanın rollerini bir şema gibi düşünmek en kolayıdır. Yukarıdan aşağıya doğru güven şöyle akar:

    [ Kök CA (Root)  ]  ← Tarayıcı/OS güven deposunda gömülü, kendi kendini imzalar
            │ imzalar
            ▼
    [ Ara Sertifika (Intermediate) ]  ← Kök tarafından imzalanmış, günlük işi yürütür
            │ imzalar
            ▼
    [ Sunucu Sertifikası (Leaf) ]  ← Sizin alan adınız; sunucuya bunu + ara'yı yüklersiniz
    

    Doğrulama ise bu okların tersi yönde ilerler: tarayıcı en alttan (sizin sertifikanız) başlar, "beni kim imzaladı?" diye sorarak ara sertifikaya, oradan da köke kadar yukarı tırmanır. Aşağıdaki tablo üç halkanın temel farklarını özetler.

    ÖzellikKök CA (Root)Ara Sertifika (Intermediate)Sunucu Sertifikası (Leaf)
    İmzalayanKendisi (self-signed)Kök CAAra sertifika
    Nerede saklanırTarayıcı/OS güven deposuSunucuda + zincirde sunulurSunucuda
    Geçerlilik süresi10-25 yıl5-10 yıl90 gün - 1 yıl
    Özel anahtarı neredeÇevrimdışı, kasa/HSM içindeCA'nın çevrimiçi sistemiSizin sunucunuz
    Sunucuya yüklenir miHayırEvet (fullchain)Evet

    Bu tabloda dikkat çeken şey, kök CA'nın özel anahtarının çevrimdışı tutulmasıdır. CA'lar kök anahtarını fiziksel olarak internete bağlı olmayan, donanımsal güvenlik modülleri (HSM) içindeki kasalarda saklar. Günlük milyonlarca sertifika imzalama işini kök değil, ara sertifikalar yürütür. Kök yalnızca ara sertifikaları imzalamak için, o da yılda birkaç kez, kontrollü törenlerle devreye girer. Bu ayrım rastgele değildir; bir sonraki bölümün konusu tam olarak budur.

    Ara Sertifika Neden Gerekli?#

    İlk bakışta "neden kök doğrudan benim sertifikamı imzalamıyor da araya bir katman giriyor?" diye sorabilirsiniz. Cevap üç ayaklı ve tamamen güvenlik odaklıdır.

    Birincisi ve en önemlisi kök anahtarının korunması. Kök CA'nın özel anahtarı ele geçirilirse, o kökü güvenilir sayan tüm dünya için felaket olur; saldırgan istediği alan adı için geçerli sertifika üretebilir. Bu yüzden kök anahtarı çevrimdışı bırakılır ve günlük imzalama işine hiç sokulmaz. İmzalama görevini, ele geçmesi hâlinde iptal edilip yenisiyle değiştirilebilecek ara sertifikalar üstlenir. Ara bir sertifika sızarsa, kök onu iptal listesine ekler ve yeni bir ara üretir; kök anahtarına dokunmaya gerek kalmaz.

    İkincisi iptal ve yönetim esnekliği. CA'lar farklı ürün hatları (DV, OV, EV) veya farklı bölgeler için ayrı ara sertifikalar kullanabilir. Bir sorun çıktığında yalnızca ilgili ara sertifikayı devre dışı bırakmak, tüm ekosistemi çökertmeden hedefe yönelik müdahale imkânı verir. Üçüncüsü ise çapraz imzalama (cross-signing) esnekliği: yeni bir kök, henüz tüm cihazların güven deposuna ulaşmamışken, eski ve yaygın bir kök tarafından çapraz imzalanan bir ara sertifika aracılığıyla eski cihazlarda da çalışabilir. Let's Encrypt'in geçmişte kullandığı yöntem tam olarak buydu.

    Sonuç olarak ara sertifika bir "gereksiz katman" değil, güven modelinin belkemiğidir. Ama bu belkemiği bir bedelle gelir: sunucunuz, ziyaretçiye yalnızca kendi sertifikasını değil, onu köke bağlayan ara sertifikayı da sunmak zorundadır. Bunu yapmazsanız zincir kopar. Sunucu yönetimini bize bıraktığınız sunucu yönetimi hizmetinde bu zincir yapılandırmasını sizin adınıza doğru kurar ve düzenli denetleriz.

    Tarayıcı Zinciri Nasıl Doğrular?#

    Bir https:// adresine girdiğinizde, TLS el sıkışması sırasında sunucu size sertifikasını (ve umarız ara sertifikaları da) gönderir. Tarayıcı bu noktadan sonra bir dizi denetimden geçer. Bu adımları anlamak, sorun çıktığında nereye bakacağınızı bilmek demektir.

    1. Yol oluşturma (path building): Tarayıcı, sunucudan gelen sertifikadan başlayarak "beni imzalayan sertifika hangisi?" sorusuyla yukarı doğru bir yol kurmaya çalışır. Her sertifikanın "Issuer" (imzalayan) alanı, bir üst sertifikanın "Subject" (sahip) alanıyla eşleşmelidir. Zincir bu eşleşmelerle örülür.
    2. İmza doğrulama: Her halkada, alttaki sertifikanın imzasının gerçekten üstteki sertifikanın açık anahtarıyla üretildiği matematiksel olarak doğrulanır. Bu sayede araya sahte bir sertifika sokulamaz.
    3. Köke ulaşma: Yol, tarayıcının/işletim sisteminin güven deposunda gömülü bir kök sertifikaya ulaşırsa zincir "kapanır". Kök depoda yoksa, zincir ne kadar doğru olursa olsun güvenilmez ("untrusted root") sayılır.
    4. Ek denetimler: Zincirdeki her sertifikanın geçerlilik tarihi (süresi dolmuş mu?), alan adı eşleşmesi (sertifika bu alan adı için mi?), kullanım amacı (Extended Key Usage) ve iptal durumu (OCSP/CRL) ayrı ayrı kontrol edilir. Ayrıca alan adının CAA kaydı varsa, sertifikanın izinli bir CA'dan alınıp alınmadığına da bakılabilir.

    Buradaki en sık yanlış anlaşılma şudur: eksik ara sertifika, tarayıcıya göre "zincir kurulamadı" demektir, "sertifika hatalı" demek değildir. Sertifikanız kusursuz olabilir; ama tarayıcı sizden köke giden yolu kuramazsa yine de reddeder. Bazı masaüstü tarayıcılar eksik ara sertifikayı AIA (Authority Information Access) alanındaki adresten indirerek "kurtarabilir", ama bu davranış her tarayıcıda ve özellikle mobil işletim sistemlerinde yoktur. Bu yüzden zincirin eksiksiz sunulması bir tercih değil, zorunluluktur.

    Zinciri İnceleme ve Doğrulama Komutları#

    Zincirinizin ziyaretçiye doğru sunulup sunulmadığını tahminle değil, komutla doğrulamalısınız. En temel araç openssl s_client'tır. Aşağıdaki komut sunucunun el sıkışmada gönderdiği tüm sertifikaları gösterir.

    # Sunucunun sunduğu tüm zinciri ham olarak dök
    openssl s_client -connect alanadiniz.com:443 -servername alanadiniz.com -showcerts </dev/null
    
    # Sadece zincir özetini (seviye seviye Subject/Issuer) görmek için
    openssl s_client -connect alanadiniz.com:443 -servername alanadiniz.com </dev/null 2>/dev/null \
      | openssl x509 -noout -subject -issuer
    

    Çıktının başındaki Certificate chain bölümüne bakın. Sağlıklı bir zincirde en az iki (çoğu zaman üç) sertifika sırayla listelenir. Örneğin şöyle bir çıktı sağlıklıdır:

    Certificate chain
     0 s:CN=alanadiniz.com
       i:C=US, O=Let's Encrypt, CN=R11
     1 s:C=US, O=Let's Encrypt, CN=R11
       i:C=US, O=Internet Security Research Group, CN=ISRG Root X1
    

    Burada 0 numaralı satır sizin sunucu sertifikanız, 1 numaralı satır ise onu köke bağlayan ara sertifikadır. i: (issuer) değerinin bir üstteki s: (subject) ile eşleştiğine dikkat edin; zincir böyle örülür. Eğer çıktıda yalnızca 0 numaralı sertifika varsa, ara sertifika eksik demektir ve sorun buradadır. Yerel bir sertifika dosyasını incelemek isterseniz:

    # Bir sertifikanın süresini, sahibini ve imzalayanını oku
    openssl x509 -in sertifika.crt -noout -subject -issuer -dates
    
    # fullchain dosyasındaki kaç sertifika olduğunu say
    grep -c 'BEGIN CERTIFICATE' fullchain.pem
    
    # Sunucu sertifikası ile ara sertifikanın matematiksel olarak eşleştiğini doğrula
    openssl verify -CAfile ara-sertifika.pem sertifika.crt
    

    openssl verify komutu OK dönerse zincir tutarlıdır. Komut satırına erişiminiz yoksa çevrimiçi SSL test araçları da aynı bilgiyi grafik olarak gösterir; "chain issues" veya "incomplete chain" uyarısı arayın. Bu tür kontrolleri sunucu bakım süreçlerinizin parçası hâline getirmek için sunucu yönetimi rehberimizdeki denetim listelerine de göz atabilirsiniz.

    Eksik Ara Sertifika ve Yol Açtığı Hatalar#

    Sertifika zinciriyle ilgili sorunların büyük çoğunluğu tek bir sebepten kaynaklanır: sunucuya yalnızca sunucu sertifikası yüklenmiş, ara sertifika unutulmuştur. Bunun sinir bozucu yanı, hatanın her yerde görünmemesidir. Masaüstü Chrome zinciri AIA üzerinden tamamlayabildiği için sorunu fark etmezsiniz; ama aynı siteye Safari'den, bir Android cihazdan veya curl ile bağlanan bir ödeme servisinden erişildiğinde bağlantı reddedilir. "Bende çalışıyor ama müşteride çalışmıyor" şikâyetlerinin klasik kaynağı budur.

    Aşağıdaki tablo, zincirle ilgili en sık karşılaşılan hataları ve olası nedenlerini özetler.

    Belirti / Hata mesajıMuhtemel nedenÇözüm
    unable to get local issuer certificateAra sertifika sunulmuyorFullchain yükle
    SSL_ERROR_BAD_CERT_DOMAINAlan adı uyuşmazlığıDoğru alan adı için sertifika
    Chrome'da çalışıyor, mobilde çalışmıyorEksik ara (AIA ile kurtarılıyor)Fullchain yükle
    certificate has expiredZincirdeki bir sertifika süresi dolmuşYenile / otomatik yenileme
    self-signed certificate in chainKök zincire yanlışlıkla eklenmiş veya kök güvenilmiyorKökü zincirden çıkar
    unable to verify the first certificateZincir sırası bozuk veya eksikDoğru sırayla birleştir

    Bu hataların büyük kısmının ortak çözümü "tam zinciri (fullchain) doğru sırayla yüklemek"tir. curl -v https://alanadiniz.com çıktısındaki unable to get local issuer certificate satırı neredeyse her zaman eksik ara sertifikaya işaret eder. Bu ve benzeri hataların adım adım teşhisini SSL hataları ve çözümleri yazımızda araç araç ele alıyoruz; bu rehber daha çok "neden" olduğunu, o yazı ise "nasıl düzeltileceğini" derinleştirir.

    Sunucuda Tam Zinciri (Fullchain) Kurmak#

    Çözüm her platformda aynı ilkeye dayanır: sunucuya, sunucu sertifikanız ile ara sertifikaların tek dosyada, doğru sırada birleştirilmiş hâlini vermek. Sıra önemlidir; önce sizin sertifikanız (leaf), sonra ara sertifika(lar), en son köke doğru gider. Kökü eklemenize gerek yoktur, hatta eklemek bazı istemcilerde self-signed certificate in chain uyarısına yol açabildiği için genellikle önerilmez.

    Let's Encrypt kullanıyorsanız certbot size fullchain.pem dosyasını zaten doğru sırayla verir; siz de yapılandırmada cert.pem yerine bu dosyayı göstermelisiniz. Nginx tarafında:

    server {
        listen 443 ssl;
        server_name alanadiniz.com;
    
        # DOĞRU: leaf + ara birlikte
        ssl_certificate     /etc/letsencrypt/live/alanadiniz.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/alanadiniz.com/privkey.pem;
    
        # YANLIŞ olur: sadece leaf → ara eksik kalır
        # ssl_certificate   /etc/letsencrypt/live/alanadiniz.com/cert.pem;
    }
    

    Apache, sertifika ile zinciri ayrı direktiflerde ister (2.4.8 öncesinde SSLCertificateChainFile, sonrasında ise SSLCertificateFile'a birleşik fullchain verilebilir):

    <VirtualHost *:443>
        ServerName alanadiniz.com
        SSLEngine on
        SSLCertificateFile      /etc/ssl/alanadiniz/fullchain.pem
        SSLCertificateKeyFile   /etc/ssl/alanadiniz/privkey.pem
    </VirtualHost>
    

    Dosyaları elle birleştirmeniz gerekiyorsa sıra şu şekildedir; kök dâhil edilmez:

    # leaf + ara(lar) = fullchain (kök EKLENMEZ)
    cat sertifika.crt ara-sertifika.crt > fullchain.pem
    
    # değiştirdikten sonra sözdizimini doğrulayıp yeniden yükle
    nginx -t && systemctl reload nginx
    

    cPanel kullanıyorsanız işiniz daha kolaydır: SSL/TLS > Sertifikaları Yükle ekranındaki "Sertifika Yetkilisi Paketi (CABUNDLE)" alanına ara sertifikayı yapıştırmanız yeterlidir; cPanel zinciri sizin için doğru kurar. AutoSSL ile otomatik verilen sertifikalarda bu adım zaten halledilmiştir. Paylaşımlı hosting paketlerimizde SSL kurulumu tek tıkla yapıldığı için ara sertifika derdiyle hiç uğraşmazsınız; sunucunun tamamını yönettiğiniz senaryolarda ise ücretsiz SSL sertifikası sayfamızdan başlayıp yukarıdaki fullchain kuralına dikkat etmeniz yeterli olur. Kurulumdan sonra mutlaka farklı bir cihazdan veya openssl s_client ile zincirin eksiksiz sunulduğunu bir kez daha doğrulayın.

    Sıkça Sorulan Sorular#

    Ara sertifikayı sunucuya yüklemezsem ne olur?#

    Sertifikanız teknik olarak geçerli olsa bile tarayıcı köke giden yolu kuramaz ve bağlantıyı reddedebilir. Sinsi olan tarafı, masaüstü Chrome gibi bazı tarayıcıların eksik ara sertifikayı AIA alanından indirip sorunu gizlemesidir; buna karşılık Safari, birçok Android cihaz ve API istemcileri (curl, ödeme servisleri, webhook'lar) unable to get local issuer certificate hatası verir. Yani "bende çalışıyor" demek, herkeste çalıştığı anlamına gelmez; bu yüzden her zaman tam zincir yüklenmelidir.

    Kök sertifikayı da fullchain dosyasına eklemeli miyim?#

    Hayır, kök sertifikayı eklememelisiniz. Kök zaten ziyaretçinin tarayıcısında ve işletim sisteminde gömülü olduğu için sunucudan gönderilmesi gereksizdir ve boşuna veri taşınmasına yol açar. Dahası, bazı istemciler zincirin içinde kendi kendini imzalayan bir kök görünce self-signed certificate in chain uyarısı üretebilir. Doğru fullchain dosyası yalnızca sunucu sertifikanız ile bir veya daha fazla ara sertifikadan oluşur; kök karşı tarafta kalır.

    Zincirimin doğru olup olmadığını nasıl anlarım?#

    En hızlı yöntem komut satırından openssl s_client -connect alanadiniz.com:443 -servername alanadiniz.com çalıştırıp çıktının başındaki "Certificate chain" bölümüne bakmaktır. Sağlıklı bir zincirde en az iki sertifika listelenir ve her satırın issuer değeri bir üstteki subject ile eşleşir. Yalnızca tek sertifika görüyorsanız ara sertifika eksiktir. Komut satırı kullanmıyorsanız çevrimiçi bir SSL test aracı da aynı bilgiyi verir; "incomplete chain" veya "chain issues" uyarısını arayın.

    Fullchain, cert ve chain dosyaları arasındaki fark ne?#

    cert.pem yalnızca sizin sunucu sertifikanızı içerir; chain.pem yalnızca ara sertifika(ları) içerir; fullchain.pem ise bu ikisinin doğru sırayla birleştirilmiş hâlidir, yani leaf artı ara sertifikalar. Nginx tek dosya beklediği için neredeyse her zaman fullchain.pem göstermelisiniz. Apache eski sürümlerde sertifika ile zinciri ayrı direktiflerde isteyebilir, ama güncel sürümlerde birleşik fullchain de kabul edilir. Yanlış dosyayı göstermek eksik zincir hatalarının en yaygın sebebidir.

    Ara sertifika süresi dolarsa sitem çöker mi?#

    Evet, zincirdeki herhangi bir halkanın süresi dolarsa tarayıcı tüm zinciri geçersiz sayar ve site erişilemez hâle gelir. İyi haber şu ki ara sertifikaların ömrü uzundur (genellikle 5-10 yıl) ve CA'lar bunları vaktinden önce yeniler; Let's Encrypt gibi sağlayıcılar sertifikayı otomatik yenilerken güncel ara sertifikayı da fullchain içine koyduğu için otomatik yenilemeyi açık tuttuğunuz sürece bu sizin sorununuz olmaz. Elle kurulan sertifikalarda ise CA yeni bir ara sertifikaya geçtiğinde fullchain dosyanızı güncellemeyi unutmayın.

    Let's Encrypt kullanıyorsam zincirle uğraşmam gerekir mi?#

    Genellikle hayır. certbot ürettiği fullchain.pem dosyasını zaten leaf ve ara sertifikayı doğru sırayla birleştirmiş olarak verir; sizin tek yapmanız gereken web sunucusu yapılandırmasında cert.pem yerine fullchain.pem dosyasını göstermektir. En sık yapılan hata, yapılandırmada yanlışlıkla cert.pem göstermektir ve bu doğrudan eksik zincire yol açar. cPanel ile AutoSSL kullanıyorsanız bu adım tamamen otomatiktir ve zincirle hiç ilgilenmeniz gerekmez.

    Kapanış#

    Sertifika zinciri, ilk bakışta karmaşık görünse de tek bir cümleye indirgenebilir: sunucunuz, kendi sertifikasını köke bağlayan ara sertifikaları da ziyaretçiye sunmak zorundadır; kök ise zaten karşı taraftadır. Kök CA anahtarının çevrimdışı korunması, günlük imzalamayı ara sertifikaların yürütmesi ve tarayıcının bu zinciri aşağıdan yukarı doğrulaması, hepsi güveni tek bir zayıf noktaya bağlamamak için tasarlanmış akıllı bir modeldir. Bu modeli anladığınızda, "bende çalışıyor ama mobilde çalışmıyor" gibi baş ağrıtan sorunların çoğunun aslında tek bir eksik ara sertifikadan ibaret olduğunu göreceksiniz.

    Zincir kurulumuyla, otomatik yenilemeyle veya çıkan hataların teşhisiyle vakit kaybetmek istemiyorsanız, SSL'in tek tıkla kurulduğu hosting paketlerimizle işe başlayabilir, tam kontrol istediğiniz senaryolarda ücretsiz SSL çözümümüzü kullanabilir ya da sunucunuzun sertifika, güvenlik ve bakım süreçlerini uzman ekibimize devretmek için sunucu yönetimi hizmetimize göz atabilirsiniz. Konuyu tamamlamak için zincir hatalarının pratik çözümlerini anlattığımız SSL hataları ve çözümleri yazımızla devam etmenizi öneririz.

    SSLCATLS

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.