A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)”
System.Data.SqlClient 是.NET Framework使用 ADO.NET 旧提供程序。
Microsoft.Data.SqlClient 软件包于2019年发布,它是同时支持.NET Core和.NET Framework的新软件包
在连接数据库字符串上加 Encrypt=false
private static string connectionString = "Data Source=192.168.210.20;Initial Catalog=sprdb;User ID=sa;Password=p@ssw0rd;Encrypt=false;";
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
因为 Microsoft.Data.SqlClient 链接数据库默认会验证服务器 TLS/SSL 证书,所以我们只需要加上自动信任服务器安全,即可跳过验证证书。
-
//示例 在DB链接字符串末尾加上 trustServerCertificate=true;
-
"ConnectionStrings": {
-
"Default": "Data Source=.;Initial Catalog=AuoUserdata;User Id=sa;Password=sa123;trustServerCertificate=true;"
-
}
trustServerCertificate
如果在使用 TLS 加密通信层时,应自动信任服务器传输层安全性 (TLS)(以前称为安全套接字层 (SSL))证书,则为 true 。 否则为 false。
备注
如果 trustServerCertificate 属性设置为 true,则在使用 TLS 加密通信层时,自动信任 SQL Server TLS/SSL 证书 。 换言之,Microsoft JDBC Driver for SQL Server 将不会验证 SQL Server TLS/SSL 证书。 默认值是 false。
如果将 trustServerCertificate 属性设置为 false,则 Microsoft JDBC Driver for SQL Server 将验证服务器 TLS/SSL 证书 。