Visual Studio调试SQL Server连接时SSL证书信任问题求助
解决调试模式下SQL Server SSL证书信任问题
针对你遇到的调试时连接SQL Server报SSL证书链不被信任的问题,给你几个实用的解决思路:
忽略编辑器属性提示,直接写入信任配置
编辑器的绿色下划线提示大概率是因为配置文件的schema未更新,不识别TrustServerCertificate或encrypt属性,但实际运行时这些属性是有效的。直接修改连接字符串,加入TrustServerCertificate=True:<add name="Company Database" connectionString="Data Source=Server\Instance;Initial Catalog="DBName";Persist Security Info=True;User ID=User;Password=Pass;TrustServerCertificate=True" providerName="Microsoft.Data.SqlClient" />保存后直接启动调试,不用理会编辑器的提示。
导入内网CA证书到本地信任库
如果公司SQL Server使用的是内网CA签发的证书,你需要把该CA证书导入到本地电脑的「受信任的根证书颁发机构」中:- 找到公司内网的CA证书文件(通常是.cer格式)
- 右键点击证书,选择「安装证书」,按向导选择「本地计算机」,然后将证书放置在「受信任的根证书颁发机构」存储区
- 重启Visual Studio和调试进程,再尝试连接
更新Microsoft.Data.SqlClient包版本
如果你已经切换到Microsoft.Data.SqlClient但问题依旧,可能是引用的包版本过旧。打开NuGet包管理器,搜索Microsoft.Data.SqlClient,更新到最新的稳定版本,新版本对SSL相关属性的支持更完善。检查SQL Server的加密配置
打开SQL Server配置管理器,找到对应实例的「SQL Server网络配置」,查看「协议」中的「强制加密」设置:- 如果服务器端设置为「是」,那必须确保本地信任证书,或者连接字符串中加入
TrustServerCertificate=True - 如果不需要强制加密,可以将其改为「否」(需要重启SQL Server服务生效)
- 如果服务器端设置为「是」,那必须确保本地信任证书,或者连接字符串中加入
内容的提问来源于stack exchange,提问作者steve_flynn
相关产品推荐
相关产品推荐

