簡體   English   中英

針對不受信任的 SSL 端點生成 WCF 代理

[英]Generating WCF proxy against untrusted SSL endpoint



我需要為我們的客戶公開的服務生成一個 WCF 代理。 該服務被非常嚴格地鎖定,所以這很困難。 另外,我是 WCF 的新手,所以我可能遺漏了一些明顯的東西......

客戶端只向我們的生產服務器打開了防火牆 - 所以我無法在我的開發機器上從 Visual Studio 生成代理。 此外,該服務僅在 HTTPS 上公開。 它要求我們使用客戶端證書進行身份驗證......

我希望在生產機器上運行 svcutil 來生成 .cs 文件,然后將文件復制到本地。 但是 svcutil 拒絕運行,因為客戶端使用的是自簽名證書。 它給了我以下錯誤:

基礎連接已關閉:無法為 SSL/TLS 安全通道建立信任關系。 根據驗證程序,遠程證書無效。

我嘗試將服務的證書添加為受信任的根證書,但這不起作用。 在證書 MMC 管理單元中,我得到“Windows 沒有足夠的信息來驗證證書”。

有什么方法可以繞過 svcutil 正在執行的安全檢查嗎?

當我遠程連接到生產服務器時,我可以從 IE 成功瀏覽到 WSDL。 我只需點擊“繼續瀏覽本網站(不推薦)”。 我還必須 select 安裝的客戶端證書,它工作正常。 然后我可以通過 IE 手動下載 WSDL 和 XSD 文件。 因此,另一種選擇可能是從 WSDL 和 XSD 的本地副本生成 WCF 代理,而不是針對實時服務運行 svcutil。 但我不知道如何正確地做到這一點。

我嘗試將 static WSDL 和 XSD 文件放在我們托管的另一個網站上,並將 <xs:import schemaLocation="..."/> 屬性更改為指向新站點。 但是當我對這個站點運行 svcutil 時,我得到了一堆關於重復類型聲明的錯誤 - 例如:

錯誤:導出期間生成的架構出現驗證錯誤:來源:行:1 列:1415 驗證錯誤:complexType ' http://[domain-name]/Promotions/2009-02-17:InsertReferralPromo_Response '已經被宣布。


我是否錯過了一些明顯的方法來做到這一點? 還是我們應該要求客戶放松他們的安全性? :)

感謝你給與我的幫助...
理查德

您的問題似乎與安全性無關。 您下載的 WSDL 和架構似乎存在問題。

一個建議是將所有文件放在磁盤上的目錄中,而不是 web 站點上。 如有必要,請刪除 schemaLocation 屬性。

但是,這似乎沒有幫助。 您可以嘗試使用 XMLSpy 驗證這些文件。

當您瀏覽到 WSDL 時,單擊證書,查看證書,然后安裝證書。

然后嘗試再次運行 svcutil。

暫無
暫無

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

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