运行API代码时遇SSL Provider错误:SQL Server证书信任问题
解决SQL Server连接时“证书链由不受信任的机构颁发”的SSL错误
这个错误是因为客户端不信任SQL Server使用的SSL证书导致的,常见于使用自签名证书或内部CA颁发证书的场景,以下是几种可行的解决方法:
方法一:临时禁用SSL证书验证(仅开发环境适用)
在数据库连接字符串中添加TrustServerCertificate=True参数,强制客户端跳过证书信任验证。
示例连接字符串:
Server=YOUR_SERVER_NAME;Database=WalksDB;User Id=YOUR_USERNAME;Password=YOUR_PASSWORD;TrustServerCertificate=True;
如果使用EF Core,也可以在配置DbContext时直接追加该参数:
builder.Services.AddDbContext<WalksDbContext>(options => options.UseSqlServer( builder.Configuration.GetConnectionString("DefaultConnection") + ";TrustServerCertificate=True"));
注意:此方法仅适合开发测试环境,生产环境禁用证书验证会带来安全风险,绝对不推荐使用。
方法二:将证书导入客户端信任存储(生产环境推荐)
通过将SQL Server的SSL证书导入到客户端的受信任根证书存储,从根本上解决信任问题:
- 获取SQL Server的SSL证书:
- 打开SQL Server配置管理器,展开“SQL Server网络配置” → 选择对应实例的“协议”
- 右键点击“TCP/IP” → 属性 → 切换到“证书”选项卡,选中当前使用的证书,点击“查看”
- 在证书详情窗口,切换到“详细信息”选项卡,点击“复制到文件”,按向导将证书导出为
.cer格式文件
- 安装证书到受信任根存储:
- 双击导出的
.cer文件,点击“安装证书” - 选择“本地计算机”,点击“下一步”
- 选择“将所有证书放入下列存储”,点击“浏览”,选择“受信任的根证书颁发机构”
- 完成安装后,重启你的API应用即可生效
- 双击导出的
方法三:检查SQL Server证书配置(可选)
如果是SQL Server证书配置问题,确认证书是有效的、未过期,且绑定到了正确的SQL Server实例上。
内容的提问来源于stack exchange,提问作者Sanjeev singh kushvaha
相关产品推荐
相关产品推荐

