我正在創建一個WCF應用程序,我將使用證書來加密客戶端和服務器之間的通信。在我的開發環境中,我想使用我使用makecert創建的測試證書/自簽名證書。 (只有服務器會有證書,客戶端不會)。爲什麼WCF抱怨身份檢查失敗?
我已經將證書安裝到證書存儲中,並且一切正常。在客戶端,由於我正在使用測試證書,因此certificateValidationMode當前設置爲「false」。
我的問題:
在客戶端上的app.config,我需要指定的標識元素,因爲這:
<endpoint ... >
<identity>
<dns value="<Name-Of-Server-Computer>"/>
</identity>
</endpoint>
如果我刪除標識元素,我收到以下錯誤消息在客戶端嘗試連接到服務器時:
傳出消息的身份檢查失敗。遠程端點的預期DNS標識是'localhost',但遠程端點提供了DNS索賠'服務器名稱'。如果這是一個合法的遠程端點,則可以通過在創建通道代理時明確指定DNS標識「Name-Of-Server-Computer」作爲EndpointAddress的標識屬性來解決問題。
因此,這裏是我的問題:
是身份檢查只使用測試/自簽名證書時做了什麼?當我使用從CA購買的真實可信的證書部署應用程序時,身份檢查仍會進行嗎?
有沒有辦法禁用身份檢查?我知道我可以創建自己的自定義證書驗證程序,但似乎沒有辦法使用這些驗證程序來覆蓋身份驗證。
>「這是一個安全檢查,我從來沒有禁用!」 只是爲了確保我明白。這是否意味着實際上有辦法禁用它?我確實瞭解檢查的好處...... – Nitramk 2009-10-27 12:00:50
我從來沒有想過要這樣做,所以我從來沒有想過要檢查是否有辦法關閉它。我不知道,對不起。 – 2009-10-27 15:10:04