21 Nisan 2024 Pazar

Sertifika zinciri güvenilmeyen bir yetkili tarafından verildi hatası çözümü

Herkese merhaba, yeni güncellemeler sonrasında karşılaştığım bir hatadan bahsetmek istiyor.

SQL Server için son yeni güncelleme ile SQL connection için güvenli server servtifikaları hayatımıza girmiştir. Bağlantı cümlesine TrustServerCertificate=true eklemek sorunu çözüyor.

TrustServerCertificate olarak ayarlandığında true aktarım katmanı, kanalı şifrelemek için SSL kullanır ve güveni doğrulamak için sertifika zincirinde yürümeyi atlar. olarak ayarlanırsa TrustServerCertificate true ve şifreleme açıksa, olarak ayarlansa Encrypt false bile sunucuda belirtilen şifreleme düzeyi kullanılır. Aksi takdirde bağlantı başarısız olur.

Microsoft.Data.SqlClient.SqlException

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - Sertifika zinciri güvenilmeyen bir yetkili tarafından verildi.)

DevExpress XPO kullanıyorsanız aynı hatayı burada da alacaksınız. Config dosyasına TrustServerCertificate=true parametreyi eklediğinizde sorun çözülecektir. Örnek Connection String 'aşağıda görebilirsiniz.

<add name="getConnection" connectionString="server=.;database=DATABASE;integrated security=SSPI;TrustServerCertificate=true" providerName="System.Data.SqlClient" />

DevExpress.Xpo.DB.Exceptions.UnableToOpenDatabaseException

Unable to open database. Connection string: 'data source=.;user id=USER;password=***REMOVED***;initial catalog=DATABASE;Persist Security Info=true;'; Error: 'Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - Sertifika zinciri güvenilmeyen bir yetkili tarafından verildi.) ---> System.ComponentModel.Win32Exception (0x80004005): Sertifika zinciri güvenilmeyen bir yetkili tarafından verildi.

Kaynak: https://learn.microsoft.com/tr-tr/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder.trustservercertificate?view=dotnet-plat-ext-8.0