当我尝试使用HttpWebRequest从我的开发服务器检索页面时,我收到了一个Web异常:

底层连接已关闭:无法为SSL / TLS安全通道建立信任关系。根据验证程序,远程证书无效......

我试图读取的网址是一个普通的 http://myserver.com/mypage .asp - 没有SSL。生产服务器有一个有效的证书,所以这应该不是问题,但我们的开发服务器不是。

帮助!

有帮助吗?

解决方案 2

在这里找到了一个很好的答案:

http://blog.jameshiggs.com/2008/05/01/c-how-to-accept-an-invalid-ssl-certificate-programmatically/

不适合制作,但解决了我的开发服务器问题。

其他提示

不幸的是,@ DavidLively提供的链接不再可用。您可以使用Web存档找到它: http://web.archive.org/web/20120830211353/http://blog.jameshiggs.com/2008/05/01 / C-如何对接受-AN-无效的SSL证书-编程/

此外,根据该代码,我这样做是为了允许任何证书,无论是否有效(不要在生产代码中使用它!):

ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AcceptAnyCertificate);

private static bool AcceptAnyCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors)
{
    return true;
}

如果您在将证书添加到测试服务器的受信任的根证书颁发机构后仍遇到此问题,请确保为所有用户添加该证书,而不仅仅是当前用户。

更多信息: http://brainof-dave.blogspot。 COM / 2008/08 /远程证书是-无效-according.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top