Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Özgün 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 | Yes | 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 | Kapalı | Yes | SQL Server kendinden oluşturulan sertifika | Otomatik olarak imzalanan sertifikalar bu depoda 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 verilen bir sertifikayı 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:
1. senaryo için, şifrelenmiş bağlantı başlatan istemci bilgisayardaki Güvenilen Kök Sertifika Yetkilileri deposuna sertifika yetkilisini ekleyin. Bunu yapmak için, Sunucu sertifikasını dışarı aktar ve Kök sertifika yetkilisini (CA) bu sıranın sonraki birkaç bölümünde listelenen istemci makinesi yordamlarına 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:
Başlat'a ve ardından Çalıştır'a tıklayın ve MMC yazın. (MMC, Microsoft Yönetim Konsolu'nun kısaltmasıdır.)
MMC'de Sertifikalar'ı açın.
Kişisel öğesini ve ardından Sertifikalar'ı genişletin.
Sunucu sertifikasına sağ tıklayın ve ardından Tüm Görevler-Dışarı> Aktar'ı seçin.
Sertifika Dışarı Aktarma Sihirbazı'nın hoş geldiniz iletişim kutusundan geçmek için İleri'ye tıklayın.
Hayır, özel anahtarı dışarı aktarma'nın seçili olduğunu onaylayın ve ardından İleri'yi seçin.
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.
Dışarı aktarma dosya adı girin.
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
İstemci bilgisayarda MMC için Sertifikalar ek bileşenini başlatın ve ardından Sertifikalar ek bileşenini ekleyin.
Sertifikalar ek bileşeni iletişim kutusunda Bilgisayar hesabı'nı ve ardından İleri'yi seçin.
Bilgisayar Seç bölmesinde Yerel bilgisayar: (bu konsolun üzerinde çalıştığı bilgisayar) öğesini ve ardından Son'u seçin.
Ek Bileşen Ekle veya Kaldır iletişim kutusunu kapatmak için Tamam'ı seçin.
MMC'nin sol bölmesinde Sertifikalar (Yerel Bilgisayar) düğümünü genişletin.
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.
Sertifika İçeri Aktarma Sihirbazı'nın Hoş Geldiniz sayfasında İleri'yi seçin.
İçeri Aktaracak Dosya sayfasında Gözat'ı seçin.
caCert.cer sertifika dosyasının konumuna göz atın, dosyayı seçin ve ardından Aç'ı seçin.
İçeri Aktaracak Dosya sayfasında İleri'yi seçin.
Sertifika Deposu sayfasında varsayılan seçimi kabul edin ve İleri'yi seçin.
Sertifika İçeri Aktarma Sihirbazı Tamamlanıyor sayfasında Son'u seçin.
1. ve 2. senaryolar için İstemci uygulamanızda Sunucu Sertifikasına Güven ayarını true olarak ayarlayın.
Bunun nasıl yapacağı hakkında daha fazla bilgi için aşağıdaki konulara bakın:
SQL Server Native Client'da Doğrulama Olmadan Şifreleme Kullanma
SQL Server için Microsoft JDBC sürücüsünü kullanarak şifreleme ile bağlanma
Not
SQL Server Management Studio ile SQL Server'a bağlanıyorsanız Sunucuya Bağlan penceresinde Seçenekler sekmesini ve ardından 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.