2010-04-12 79 views
3

我有一个正在联系web服务的ASP.NET网站。一切工作正常通过http连接,但当我尝试https://它无法连接。我似乎没有从网站得到任何错误,web服务日志什么也没有显示,意味着什么都没有连接到它。在asp.net应用中连接到https:// webservice

我可以连接到我的https:// webservice从像soapclient.com和请求信息的网站,所以web服务和端口正在工作。

有什么特别的我应该做的,以便连接到一个正常的http://在.NET中的一个https:// web服务?我现在所做的只是改变它连接到我的安全URL的URL。

我使用 ASP.NET 2,IIS7

在此先感谢。

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

回答

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

+0

感谢。这似乎排除了这个问题。我确实通过点击IE安装证书并选择安装,我甚至选择了你提到的位置,因为我知道它应该在那里,但由于某种原因,它没有安装它。 .NET看起来与IE的地方不同,因为我可以在IE中查看web服务没有问题? – webnoob 2010-04-12 11:38:38

+0

IE和.NET都使用Windows证书存储。不知道...也许它确实工作,你只需要重新启动一些东西? – 2010-04-12 12:08:38

+0

我在添加证书之前重新启动了。我想这只是其中一件奇怪的事情......再次感谢您的帮助。 – webnoob 2010-04-12 12:32:51

0

看起来您的客户端遇到证书验证错误,因为您的服务器证书是自签名的。

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

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

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