簡體   English   中英

SSL WCF“無法與權限'localhost'建立SSL / TLS安全通道的信任關系

[英]SSL WCF "Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost'

我有一個與http地址完美配合的WCF Web服務,但從那時起我需要確保它可以在https上運行。

因為我用IIS 7,這個過程是很容易得到網站的https結合起來,使用本指南運行在這里

我打開了一個瀏覽器,得到了通常的安全提示,但是在添加異常后一切正常。

然后我決定安裝證書,因為證書是本地主機,服務器和客戶端是同一台機器 - 並讓向導自動檢測位置。

我回到了我的WCF CLIENT代碼,這是調用IIS(現在是https)托管的Web服務的客戶端,並在2個位置更改了綁定。

  1. 將結束點的地址更改為https
  2. 將安全模式更改為傳輸

跑了代碼然后得到這個錯誤:

“無法與權限'localhost'建立SSL / TLS安全通道的信任關系。”

最后我回到IIS並在SSL設置下,將設置更改為接受客戶端證書,並嘗試檢查是否需要檢查,兩次都產生相同的錯誤。

知道如何解決這個問題嗎?

更新問題1已修復 - 這是因為證書已發布到machine_name,我在配置中使用了localhost。

現在,這是有效的我得到另一個問題:

https:// [machine_name] /Downloads.svc上沒有可以接受該消息的端點。 這通常是由錯誤的地址或SOAP操作引起的。 有關更多詳細信息,請參閱InnerException(如果存在)。“

內部異常=“遠程服務器返回錯誤:(404)未找到。”

檢查IIS站點的web.config,並將DNS綁定更改為localhost。

仍然很開心,但根據微軟的說法,這正是WCF應該很好的原因,因為它將編碼邏輯中的傳輸分開,但到目前為止,我必須告訴你,它看起來真的很復雜。

更新

關掉windows防火牆,沒幫......

這是我在web.config中的綁定

<basicHttpBinding>
     <binding name="IncreasedTimeout" 
              closeTimeout="12:00:00" openTimeout="12:00:00"
              receiveTimeout="12:00:00"
              maxReceivedMessageSize="1000000"
              sendTimeout="12:00:00">
       <security>
         <transport></transport>
       </security>
     </binding>
</basicHttpBinding>

您很可能需要為這兩個協議添加顯式基地址 ,以便WCF知道您要綁定到這兩個協議。 嘗試將此添加到您的<service>定義:

<host>
    <baseAddresses>
        <add baseAddress="http://your-hostname-here/" />
        <add baseAddress="https://your-hostname-here/" />
    </baseAddresses>
</host>

此外,請確保您通過計算機的WINS / DNS名稱訪問服務,或者需要向IIS下的網站實例添加顯式主機標頭。

暫無
暫無

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

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