Sertifika zinciri doğrulanıyor

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu belgede, sertifikayı Apigee Edge'deki bir anahtar deposuna veya güven deposuna yüklemeden önce sertifika zincirinin nasıl doğrulanacağı açıklanmaktadır. Bu işlem, sertifika zincirini doğrulamak için OpenSSL araç setini kullanır ve OpenSSL'nin kullanılabildiği tüm ortamlarda geçerlidir.

Başlamadan önce

Bu belgedeki adımları kullanmadan önce aşağıdaki konuları anladığınızdan emin olun:

  • Sertifika zinciri hakkında bilginiz yoksa Güven zinciri başlıklı makaleyi okuyun.
  • OpenSSL kitaplığı hakkında bilginiz yoksa OpenSSL başlıklı makaleyi okuyun.
  • Bu kılavuzdaki komut satırı örneklerini kullanmak istiyorsanız OpenSSL istemcisinin en son sürümünü yükleyin veya bu sürüme güncelleyin.
  • Sertifikaların PEM biçiminde olduğundan emin olun. Sertifikalar PEM biçiminde değilse bunları PEM biçimine dönüştürmek için Sertifikaları desteklenen biçime dönüştürme bölümündeki talimatları uygulayın.

Zincirin tamamı için sertifika konusunu ve vereni doğrulama

OpenSSL komutlarını kullanarak sertifika zincirini doğrulamak için aşağıdaki bölümlerde açıklanan adımları tamamlayın:

Sertifika zincirini bölme

Sertifikayı doğrulamadan önce aşağıdaki adımları uygulayarak sertifika zincirini ayrı sertifikalara bölmeniz gerekir:

  1. OpenSSL istemcisinin bulunduğu sunucuya giriş yapın.
  2. Sertifika zincirini aşağıdaki sertifikalara ayırın (daha önce yapılmadıysa):
    • Tüzel kişi sertifikası: entity.pem
    • Ara sertifika: intermediate.pem
    • Kök sertifika: root.pem

Aşağıdaki şekilde örnek bir sertifika zinciri gösterilmektedir:

Sertifika zinciri akışı: Kimlik sertifikasından ara sertifikaya, ara sertifikadan kök sertifikaya

Sertifika konusunu ve vereni doğrulama

Bu bölümde, sertifikaların konusunu ve verenini nasıl alacağınız ve geçerli bir sertifika zincirine sahip olduğunuzu nasıl doğrulayacağınız açıklanmaktadır.

  1. Zincirdeki her sertifika için entity'den root'ye Subject ve Issuer değerlerini almak üzere aşağıdaki OpenSSL komutunu çalıştırın ve bunların uygun bir sertifika zinciri oluşturduğunu doğrulayın:
    openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
        

    Burada certificate, sertifikanın adıdır.

  2. Zincirdeki sertifikaların aşağıdaki yönergelere uyduğunu doğrulayın:
    • Her sertifikanın Subject değeri, zincirdeki önceki sertifikanın Issuer değeriyle eşleşir (Entity sertifikası hariç).
    • Subject ve Issuer, kök sertifika için aynıdır.

    Zincirdeki sertifikalar bu yönergelere uyuyorsa sertifika zinciri eksiksiz ve geçerli kabul edilir.

    Örnek sertifika zinciri doğrulaması

    Aşağıdaki örnek, üç sertifika içeren örnek bir sertifika zinciri için OpenSSL komutlarının çıktısıdır:

    Tüzel kişi sertifikası

    openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):'
    
    Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1
    Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
            

    Ara sertifika

    openssl x509 -text -in intermediate.pem  | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
            

    Kök sertifika

    openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):'
    
    Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
    Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
            

    Yukarıdaki örnekte şunlara dikkat edin:

    • Ara sertifikanın Subject değeri, tüzel kişi sertifikasının Issuer değeriyle eşleşiyor.
    • Kök sertifikanın Subject değeri, ara sertifikanın Issuer değeriyle eşleşiyor.
    • Kök sertifikada Subject ve Issuer aynıdır.

    Yukarıdaki örnekten, örnek sertifika zincirinin geçerli olduğunu doğrulayabilirsiniz.

Sertifika konusunu ve veren karmasını doğrulama

Bu bölümde, sertifikaların konu ve veren kuruluşunun karma değerini nasıl alacağınız ve geçerli bir sertifika zincirine sahip olduğunuzu nasıl doğrulayacağınız açıklanmaktadır.

