处理自签名证书的最佳方式

时间:2017-06-12 18:41:21

标签: c# httpwebrequest webrequest self-signed

我最近遇到了一个问题,我试图从网站上获取资源。该网站已与自签名证书相关联。当我通过WebRequest请求资源时,它会抛出以下错误:

  

无法为SSL / TLS安全通道建立信任关系

我确实在寻找解决方案。我不想完全禁用检查证书。简而言之,我无法找到令人信服的答案。请告诉我处理自签名证书的最佳方法。

1 个答案:

答案 0 :(得分:0)

首先,重要的是要知道,此异常阻止您通过检查站点证书信任来访问可能的虚假Web服务器。

自签名证书可以信任,但您必须安装它的根CA到系统可信CA存储

您坚持信任由自签名证书签名的服务器而不将其根ca安装到受信任的CA存储中,您可以强制检查机制信任任何内容:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

或者更好的方法将此强制信任仅设置为HttpWebRequest实例:

var request = (HttpWebRequest)HttpWebRequest.Create(myUri);
request.ServerCertificateValidationCallback = delegate { return true; };