SSL 提供程序,错误:0 - 目标主体名称不正确。尝试连接到 SQL 数据库时

SSL Provider, error: 0 - The target principal name is incorrect. when trying to connect to SQL database

提问人:incognito not sure 提问时间:7/9/2023 最后编辑:Charliefaceincognito not sure 更新时间:7/9/2023 访问量:237

问:

它在我的包管理器控制台中说已成功与服务器建立连接,但在登录过程中发生错误。(提供程序:SSL 提供程序,错误:0 - 目标主体名称不正确。我正在尝试通过我的 C# 应用程序初始化和播种数据库,这是在我尝试 Update-Database 之后。

我几乎尝试了我在网上找到的所有解决方案。这就是我的连接字符串现在的样子。

“DefaultConnectionStrings”: “数据源=(LocalServer);初始目录=(DatabaseIamtryingtoaccess);集成安全性=True;池化=False;Trusted_Connection=真;加密=假;TrustServerCertificate=真;用户实例 = False”

我已经换掉了证书,也没有使用任何证书,问题似乎并没有消失。

C# SQL 服务器 ado.net SQLClient

评论

0赞 nbk 7/9/2023
这是因为您设置了 TrustServerCertificate=True;请参阅 learn.microsoft.com/en-us/dotnet/api/... 请参阅 mssqltips.com/sqlservertip/3299/... 如果你真的想要一个SSL连接
1赞 Charlieface 7/9/2023
Data Source=(LocalServer)不是我熟悉的语法。对于本地计算机,请使用 或 。显然,如果您使用的是加密连接,则需要一个与计算机名称匹配的证书,并且该证书由您的计算机信任的 CA 颁发(而不是自签名证书)Data Source=.Data Source=(local)
0赞 AlwaysLearning 7/9/2023
那么,您实际使用哪个驱动程序进行连接呢?例如,对于版本 5 及更高版本,属性不是 or 、it's 或 。此外,除非在较新的驱动程序上使用该属性来替代它,否则应在实例证书的 CN 或其 SubjectAltName 属性之一中提及在属性中使用的名称或 IP 地址。Microsoft.Data.SqlClientEncryptTrueFalseOptionalMandatoryStrictHostNameInCertificateServer
0赞 incognito not sure 7/11/2023
@nbk我有点困惑。在此之前,我使用了 encrypt = false 并排除了信任服务器证书 = true,但结果仍然相同。从我在网上收集的信息来看,我相信它应该有助于完全绕过证书链,并且由于我使用的是自签名证书,它不会帮助我生病证书验证并允许我立即连接。
0赞 nbk 7/11/2023
默认情况下,SQL Browser(Service) 处于停用状态)如果您安装了一台新服务器,您应该阅读一个或多个教程,了解如何配置它,如果没有配置,什么都不会进行

答: 暂无答案