簡體   English   中英

通過WCF客戶端調用Java SOAP 1.1服務

[英]Calling Java SOAP 1.1 Service by WCF Client

為什么用JAVA編寫的SOAP1.1 Web服務可能無法識別WCF客戶端傳遞的有效證書?

我們從服務中收到500錯誤,表明該服務不信任我們的證書。 與SOAP標准的WCF實現和Java服務所期望看到的有所不同嗎?

這是WCF配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.serviceModel>

    <behaviors>
      <endpointBehaviors>
        <behavior name="ourCert">
          <clientCredentials>
            <clientCertificate x509FindType="FindBySubjectName" findValue="MyCompany"/>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <bindings>
      <customBinding>
        <binding name="wsHttpSoap11" >
          <textMessageEncoding messageVersion="Soap11" />
          <httpsTransport requireClientCertificate="true" />
        </binding>
      </customBinding>
    </bindings>

    <client>
      <endpoint address="https://{site}.com/site.wsdl"
                binding="customBinding"
                behaviorConfiguration="ourCert"
                bindingConfiguration="wsHttpSoap11"
                contract="ServiceContract">
      </endpoint>
    </client>

  </system.serviceModel>

  <system.net>
    <defaultProxy useDefaultCredentials="true" />
  </system.net>

</configuration>

證書是根據信任鏈驗證的,因此生成框架不相關。 還要注意,您使用傳輸級別證書,因此SOAP不太可能成為錯誤源。

我建議您執行以下操作:

  1. 為此服務構建一個工作的Java客戶端(使用openssl生成證書,或者使用jks格式的證書)。 驗證客戶端是否正常工作。
  2. 將jks證書轉換為pfx,並將其與WCF客戶端一起使用。 WCF客戶端現在也應該正在工作。

如果WCF仍然失敗,則可以比較java和wcf客戶端生成的傳出SOAP(可以使用fiddler捕獲它)。 這可能暗示其他差異(也許您實際上需要消息證書而不是傳輸,也許您的肥皂版本不匹配,等等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM