2013-01-23 42 views
4

我有一個ClickOnce應用程序已部署到許多用戶使用位於以前的開發人員的計算機上的證書進行了簽名。自該開發人員離開公司後,證書已過期。爲了從另一臺機器重新發布應用程序,我們需要能夠找到原始證書並使用擴展名進行更新。我可以訪問以前的開發人員的計算機,但我找不到原始.pfx文件來複制和更新證書。我也可以訪問所有以前部署的文件。我可以從ClickOnce部署文件中檢索證書信息嗎?

我們試圖部署應用程序,並收到錯誤:

The deployment identity does not match the subscription.

我最好的猜測是,它是,事實上,不同的證書導致此錯誤基礎上的MSDN論壇的問題和響應,Deployment identity does not match the description。但是,值得注意的是,我們都更改了部署代碼的機器,並且將解決方案更新爲Visual Studio 2010(儘管平臺和配置相同)。

如何從以前的開發人員計算機或部署文件中檢索原始證書信息?或者我們是否有可能試圖解決這個問題?

+0

我們最終通過重新發布到不同的文件共享來解決此問題,因爲無論如何我們都需要這樣做,併發送一個鏈接給所有用戶重新安裝。 – badpanda

回答

3

如果可以對機器/用戶帳戶進行物理訪問,那麼檢索證書應該不會有問題,前提是在導入時未使用自定義密碼保護證書。導出嚮導可以從Internet Explorer選項啓動,如圖所示。在其中一個選項卡中查找所需證書(通常,在個人選項卡中)。使用PFX格式導出私鑰和公鑰。

enter image description here

另一種方式來訪問導出嚮導是通過MMC snap-in

[更新]爲了答案的完整性,從簽名的部署文件中檢索私鑰是不可能的,因爲它只包含加密密鑰的公共部分。也許,在OP的情況下,私鑰仍然存在,被埋在開發機器的文件系統的某個地方(如.PVK文件),儘管如此存儲它是不好的做法。有關證書文件類型的更多詳細信息,請參閱here。如上所述,我寧願期望在機器的證書存儲中找到私鑰和公鑰。

相關問題