Aracılığıyla paylaş


ADFS 2.0 sertifika hatası: Sertifika zincirini derleme girişimi sırasında bir hata oluştu

Bu makale, sertifika zincirini derleme girişimi sırasında ADFS 2.0 sertifika hatasını düzeltmeye yardımcı olur.

Özgün KB numarası: 3044974

Özet

Active Directory Federasyon Hizmetleri (AD FS) 2.0 sorunlarının çoğu aşağıdaki ana kategorilerden birine aittir. Bu makale, sertifika sorunlarını gidermek için adım adım yönergeler içerir.

Belirtiler

  • Bu sorun, bir AD FS sertifikası değiştirildikten veya değiştirildikten sonra başlar.

  • Program, AD FS tarafından verilen belirteci kabul etme işlemini durdurur.

  • AD FS, imzalı bir istek veya yanıt aldığında veya Bağlı Olan Taraf Uygulamasına verilecek belirteci şifrelemeye çalıştığında aşağıdaki hatalardan birini döndürür:

    • Olay Kimliği 316
      Bağlı olan taraf güven imzalama sertifikası için sertifika zinciri oluşturma girişimi sırasında bir hata oluştu.
    • Olay Kimliği 315
      Talep sağlayıcı güven imzalama sertifikası için sertifika zinciri oluşturma girişimi sırasında bir hata oluştu.
    • Olay Kimliği 317
      Bağlı olan taraf güven şifreleme sertifikası için sertifika zinciri oluşturma girişimi sırasında bir hata oluştu.
  • Aşağıdaki sertifikayla ilgili olay kimlikleri AD FS olay günlüğüne kaydedilir:

    • Olay Kimliği 133
      Açıklama: Federasyon Hizmeti yapılandırması işlenirken 'serviceIdentityToken' öğesinin geçersiz veriye sahip olduğu bulundu. Yapılandırılan sertifikanın özel anahtarına erişilemedi. Sertifikanın değerleri şunlardır:Element: serviceIdentityToken
    • Olay Kimliği 385
      AD FS 2.0, AD FS 2.0 yapılandırma veritabanındaki bir veya daha fazla sertifikanın el ile güncelleştirilmiş olması gerektiğini algılamıştı.
    • Olay Kimliği 381
      Yapılandırma sertifikası için sertifika zinciri oluşturma girişimi sırasında bir hata oluştu.
    • Olay Kimliği 102
      Federasyon Hizmeti'nin uç noktaları etkinleştirilirken bir hata oluştu.
      Ek Veriler
      Özel durum ayrıntıları:
      System.ArgumentNullException: Değer null olamaz.
      Parametre adı: sertifika
    • Olay Kimliği: 387
      AD FS 2.0, Federasyon Hizmeti'nde belirtilen sertifikalardan birinin veya daha fazlasının AD FS 2.0 Windows Hizmeti tarafından kullanılan hizmet hesabı için erişilebilir olmadığını algılamıştı.
      Kullanıcı Eylemi: AD FS hizmet hesabının sertifika özel anahtarları üzerinde okuma izinlerine sahip olduğundan emin olun.
      Ek Ayrıntılar:
      Parmak izi 'xxxx' olan belirteç imzalama sertifikası

Çözüm

Bu sorunu çözmek için verilen sırayla bu adımları izleyin. Bu adımlar, sorunun nedenini belirlemenize yardımcı olur. Sorunun her adımdan sonra çözülmüş olup olmadığını denetlediğinizden emin olun.

1. Adım: Özel anahtarları denetleme

Tüm AD FS sertifikalarının (Hizmet iletişimleri, belirteç şifre çözme ve belirteç imzalama) geçerli olup olmadığını ve bunlarla ilişkilendirilmiş özel bir anahtarı olup olmadığını denetleyin. Ayrıca, sertifikanın geçerlilik süresi içinde olduğundan emin olun.

Geçerlilik süresini gösteren Sertifika penceresinin ekran görüntüsü.

