问题:C# API 无法为 SSL/TLS 安全通道建立信任关系

Question: C# API Could not establish trust relationship for the SSL/TLS secure channel

我刚刚在调用 API 时遇到以下错误。 “无法为 SSL/TLS 安全通道建立信任关系”

我用 RemoteCertificateValidationCallback 修复了它 class:

ServicePointManager.ServerCertificateValidationCallback += 
            new RemoteCertificateValidationCallback(Helpers.CertificateHelper.ValidateCertificates);

我刚刚应用了在这里找到的一段代码:How to verify X509 cert without importing root cert?

现在它工作正常,但是..这是要走的路吗?可以吗,还是不用这个方法?

当您的服务器根据请求检查证书时,它将尝试验证整个证书链。 您使用的代码基本上告诉您的服务器跳过验证根 ca。你不应该这样做,因为正如 Crypt32 所说,这会让你更容易受到攻击。

如果您收到的错误告诉您缺少根证书,您应该确保您的服务器信任这些证书

如果这是 windows 服务器,您可以将它们安装在受信任的根证书颁发机构中 - 对此有一个解释 here

注意您信任的证书 - 确保您的来源是可信的

如果这不起作用,您应该 post 在此处提供您遇到的确切错误,我们也许能够更好地理解问题