2012-07-19 99 views
0

我有一个在IIS下运行的WCF服务,该服务配置为使用SSL,并且已经安装并运行了有效证书。 访问该网站与从控制台应用程序通过HTTPS/SSL消费WCF服务

https://my_website/anypage.aspx 

我可以访问该页面。 访问URL

https://my_website/mywcfservice.svc 

我可以看到web服务页面: “你已经创建了一个服务来测试这项服务,你需要创建一个客户端,并使用它来调用服务(...) ”。请注意,无论如何,我仍然收到警告页面,显示“此网站的安全证书有问题”,点击“继续访问此网站”。

在服务器端

,在web.config配置有:

<security mode="Transport"> 
    <transport clientCredentialType="None" /> 
</security> 

... ...

在客户端,我不使用代理或配置文件。我只使用代码连接,如:

this.Channel = new ChannelFactory<T>(binding, new EndpointAddress(serviceUri)); 
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Mode = SecurityMode.Transport; 
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.None; 
this.Channel.CreateChannel(); 

我有强烈的规则,从客户端的代码连接,所以我不能用其他的方式。渠道很好打开,但当我打电话给任何方法时,我收到错误“根据验证程序,远程证书无效。”

没有https工作正常。

在客户端,我在“受信任的根证书颁发机构\证书”中拥有许多证书。所有这些在服务器端也是可信的。

哪里可能是问题,在客户端或服务器端? 也许我需要指定一个非常精确的证书在客户端使用?

任何帮助感谢,谢谢。

+0

选中此http:// stackoverflow。com/questions/9058096/how-to-call-default-certificate-check-when-overriding-servicepointmanager-se – iSamnium 2012-07-19 17:57:36

回答

3

请注意,无论如何,我仍然会收到警告页面,显示“该网站的安全证书有问题”,点击“继续访问本网站”。

您的客户机不信任您在服务器上使用的SSL证书。您收到的WCF错误等同于您尝试在浏览器中访问该服务时收到的消息。

在客户端,我在“受信任的根证书颁发机构\证书”中拥有许多证书。所有这些在服务器端也是可信的。

您需要配置您的客户机以正确信任您的SSL证书。一旦您可以在浏览器中访问该服务而无任何错误,您的客户端代码应该可以正常工作。

+0

谢谢你,现在正在工作! – user810917 2012-07-20 10:43:08