【问题标题】:Connect to https:// webservice in asp.net app在 asp.net 应用程序中连接到 https://webservice
【发布时间】:2010-04-12 10:39:59
【问题描述】:

我有一个正在联系网络服务的 ASP.NET 网站。通过 http 连接一切正常,但是当我尝试 https:// 时,它无法连接。我似乎没有从该网站收到任何错误,并且 Web 服务日志没有显示任何内容,这意味着没有任何连接。

我可以从soapclient.com 之类的网站连接到我的https:// 网络服务并请求信息,因此网络服务和端口正在工作。

为了通过 .NET 中的普通 http:// 连接到 https:// 网络服务,我应该做些什么特别的事情?我现在所做的只是将它连接到的 URL 更改为我的安全 URL。

我正在使用 ASP.NET 2、IIS7

提前致谢。

编辑:刚刚发现实际错误消息:底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系 - 在我看来,这告诉我我没有将自签名证书添加到已安装的证书中在服务器上...但我有...

【问题讨论】:

    标签: asp.net iis-7 web-services


    【解决方案1】:

    您需要在运行 ASP.NET 网站的服务器的本地计算机存储中的受信任的根证书颁发机构下添加您的自签名证书。

    将证书从 webservice 服务器导出为 .cer 文件,并将其复制到运行 ASP.NET 网站的服务器。然后,在该服务器上:

    1. 双击 .cer 文件并安装证书
    2. 在向导中,选择存储作为受信任的根证书颁发机构下的本地计算机文件夹。
    3. 您可能需要重新启动 IIS 或服务器

    在本页底部的“在客户端计算机上安装自签名证书”下有一些很好的说明:http://webhelp.esri.com/arcgisserver/9.3/dotNET/index.htm#setting_up_ssl.htm

    【讨论】:

    • 谢谢。这似乎解决了这个问题。我确实通过 IE 安装了证书,方法是单击它并选择安装,我什至选择了你提到的位置,因为我知道它应该在那里,但由于某种原因它没有安装它。 .NET 是否看起来与 IE 不同,因为我可以在 IE 中毫无问题地查看 Web 服务?
    • IE 和 .NET 都使用 Windows 证书存储。不确定...也许它确实有效,您只需要重新启动吗?
    • 我在添加证书之前进行了重启。我想这只是其中一件奇怪的事情......再次感谢您的帮助。
    【解决方案2】:

    您的客户端似乎遇到了证书验证错误,因为您的服务器证书是自签名的。

    在调用 Web 服务之前,尝试在您的网站代码中包含以下行 (C#)。这将告诉 .NET 忽略所有证书验证错误:

    ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; };
    

    这显然不应该在生产环境中使用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多