解决 C# 连接 SQL Server 2008 R2 的 SSL 证书信任问题

c#连接sqlserver 2008r2数据报错

c# 连接不上sqlserver 2008R2

var _connectionString =  "Server=sqlserver服务中器ip;Database=数据库名;User Id=sa;Password=sa密码;";
var conn = new SqlConnection(_connectionString);

错误信息:

数据库连接失败: 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL 提供程序, error: 0 - 证书链是由不受信任的颁发机构颁发的。)

解决 C# 连接 SQL Server 2008 R2 的 SSL 证书信任问题

您遇到的错误表明连接已建立,但由于 SSL 证书不受信任而无法完成登录过程。这是 SQL Server 2008 R2 中常见的安全相关问题。

解决方案

方法1:在连接字符串中添加信任服务器证书选项

修改您的连接字符串,添加 TrustServerCertificate=true

var _connectionString = "Server=sqlserver服务中器ip;Database=数据库名;User Id=sa;Password=sa密码;TrustServerCertificate=true;";

方法2:完全禁用加密(仅限测试环境)

如果这是一个内部测试环境,您可以完全禁用加密:

var _connectionString = "Server=sqlserver服务中器ip;Database=数据库名;User Id=sa;Password=sa密码;Encrypt=false;";

方法3:安装有效证书(生产环境推荐)

对于生产环境,最佳实践是:

  1. 从受信任的证书颁发机构获取有效证书
  2. 在 SQL Server 上安装此证书
  3. 配置 SQL Server 使用此证书

方法4:修改客户端配置

您可以在客户端计算机上修改配置以信任 SQL Server 的证书:

  1. 打开 "运行" → 输入 mmc
  2. 添加"证书"管理单元
  3. 找到 SQL Server 的证书并标记为受信任

其他注意事项

  • 确保 SQL Server 已启用远程连接
  • 检查防火墙设置是否允许 1433 端口通信
  • 确认 SQL Server 配置管理器中的网络配置正确
  • 考虑升级 SQL Server 2008 R2(已结束扩展支持)

对于生产环境,方法1是快速解决方案,但方法3是最安全的长远解决方案。

posted @ 2025-07-30 09:10  panbin_2006  阅读(103)  评论(0)    收藏  举报