Sertifikaları nerede bulabilirim?

  • Hizmet iletişim sertifikaları için:

    1. AD FS sunucusunda Başlat'a tıklayın, Çalıştır'a tıklayın, MMC.exe yazın ve enter tuşuna basın.

    2. Ek Bileşen Ekle/Kaldır iletişim kutusunda Tamam'a tıklayın.

    3. Sertifikalar ek bileşeni ekranında Bilgisayar hesabı sertifika deposuna tıklayın.

      Bilgisayar hesabı seçili durumdayken Sertifika ek bileşeni penceresinin ekran görüntüsü.

    4. Hizmet İletişimleri sertifikasının özelliklerini görüntülemek için Sertifika (Yerel Bilgisayar) öğesini genişletin, Kişisel'i genişletin ve sertifikalar'a tıklayın.

  • Belirteç imzalama ve belirteç şifresi çözme sertifikaları için:

    • Sertifikalar varsayılan olarak ADFS sunucusu tarafından eklenen otomatik olarak imzalanan sertifikalarsa, ADFS Hizmeti hesabını kullanarak ADFS sunucusunda etkileşimli olarak oturum açın ve kullanıcının sertifika deposunu (certmgr.msc) denetleyin.
    • Sertifikalanan, AutoCertificateRollover devre dışı bırakıldıktan sonra ADFS yöneticileri tarafından yapılandırılan bir sertifika yetkilisinden (CA) geliyorsa, bunu ADFS sunucusunun sertifika deposu altında bulabilmelisiniz.

2. Adım: Sertifikaların Şifreleme Yeni Nesil (CNG) özel anahtarı kullanmadığından emin olun

CNG özel anahtarını kullanan sertifikalar Belirteç İmzalama ve Belirteç Şifre Çözme için desteklenmez. AD FS otomatik olarak imzalanan sertifikayı oluşturduysa, bu sertifika CNG kullanmaz. CA tarafından verilen bir sertifika için sertifikanın CNG tabanlı olmadığından emin olun.

CA şablonu listelenen şifreleme hizmeti sağlayıcılarından herhangi birini kullanıyorsa, bu CA tarafından verilen sertifika AD FS sunucusu tarafından desteklenmez.

3. Adım: IIS'deki Hizmet iletişim sertifikalarının SSL bağlamasının 443 numaralı bağlantı noktasına bağlı olup olmadığını denetleyin

Denetleme ve düzeltme

  1. IIS Yöneticisi'ni başlatın. Bunu yapmak için Başlat'a, Yönetim Araçları'na ve ardından Internet Information Services (IIS) Yöneticisi'ne tıklayın.

  2. Sunucu adına tıklayın ve siteler klasörünü genişletin.

  3. Web sitenizi (genellikle "Varsayılan Web Sitesi" olarak bilinir) bulun ve seçin.

  4. Sağ taraftaki Eylemler menüsünde Bağlamalar'a tıklayın. Https teklif türünün 443 numaralı bağlantı noktasına bağlı olduğundan emin olun. Aksi takdirde, bağlantı noktasını değiştirmek için Düzenle'ye tıklayın.

    https teklif türünün 443 numaralı bağlantı noktasına bağlı olduğunu gösteren Site Bağlamaları penceresinin ekran görüntüsü.

4. Adım: Hizmet iletişim sertifikasının geçerli, güvenilir olduğundan ve iptal denetimi geçirdiğinden emin olun

Nasıl denetlenecek?

  1. AD FS 2.0 Yönetimi'ni açın.

  2. Hizmet'i genişletin, Sertifika'ya tıklayın, hizmet iletişim sertifikasına sağ tıklayın ve ardından Sertifikayı görüntüle'ye tıklayın.

  3. Ayrıntılar bölmesinde Dosyaya kopyala'ya tıklayın ve dosyayı Filename.cer olarak kaydedin.

  4. Bir komut isteminde, hizmet iletişim sertifikasının geçerli olup olmadığını belirlemek için aşağıdaki komutu çalıştırın:

    Run 'Certutil -verify -urlfetch certificate.CER > cert_cerification.txt'
    
  5. "cert_verification.txt" öğesinin üzerinde oluşturulan çıkış dosyasını açın.

  6. Dosyanın sonuna gidin ve başarılı bir iptal testi için aşağıdakileri içerip içermediğini denetleyin:

    Yaprak sertifika iptal denetimi geçirildi
    CertUtil: -verify komutu başarıyla tamamlandı.

  7. Dosya, iptal denetimlerinin başarısız olduğunu veya iptal sunucusunun çevrimdışı olduğunu gösteriyorsa, sertifika zincirindeki hangi sertifikanın doğrulanamadını belirlemek için günlüğü denetleyin.

    Herhangi bir AIA veya CDP yolunun başarısız olup olmadığını denetleyin. Bir dosya türü altında birden çok yolun belirtildiği bir senaryoda, her iki yol da doğrulanmış olarak işaretlenmelidir.

    ---------------- Sertifika AIA ----------------
    Doğrulanmış "Sertifika (0)" Saat: 0
    [0.0] http://www.contoso.com/pki/mswww(6).crt

    Başarısız "AIA" Saati: 0
    URL alınırken hata oluştu: Sunucu adı veya adresi 0x80072ee7 çözümlenemedi (WIN32: 12007)
    http://corppki/aia/mswww(6).crt

    sertifika CDP ---------------- ----------------
    Doğrulanmış "Temel CRL (5a)" Saat: 0
    [0.0] http://mscrl.contoso.com/pki/crl/mswww(6).crl

    Doğrulanmış "Temel CRL (5a)" Saat: 0
    [1.0] http://crl.contoso.com/pki/crl/mswww(6).crl

    Başarısız "CDP" Saati: 0
    URL alınırken hata oluştu: Sunucu adı veya adresi 0x80072ee7 çözümlenemedi (WIN32: 12007)
    http://corppki/crl/mswww(6).crl

    AIA, CDP veya OCSP yolundan herhangi biri kullanılamıyorsa ağ izlemesi toplamak yararlı olabilir.

  8. Günlük girdisi sertifikanın iptal edilmiş olduğunu gösteriyorsa, geçerli ve iptal edilmemiş başka bir sertifika istemeniz gerekir.

