2014-01-30 320 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>