我们正在设置一个新的SharePoint,但我们还没有有效的SSL证书。我想在它上面调用列表web服务来检索一些关于设置的元数据。但是,当我尝试这样做时,我得到了异常:
基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。
嵌套的异常包含错误消息:
根据验证过程,远程证书无效。
这是正确的,因为我们使用的是临时证书。
我的问题是:如何告诉.Net web服务客户端(SoapHttpClientProtocol)忽略这些错误?
发布于 2008-09-20 20:51:42
在遇到这个问题时,我使用的方法是将临时证书的签名者添加到相关计算机上的受信任机构列表中。
我通常使用CACERT创建的证书进行测试,并将它们添加到我的受信任机构列表中。
这样做意味着您不必向应用程序中添加任何自定义代码,并且它可以正确地模拟部署应用程序时会发生的情况。因此,我认为这是以编程方式关闭检查的一个更好的解决方案。
发布于 2009-01-09 11:57:09
或者,您可以注册一个忽略认证错误的回调委托:
...
ServicePointManager.ServerCertificateValidationCallback = MyCertHandler;
...
static bool MyCertHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors error)
{
// Ignore errors
return true;
}
发布于 2009-05-14 21:10:32
就像Jason S的回答:
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
我把它放到我的Main中,查看我的app.config
,并在调用那一行代码之前测试是否有(ConfigurationManager.AppSettings["IgnoreSSLCertificates"] == "True")
。
https://stackoverflow.com/questions/109186
复制相似问题