5. Adım: ADFS hizmet hesaplarının ADFS sertifikalarının özel anahtarı için Okuma iznine sahip olduğundan emin olun

Okuma iznini denetleme

  1. AD FS sunucusunda Başlat'a tıklayın, Çalıştır'a tıklayın, MMC.exe girin ve enter tuşuna basın.

  2. Ek Bileşen Ekle/Kaldır iletişim kutusunda Tamam'a tıklayın.

  3. Bilgisayar sertifika depolarını görüntülemek için Konsol Kökü penceresinde Sertifikalar (Yerel Bilgisayar) seçeneğine tıklayın.

  4. AD FS hizmetine sağ tıklayın, Tüm Görevler'in üzerine gelin ve özel anahtarları yönet'e tıklayın.

  5. AD FS hesabının Okuma iznine sahip olup olmadığını denetleyin.

    AD FS hesabının Okuma iznine sahip olduğunu gösteren izin penceresinin ekran görüntüsü.

6. Adım: ADFS AutoCertificateRollover özelliğinin belirteç imzalama ve belirteç şifre çözme sertifikaları için etkinleştirilip etkinleştirilmediğini denetleyin

ADFS AutoCertificateRollover özelliğini denetleme

  • AutoCertificateRollover devre dışı bırakılırsa, belirteç imzalama ve belirteç şifre çözme sertifikaları otomatik olarak yenilenmez. Bu sertifikaların süresi dolmadan önce AD FS yapılandırmasına yeni bir sertifika eklendiğinden emin olun. Aksi takdirde, bağlı olan taraf AD FS sunucusu tarafından verilen belirteci güvenmez.
  • AutoCertificateRollover etkinleştirilirse, eski sertifikaların süresinin dolmasından 20 gün önce yeni belirteç imzalama ve belirteç şifre çözme sertifikaları oluşturulur. Yeni sertifikalar oluşturulduktan beş gün sonra Birincil durumu alır. Yeni sertifika kümesi oluşturulduktan sonra, bağlı olan taraf ve talep sağlayıcısı güvenlerinde aynı bilgilerin güncelleştirildiğinden emin olun.

AD FS AutoCertificateRollover özelliği hakkında daha fazla bilgi için aşağıdaki TechNet konularına bakın:

AD FS 2.0: AutoCertificateRollover'ı Etkinleştirme ve Hemen Kullanma

7. Adım: Sertifika SAN'sine federasyon hizmeti adını ekleme

Sertifikada SAN (Konu Alternatif Adı) özniteliği etkinleştirildiyse, federasyon hizmeti adı da sertifikanın SAN'sine diğer adlarla birlikte eklenmelidir. Daha fazla bilgi için bkz . SSL Sertifika Gereksinimleri.

8. Adım: (CN=GUID,CN=<ADFS,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>) sertifika paylaşımı kapsayıcısı için hizmet hesabı izinlerini> denetleyin

