2009-08-16 143 views
1

我必須從Web應用程序建立一個XMLRPC站點的連接,該應用程序使用X.509證書進行身份驗證。在我的開發機器(Vista)上,我的密鑰安裝在我的用戶下,並位於我的個人證書存儲器中;如果我跑我的代碼,它工作得很好(加載該文件中的鍵):IIS7&X.509證書:從asp.net連接到Web服務 - 在哪裏存儲證書?

X509Certificate clientcert = new X509Certificate(this.certFile, this.password); 
request.ClientCertificates.Add(clientcert); 

但我需要一個Windows 2008 Web服務器上安裝該應用程序,我沒能找出如何使它到使用這個證書文件。

我想我需要導入所有對應的「父」鍵,所以我做到了。 我嘗試將它們全部導入到受信任的根證書存儲區,但沒有運氣:它仍然表示它不正常。

我應該使用一個模擬帳戶,並擁有所有證書嗎? IIS7應該配置爲無論如何與這個用戶/證書商店?

回答

0

唯一的解決辦法是

1)導入根鑰匙插入LOCAL_MACHINE \根證書存儲

2)導入根密鑰到(用戶)\根證書存儲

3)在asp.net代碼,使用模擬像:

<identity impersonate="true" userName="(your user)" password="(your password)" />

出於某種原因,但是IIS7的所有的p正在NT_AUTHORITY \ NETWORK用戶下運行程序,將證書安裝到NETWORK用戶的存儲沒有任何用處。

0

我相信有兩個證書存儲,IIS可以訪問:機器商店和它的服務商店。在mmc.exe中,打開證書管理單元,並連接到本地計算機的商店。在Personal \ Certificates中,您應該找到服務器證書。嘗試將您的證書和私鑰放在它旁邊。或者,連接到服務商店(萬維網發佈服務),然後將證書放入個人。

+0

謝謝你,我試過了 - 但沒有運氣還:( – balint 2009-08-17 12:19:14