我正在尝试创建一个Web服务客户端来连接到Web服务,我已经获得了一个关于如何连接到我使用Google翻译翻译的Web服务的非英文文档(我知道这是个坏主意,我问过一个说这种语言的人,也是一个开发人员为我翻译它,但我等着他回到我身边。 “使用双面SSL连接”确保连接。
我应该获得一个SSL证书(两个实际上是一个用于测试,一个用于prod)并向他们发送公共密钥。他们给我发了他们的公钥。
我计划从Windows服务调用他们的Web服务。那么我在为什么生成我的SSL证书呢?如果它是一个网站,那将是mywebsite.mydomain.com,但这适用于Windows服务。
我很遗憾为什么双方都需要SSL证书,但这可能是一个不同的问题。
答案 0 :(得分:1)
服务器端需要证书。您可以使用自生成证书。副作用是浏览器会说服务器没有被破坏。因此,如果您需要摆脱不可信任的错误,则需要从证书颁发机构购买有效证书。
在客户端,只有当您想通过证书登录客户端时才需要证书。客户端登录还有其他方法。 但是,如果您坚持使用客户端X509证书,请不要忘记更改您的应用程序(或您的服务)web.config。在Visual Studio中,它总是在没有安全性的情况下自动生成webservice调用,因此您需要添加或更改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>