Aracılığıyla paylaş


SQL Server bağlandığınızda "Uzak sunucudan alınan sertifika güvenilmeyen bir sertifika yetkilisi tarafından verildi" hatası

Bu makale, SQL Server'a şifreli bir bağlantı kurmayı denediğinizde oluşan sorunu çözmenize yardımcı olur.

Özgün ürün sürümü: SQL Server
Orijinal KB numarası: 2007728

Belirtiler

SQL Server'a bağlanırken şu hata iletisini alabilirsiniz:

Sunucuyla başarıyla bağlantı kuruldu ancak oturum açma işlemi sırasında bir hata oluştu. (sağlayıcı: SSL Sağlayıcısı, hata: 0 - Sertifika zinciri, güvenilir olmayan bir yetkili tarafından verildi.) (.Net SqlClient Veri Sağlayıcısı)

Ayrıca, Windows Sistem olay günlüğüne aşağıdaki hata iletisi kaydedilir

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

Neden

Doğrulanamayan bir sertifika kullanarak SQL Server'a şifreli bir bağlantı oluşturmaya çalıştığınızda bu hata oluşur. Bu, aşağıdaki senaryolarda meydana gelebilir:

Senaryo Sunucu tarafı şifreleme İstemci tarafı şifreleme Sertifika türü Sertifika veren yetkili, Güvenilen Kök Sertifika Yetkilileri deposunda mevcut
1 Evet Hayır Güvenilir olmayan bir kaynaktan sertifika sağlarsınız (sertifika veren yetkili, istemci makinesindeki Güvenilen Kök Sertifika Yetkilileri'nde güvenilir bir yetkili olarak listelenmez) Hayır
2 Devre Dışı Evet SQL Server kendinden oluşturulan sertifika Otomatik olarak imzalanan sertifikalar bu mağazada gösterilmez.

SQL Server'a şifreli bağlantılar kurarken Güvenli Kanal (Schannel), yerel bilgisayardaki Güvenilen Kök Sertifika Yetkilileri deposunda arama yaparak güvenilen sertifika yetkililerinin listesini oluşturur. TLS el sıkışması sırasında sunucu, ortak anahtar sertifikasını istemciye gönderir. Ortak anahtar sertifikası veren, Sertifika Yetkilisi (CA) olarak bilinir. İstemcinin, sertifika yetkilisinin istemcinin güvendiği bir yetkili olduğundan emin olması gerekir. Bu, güvenilir CA'ların ortak anahtarını önceden bilerek elde edilir. Schannel, önceki iki durumda olduğu gibi güvenilmeyen bir sertifika yetkilisi tarafından verilmiş bir sertifika algıladığında , Belirtiler bölümünde listelenen hata iletisini alırsınız.

Çözüm

SQL Server bağlantılarını şifrelemek için güvenilir olmayan yetkiliden bir sertifikayı veya kendinden imzalı bir sertifikayı kasıtlı olarak kullanıyorsanız aşağıdaki seçeneklerden birini kullanabilirsiniz:

Senaryo 1 için, sertifika yetkilisini şifrelenmiş bağlantı başlatan istemci bilgisayardaki Güvenilen Kök Sertifika Yetkilileri deposuna ekleyin. Bunu yapmak için , Sunucu sertifikasını dışarı aktar ve Bu sırada sonraki birkaç bölümde listelenen istemci makinesi yordamlarına kök sertifika yetkilisini (CA) yükle'yi tamamlayın.

Sunucu sertifikasını dışarı aktarma

Örnekte sertifika dosyası olarak caCert.cer adlı bir dosya kullanılmaktadır. Bu sertifika dosyasını sunucudan almanız gerekir. Aşağıdaki adımlarda, sunucu sertifikasının bir dosyaya nasıl dışarı aktarılacağı açıklanmaktadır:

  1. Başlat'a ve ardından Çalıştır'a tıklayın ve MMC yazın. (MMC, Microsoft Yönetim Konsolu'nun kısaltmadır.)

  2. MMC'de Sertifikalar'ı açın.

  3. Kişisel'i ve ardından Sertifikalar'ı genişletin.

  4. Sunucu sertifikasına sağ tıklayın ve ardından Tüm Görevler-Dışarı> Aktar'ı seçin.

  5. Sertifika Dışarı Aktarma Sihirbazı'nın hoş geldiniz iletişim kutusunu geçmek için İleri'ye tıklayın.

  6. Hayır, özel anahtarı dışarı aktarma seçeneğinin belirlendiğini onaylayın ve ardından İleri'yi seçin.

  7. DER kodlu ikili X.509 (.CER) veya Base-64 kodlu X.509'un (.CER) seçili olduğundan emin olun ve İleri'ye tıklayın.

  8. Dışarı aktarma dosya adı girin.

  9. Sertifikayı dışarı aktarmak için İleri'ye ve ardından Son'a tıklayın.

İstemci makinesine kök sertifika yetkilisini (CA) yükleyin

  1. İstemci bilgisayarda MMC için Sertifikalar ek bileşenini başlatın ve ardından Sertifikalar ek bileşenini ekleyin.

  2. Sertifikalar ek bileşeni iletişim kutusunda Bilgisayar hesabı'nı ve ardından İleri'yi seçin.

  3. Bilgisayar Seç bölmesinde Yerel bilgisayar: (bu konsolun çalıştığı bilgisayar) öğesini ve ardından Son'u seçin.

  4. Ek Bileşen Ekle veya Kaldır iletişim kutusunu kapatmak için Tamam'ı seçin.

  5. MMC'nin sol bölmesinde Sertifikalar (Yerel Bilgisayar) düğümünü genişletin.

  6. Güvenilen Kök Sertifika Yetkilileri düğümünü genişletin, Sertifikalar alt klasörüne sağ tıklayın, Tüm Görevler'i ve ardından İçeri Aktar'ı seçin.

  7. Sertifika İçeri Aktarma Sihirbazı'nınHoş Geldiniz sayfasındaİleri'yi seçin.

  8. İçeri Aktaracak Dosya sayfasında Gözat'ı seçin.

  9. caCert.cer sertifika dosyasının konumuna göz atın, dosyayı seçin ve ardından Aç'ı seçin.

  10. İçeri Aktaracak Dosya sayfasında İleri'yi seçin.

  11. Sertifika Deposu sayfasında varsayılan seçimi kabul edin ve İleri'yi seçin.

  12. Sertifika İçeri Aktarma Sihirbazı Tamamlanıyor sayfasında Son'u seçin.

1 ve 2 senaryoları için, istemci uygulamanızda Güven Sunucusu Sertifikası ayarını true olarak ayarlayın.

Bunun nasıl yapacağı hakkında daha fazla bilgi için aşağıdaki konulara bakın:

Not

SQL Server Management Studio kullanıyorsanız Seçenekler sekmesini seçin ve Bağlantı Özellikleri sekmesinde Sunucu sertifikasına güven seçeneğini belirleyin.

Dikkat: Otomatik olarak imzalanan bir sertifika kullanılarak şifrelenen SSL bağlantıları güçlü güvenlik sağlamaz. man-in-the-middle saldırılarına karşı dayanıksızdırlar. Üretim ortamında veya İnternet'e bağlı sunucularda kendinden imzalı sertifikalar kullanan SSL'e güvenmemelisiniz.

Bu makalenin önceki bölümlerinde açıklanan yapılandırma istenmeyen bir durumsa bu sorunu çözmek için aşağıdaki seçeneklerden birini kullanabilirsiniz:

  • Veritabanı motorunu, Veritabanı Motoruna şifreli bağlantıları etkinleştir bölümündeki prosedüre göre şifreleme kullanacak şekilde yapılandırın.

  • Şifreleme gerekli değilse:

    • İstemci uygulamanızda şifreleme ayarlarını (varsa) devre dışı bırakın.

    • SQL Server Yapılandırma yöneticisini kullanarak sunucu tarafı şifrelemesini devre dışı bırakın. Bunun nasıl yapacağı hakkında daha fazla bilgi için bkz. Sunucuyu Yapılandırma.