Hizmet hesabı iznini denetleme ve düzeltme

  1. Bir etki alanı denetleyicisinde (DC), Adsiedit.msc dosyasını açın.

  2. Varsayılan adlandırma bağlamı'na bağlanın.

  3. CN=<GUID,CN>=ADFS,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM'u> bulun.

    Not

    Bu kapsayıcı adında köşeli ayraç içindeki parametreler gerçek değerleri temsil eder. GUID örneği"62b8a5cb-5d16-4b13-b616-06caea706ada" şeklindedir.

  4. GUID'ye sağ tıklayın ve ardından Özellikler'e tıklayın. Birden fazla GUID varsa şu adımları izleyin:

    1. AD FS hizmetini çalıştıran sunucuda Windows PowerShell'i başlatın.

    2. Şu komutu çalıştırın:

      Add-PSSnapin microsoft.adfs.powershellGet-ADFSProperties
      
    3. CertificateShareingContainer altında çalışan AD FS hizmetinin GUID'sini bulun.

  5. ADFS hizmet hesabının bu nesneye ve tüm alt nesnelere Okuma, Yazma ve "Tüm alt nesneleri oluştur" izinlerine sahip olduğundan emin olun.

9. Adım: Talep sağlayıcılarını ve bağlı olan tarafları sertifika güncelleştirmeleri için denetleme

Belirteç imzalama ve belirteç şifre çözme sertifikaları değiştiyse, talep sağlayıcılarının ve bağlı olan tarafların yeni sertifikalara sahip olacak şekilde güncelleştirildiğinden emin olun. Talep sağlayıcıları ve bağlı olan taraflar güncelleştirilmezse, AD FS hizmetine güvenemezler.

  • Değişiklik yapıldıktan sonra Federationmetadata.xml talep sağlayıcısı ve bağlı olan tarafla paylaşın.
  • Talep sağlayıcısı ve bağlı olan taraf yalnızca yeni belirteç imzalama ve belirteç şifre çözme sertifikalarının (özel anahtar olmadan) federasyon güveninde güncelleştirilmesini gerektirebilir.

10. Adım: Talep sağlayıcısından veya bağlı olan taraftan imzalı istek ve yanıt olup olmadığını denetleyin

İmzalı istek ve yanıt, AD FS sunucusu tarafından talep sağlayıcısından veya bağlı olan taraftan alınmış olabilir. Bu senaryoda, AD FS sunucusu imzalama için kullanılan sertifikanın geçerliliğini denetleyebilir ve başarısız olabilir. AD FS, AD FS sunucusuna şifrelenmiş belirteç göndermek için kullanılan bağlı olan tarafla ilişkili sertifikanın geçerliliğini de denetler.

Senaryolar

  • AD FS 2.0, bağlı olan taraf tarafından gönderilen imzalı bir SAML-P isteği alır.

    Not

    Oturum açma isteklerinin imzasını gerektirmek yapılandırılabilir bir seçenektir. Bağlı olan taraf güveni için bu gereksinimi ayarlamak için RequireSignedSamlRequests parametresini Set-ADFSRelyingPartyTrust cmdlet'iyle birlikte kullanın.

  • AD FS 2.0, bağlı olan taraftan imzalı bir SAML oturum kapatma isteği alır. Bu senaryoda, oturum kapatma isteğinin imzalanması gerekir.

  • AD FS 2.0, talep sağlayıcısından bir oturum kapatma isteği alır ve bağlı olan taraf için bir oturum kapatma isteğini şifreler. Bu senaryoda, talep sağlayıcısı oturumu kapatma işlemini başlatır.

  • AD FS 2.0, bağlı olan taraf için şifrelenmiş bir belirteç oluşturur.

  • AD FS 2.0, bir talep sağlayıcısından verilen bir belirteç alır.

  • AD FS 2.0, talep sağlayıcısından imzalı bir SAML oturumu kapatma isteği alır. Bu senaryoda, oturum kapatma isteğinin imzalanması gerekir.

Sorunu çözmek için denetlenecekler

  • Talep sağlayıcısı güveninin imzalama sertifikasının geçerli olduğundan ve iptal edilmediğinden emin olun.

  • İptal ayarında "yok" veya "yalnızca önbellek" ayarı belirtilmezse AD FS 2.0'ın sertifika iptal listesine erişebildiğinden emin olun.

    Not

    Aşağıdaki iptal ayarlarını yapılandırmak için AD FS 2.0 için Windows PowerShell cmdlet'lerini kullanabilirsiniz:

    • Set-ADFSClaimsProviderTrust veya Set-ADFSRelyingPartyTrust cmdlet'inin SigningCertificateRevocationCheck parametresi
    • Set-ADFSRelyingPartyTrust veya Set-ADFSClaimsProviderTrust cmdlet'inin EncryptionCertificateRevocationCheck parametresi

Daha fazla bilgi için bkz . AD FS 2.0 ile ilgili sertifika sorunlarını giderme.