2014-01-30 271 views
0

我想创建一个Web服务客户端来连接到一个Web服务,我已经给出了一个关于如何连接到我使用Google翻译的Web服务的非英文文档(我知道,是一个坏主意,我问过一个说这种语言的人,也是一个开发人员为我翻译它,但我正在等他回到我身边)。该连接是“使用双面SSL连接”进行保护的。Web服务客户端的SSL证书

我应该得到一个SSL证书(其中两个实际上是一个用于测试,另一个用于产品)并将它发送给公钥。他们寄给我他们的公钥。

我打算从Windows服务调用他们的Web服务。那么,我为什么要生成我的SSL证书?如果它是一个网站,它将为mywebsite.mydomain.com,但这是为Windows服务。

我迷失了为什么双方都需要SSL证书,但这可能是一个不同的问题。

回答

1

服务器端需要证书。您可以使用自我生成证书。副作用是浏览器会说服务器没有被调用。因此,如果您需要摆脱不信任的错误,您需要从证书颁发机构购买有效的证书。

在客户端,只有在想要通过证书登录客户端时才需要证书。还有其他的客户端登录方法。 但是,如果您坚持使用客户端X509证书不要忘记更改您的应用程序(或您的服务)web.config。在Visual Studio中,它总是自动生成没有安全性的web服务调用,因此您需要添加或更改customBinding以包含httpsTransport标记,如下所示。

<bindings> 
    <customBinding> 
     <binding name="MYWEBBINDING"> 
      <textMessageEncoding messageVersion="Soap12" /> 
      <httpsTransport authenticationScheme="Digest" requireClientCertificate="true" /> 
     </binding> 
    </customBinding> 

,并在客户端部件引用它

<client> 
    <endpoint address="https://WEBSERVICESERVER/WEBSERVICE/WEBSERVICE.asmx" 
    binding="MYWEBBINDING" bindingConfiguration="WEBSERVICESoap" 
    contract="WEBSVCPROXY.WEBSERVICESoap" name="WEBSERVICESoap" /> 
</client>