2012-02-24 263 views
1

演員證書驗證失敗

-Asp.net網站 - 客戶端
-Wcf服務 - 服務器

這兩個應用程序在IIS-7上運行。

我想在兩個應用程序之間進行集成測試。客戶端通過「https」訪問服務器。 我已經創建了一個證書並將其分配給服務器。我還將該證書添加到「受信任的根證書頒發機構」中以被視爲有效的證書。當我通過我的瀏覽器(IE,Chrome ...)「打」服務器的服務時,證書似乎是有效的。但是,當我的客戶端應用程序試圖訪問該服務器然後我得到了以下錯誤:

Could not establish trust relationship for the SSL/TLS secure channel with authority **** ---> 
The remote certificate is invalid according to the validation procedure. 

有什麼辦法來跳過驗證程序或使該證書有效期爲我的客戶端應用程序?

只需要知道:
1.我無法購買證書,因爲我只會將其用於測試目的。
2.我不能對任何應用程序的代碼(服務器端)

回答

1

我終於弄明白了。

問題是以前(過期的)證書與已經添加到「受信任的根證書頒發機構」中的名稱相同。每當我通過「證書導入嚮導」(或通過MMC)安裝我的新證書時,嚮導都通知我它已成功添加。但是,它保留了以前的證書的實例而不覆蓋它。

0

的任何變化修改驗證回調始終返回true:

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policyErrors) => true; 

或是否違反了「不改變代碼'條件?

+0

似乎它確實違反了客戶端代碼的更改。 – andreadi 2012-02-24 15:36:39

+0

是的,不幸的是,它違反了這個條件。唯一的變化(如果這被認爲是一個變化),我可以在web.config文件。 – Schaliasos 2012-02-24 15:38:49

0

您是如何將證書安裝到受信任的根存儲中的?

如果你通過瀏覽器來做到這一點,很可能你只是將它添加到當前用戶。嘗試通過本地計算機帳戶的MMC管理單元添加它;這是我們安裝我們自簽名的IIS Express證書的地方,WCF似乎對他們感到滿意。

+0

我已經通過MMC在本地計算機上添加了它,並且在Web服務器上運行了這兩個應用程序。在改變之前,瀏覽器對該證書「抱怨」。之後,這似乎是有效的,但我的客戶的驗證程序仍然失敗。 – Schaliasos 2012-02-24 15:43:26

相關問題