.NET 7中Scaffold-DbContext证书链不受信任问题解决
解决EF Core Scaffold-DbContext的SSL证书信任错误
方案1:临时绕过证书验证(仅开发环境适用)
直接在连接字符串中添加TrustServerCertificate=true参数,强制客户端信任服务器的SSL证书,修改后的完整命令如下:
Scaffold-DbContext "Server=SQL.mysite.com;Initial Catalog=db_data;User Id=db_admin;Password=pass123;Persist Security Info=True;Encrypt=true;TrustServerCertificate=true" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context "MyDataDbContext" -DataAnnotations -Force
注意:此方法仅适合开发测试场景,生产环境绝对不能用,会带来安全风险。
方案2:手动信任服务器证书(推荐长期使用)
把SQL Server的SSL证书导入本地电脑的「受信任的根证书颁发机构」,步骤如下:
- 打开Windows的「运行」(Win+R),输入
mmc打开控制台 - 点击「文件」→「添加/删除管理单元」,选择「证书」,点击「添加」,选择「计算机账户」后完成配置
- 在控制台左侧展开「证书(本地计算机)」→「受信任的根证书颁发机构」→「证书」
- 右键点击「证书」→「所有任务」→「导入」,按照向导导入SQL Server服务器的SSL证书文件
- 导入完成后,重新执行你的Scaffold-DbContext命令即可
方案3:使用可信CA颁发的证书(生产环境最佳实践)
如果是生产环境,建议让SQL Server使用由公共可信CA(比如Let's Encrypt、DigiCert)或者企业内部CA颁发的SSL证书,这样客户端会自动信任证书链,无需额外配置。
内容的提问来源于stack exchange,提问作者Fillo
相关产品推荐
相关产品推荐

