我有一個Web服務受保護,要求消費的第三方應用程序通過客戶端證書。我已經在生產環境和客戶端提供Web服務上安裝了證書。此過程目前正在爲其他類似設置的客戶端正常工作。目前的版本是用.NET 3.5編寫的,並且可以在我的開發機器上以卡西尼(並且獨立運行)完美工作,但拒絕使用相同的代碼和證書設置在我的生產機器上工作。我已經確認提供者Web服務通過瀏覽器接受安裝在客戶端上的證書,但是當以編程方式將證書添加到Web服務調用時,我得到403,訪問被拒絕。在向受保護的Web服務發出請求之前,我輸出添加到該調用中的證書的指紋,並且確實附加了正確的證書。我的想法是,在某個地方,它不能訪問證書的私鑰部分。通過客戶端證書只適用於我的機器
任何想法?
注意:我給IIS進程訪問相關的〜/ crypto目錄。
這是C#和.NET 3.5
本文對於診斷新環境中的問題也很有幫助:http://support.microsoft.com/kb/901183 – 2008-12-03 15:11:53
winhttpcertcfg.exe對於正確診斷至關重要。 – 2008-12-05 02:18:31