2012-12-14 75 views
1

如何配置WCF使用HTTP(无ssl)和客户端证书?如何配置WCF以使用HTTP和客户端证书?

在服务方面,我尝试了以下:

<bindings> 
      <basicHttpBinding> 
       <binding name="binding1"> 
        <security mode="TransportCredentialOnly"> 
         <transport clientCredentialType="Certificate"></transport> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings 

但抱怨说:

Certificate-based client authentication is not supported in TransportCredentialOnly security mode. Select the Transport security mode. 

感谢,

+1

当你把它设置为'Transport'时会发生什么? –

+0

Transport意味着它需要SSL和HTTPS地址,这不是我想要的。我只需要测试客户端证书的工作。 –

回答

0

我不认为我完全明白你的问题。

如果你想配置你绑定的安全性(basicHttpBinding)来使用客户端证书(来验证客户端),据我所知,唯一的方法就是使用消息安全性,你可以找到http wcf samples中的示例。

如由此导致的异常说明,也on a Distributed Services Support Team blog

注意:使用TransportCredentialOnly模式,则不能使用基于证书的客户端身份验证:基于证书的 客户端身份验证不TransportCredentialOnly安全模式支持。

0

我从你的问题中得到的理解是你想使用你的自定义证书,它还没有被CA(证书颁发机构)颁发。

在这种情况下,您需要在服务器上安装相同的服务器,并且如果您使用的是.NET,则它们也需要在IIS中与您的网站连接。

希望这项工作

+0

这是不正确的,也不是与我的问题有关。仅供参考,应在哪些地方安装证书。根CA应安装在所有涉及的服务器(服务和客户端)上,但客户端证书只需安装在客户端机器上。 –