Umbraco 12 - The certificate chain was issued by an authority that is not trusted

Umbraco 12 - The certificate chain was issued by an authority that is not trusted

Carl Rasmus Wriedt Bønnebæk
01 jul. 2023

I dag opgraderede jeg lig et mindre site til Umbraco 12, hvilket førte mig direkte til Umbraco Installations-skærmen. Som det ofte er tilfældet, når man opgraderer Umbraco og derefter støder på en installations-skærm, tyder det på, at der er et problem med databaseadgangen.

Hele fejllinien er som følger:

Failed to detected SqlServer version.","@l":"Error","@x":"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 - The certificate chain was issued by an authority that is not trusted.)\r\n ---> System.ComponentModel.Win32Exception (0x80090325): The certificate chain was issued by an authority that is not trusted.\r\n at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)\r\n at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)\r\n at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)\r\n at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)\r\n at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)\r\n at Microsoft.Data.SqlClient.Sql

Denne gang var det dog anderledes. Det viser sig, at Umbraco 12 / Microsoft, har foretaget nogle væsentlige ændringer i ADO. En af disse ændringer er, at "Encrypt connection string" egenskaben nu er som standard sat til true. Normalt ville det ikke være et problem for os, da vi kun udveksler data gennem krypterede forbindelser. Men hvad hvis SQL-serveren har sit eget brugerdefinerede certifikat? I så fald bryder Umbraco helt sammen.

For nu er løsningen at tillade Umbraco-sitet at stole på SQL-serverens certifikat. Dette kan opnås ved at tilføje "TrustServerCertificate=True" til forbindelsesstrengen.

Jeg vil give yderligere opdateringer, når jeg har mere tid til at undersøge dette problem. Den nævnte midlertidige løsning kan løse problemet, men fra et sikkerhedsmæssigt synspunkt er den måske ikke ideel.

Kom bare nærmere

Skal vi mødes og drikke en kop kaffe, eller tage et hurtigt teams møde, så sig til

Lokation

København / Amager

Telefon

Tlf: +45 60200656