diff --git a/src/Umbraco.Cms.Persistence.SqlServer/Services/SqlServerDatabaseProviderMetadata.cs b/src/Umbraco.Cms.Persistence.SqlServer/Services/SqlServerDatabaseProviderMetadata.cs
index 89612b3603..63e058df6c 100644
--- a/src/Umbraco.Cms.Persistence.SqlServer/Services/SqlServerDatabaseProviderMetadata.cs
+++ b/src/Umbraco.Cms.Persistence.SqlServer/Services/SqlServerDatabaseProviderMetadata.cs
@@ -73,8 +73,37 @@ public class SqlServerDatabaseProviderMetadata : IDatabaseProviderMetadata
}
///
- public string GenerateConnectionString(DatabaseModel databaseModel) =>
- databaseModel.IntegratedAuth
- ? $"Server={databaseModel.Server};Database={databaseModel.DatabaseName};Integrated Security=true"
- : $"Server={databaseModel.Server};Database={databaseModel.DatabaseName};User Id={databaseModel.Login};Password={databaseModel.Password}";
+ public string GenerateConnectionString(DatabaseModel databaseModel)
+ {
+ string connectionString = $"Server={databaseModel.Server};Database={databaseModel.DatabaseName};";
+ connectionString = HandleIntegratedAuthentication(connectionString, databaseModel);
+ connectionString = HandleTrustServerCertificate(connectionString, databaseModel);
+
+ return connectionString;
+ }
+
+ private string HandleIntegratedAuthentication(string connectionString, DatabaseModel databaseModel)
+ {
+ if (databaseModel.IntegratedAuth)
+ {
+ connectionString += "Integrated Security=true";
+ }
+ else
+ {
+ connectionString += $"User Id={databaseModel.Login};Password={databaseModel.Password}";
+ }
+
+ return connectionString;
+ }
+
+ private string HandleTrustServerCertificate(string connectionString, DatabaseModel databaseModel)
+ {
+ if (databaseModel.TrustServerCertificate)
+ {
+ connectionString += ";TrustServerCertificate=true;";
+ }
+
+ return connectionString;
+ }
+
}
diff --git a/src/Umbraco.Core/Install/Models/DatabaseModel.cs b/src/Umbraco.Core/Install/Models/DatabaseModel.cs
index b52fc84fa9..1c632081ce 100644
--- a/src/Umbraco.Core/Install/Models/DatabaseModel.cs
+++ b/src/Umbraco.Core/Install/Models/DatabaseModel.cs
@@ -28,6 +28,9 @@ public class DatabaseModel
[DataMember(Name = "integratedAuth")]
public bool IntegratedAuth { get; set; }
+ [DataMember(Name = "trustServerCertificate")]
+ public bool TrustServerCertificate { get; set; }
+
[DataMember(Name = "connectionString")]
public string? ConnectionString { get; set; }
}
diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/database.html b/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
index 4282770e75..f1617277e8 100644
--- a/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
+++ b/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
@@ -155,6 +155,16 @@
Use integrated authentication
+
+
+
+