相同的url不同的环境 - 一个成功另一个失败,出现SSL错误

时间:2017-04-19 11:37:18

标签: c# .net ssl

网址要求某些网站提供保修信息。

出于某种原因,我需要将系统时钟快进几天以进行测试。浏览器在两个环境中的行为是一致的 - 我得到了#34;证书错误 - 继续访问此网站(不推荐)。"当我将时钟设置为当前时间时,保修信息按预期返回。

然而,两个环境中的相同代码表现不同。我正在使用

(HttpWebResponse) req.GetResponse();

一个例外失败:"基础连接已关闭:无法为SSL / TLS安全通道建立信任关系。"这是预期的,但另一个成功运行响应中的保修信息。

这两个系统之间没有特殊的设置,我只是无法弄清楚为什么代码表现不同 - 成功的。

谢谢,

1 个答案:

答案 0 :(得分:0)

事实证明,成功的程序执行程序的其他部分如下所示,但失败的程序使用默认行为。

public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{
  public TrustAllCertificatePolicy() 
  {}

  public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,WebRequest req, int problem)
  {
    return true;
  }
}

System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();