网页有时无法使用SSL

时间:2017-09-11 06:44:57

标签: c# ssl webclient

我们在Windows Server 2012 R2上的IIS上有一个应用程序(WebAPI,我们将其命名为“X”)。有时“X”无法连接到Web上的其他独立API。我们收到了错误:

  

基础连接已关闭:无法建立信任   SSL / TLS安全通道的关系。

     

根据验证,远程证书无效   过程

我做了一些测试,同时“X”无法下载https://google.com(使用WebClient类),但我可以在当前服务器上使用网络浏览器进行浏览。

此外,我试图忽略整个应用程序的服务器证书错误(下面的代码),但它也没有帮助。

protected void Application_Start()
{    
    ServicePointManager.ServerCertificateValidationCallback += 
        (sender, cert, chain, sslPolicyErrors) => true;
}

我的客户连接到“X”没问题。此外,当在一台服务器上发生错误时,我能够在具有不同“X”实例的其他服务器上成功连接(例如https://google.com。)

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

听起来您的IIS Web应用程序在用户上下文中运行,该用户上下文无法访问计算机上的证书。但是,浏览器在具有访问权限的不同用户上下文下运行。这解释了您的测试结果。

如果用户确实可以访问证书,那么您可能需要从独立的API下载证书。请参阅:http://brainof-dave.blogspot.com.au/2008/08/remote-certificate-is-invalid-according.html

查看这些资源: https://blogs.msdn.microsoft.com/saurabh_singh/2009/07/02/required-permissions-when-calling-a-web-service-using-client-certificate-for-authentication-in-an-asp-net-web-application/

https://technet.microsoft.com/en-us/library/cc772237(v=ws.10).aspx