Sertifikaların karma dizisini doğrulamak her zaman iyi bir uygulamadır. Bu işlem, sertifikanın Ortak Adı'nda (CN) istenmeyen boşluk veya özel karakterler olması gibi sorunların belirlenmesine yardımcı olabilir.

  1. Zincirdeki her sertifika için hash dizisini almak üzere entity ile root arasında aşağıdaki OpenSSL komutunu çalıştırın ve bunların uygun bir sertifika zinciri oluşturduğunu doğrulayın.
  2. openssl x509 -hash -issuer_hash -noout -in certificate
        

    Burada certificate, sertifikanın adıdır.

  3. Zincirdeki sertifikaların aşağıdaki yönergelere uyduğunu doğrulayın:
    • Her sertifikanın Subject değeri, zincirdeki önceki sertifikanın Issuer değeriyle eşleşir (Entity sertifikası hariç).
    • Subject ve Issuer, kök sertifika için aynıdır.

    Zincirdeki sertifikalar bu yönergelere uyuyorsa sertifika zinciri eksiksiz ve geçerli kabul edilir.

    Karma sırası üzerinden örnek sertifika zinciri doğrulama

    Aşağıdaki örnek, üç sertifika içeren örnek bir sertifika zinciri için OpenSSL komutlarının çıktısıdır:

    openssl x509 -in entity.pem -hash -issuer_hash -noout
    c54c66ba #this is subject hash
    99bdd351 #this is issuer hash
        
    openssl x509 -in intermediate.pem -hash -issuer_hash -noout
    99bdd351
    4a6481c9
        
    openssl x509 -in root.pem -hash -issuer_hash -noout
    4a6481c9
    4a6481c9
        

    Yukarıdaki örnekte şunlara dikkat edin:

    • Ara sertifikanın subject hash değeri, tüzel kişi sertifikasının issuer hash değeriyle eşleşiyor.
    • Kök sertifikanın subject hash değeri, veren kurum sertifikasının issuer hash değeriyle eşleşmelidir.
    • Kök sertifikada subject ve issuer hash aynıdır.

    Yukarıdaki örnekten, örnek sertifika zincirinin geçerli olduğunu doğrulayabilirsiniz.

Sertifikanın geçerlilik süresinin dolup dolmadığını doğrulama

Bu bölümde, aşağıdaki yöntemleri kullanarak zincirdeki tüm sertifikaların süresinin dolup dolmadığını nasıl doğrulayacağınız açıklanmaktadır:

  • Sertifikanın başlangıç ve bitiş tarihini öğrenin.
  • Son kullanma tarihinin durumunu öğrenin.

Başlangıç ve bitiş tarihi

Zincirdeki her sertifikanın başlangıç ve bitiş tarihini almak için entity ile root arasında aşağıdaki OpenSSL komutunu çalıştırın ve zincirdeki tüm sertifikaların geçerli olduğunu (başlangıç tarihi bugünden önce) ve süresinin dolmadığını doğrulayın.

Başlangıç ve bitiş tarihleri aracılığıyla örnek sertifika geçerlilik bitiş tarihi doğrulaması

openssl x509 -startdate -enddate -noout -in entity.pem
notBefore=Feb  6 21:57:21 2020 GMT
notAfter=Feb  4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem
notBefore=Jun 15 00:00:42 2017 GMT
notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem
notBefore=Apr 13 10:00:00 2011 GMT
notAfter=Apr 13 10:00:00 2022 GMT

Geçerlilik durumu

Sertifikanın süresinin dolup dolmadığını veya önümüzdeki N seconds gün içinde dolup dolmayacağını kontrol etmek için aşağıdaki OpenSSL komutunu çalıştırın. Bu işlev, geçerli sistem tarihi bağlamında sertifikanın geçerlilik bitiş durumunu döndürür.

openssl x509 -checkend <N Seconds> -noout -in certificate

Burada certificate, sertifikanın adıdır.

checkend seçeneğiyle örnek sertifika geçerlilik süresi doğrulaması

Aşağıdaki komut, sertifikanın süresinin dolup dolmadığını kontrol etmek için 0 seconds kullanır:

openssl x509 -checkend 0 -noout -in entity.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem
Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem
Certificate will not expire

Bu örnekte, Certificate will not expire mesajı sertifikanın süresinin henüz dolmadığını gösterir.