創建項目簽名證書


近日,需要為一個Silverlight項目添加簽名證書(注意:如果單是為了測試,在VS項目->屬性->簽名,有個創建測試證書的功能,雖然這個證書的有效期是一年,是一年吧:(,忘記了。。。)。因為我的這個是需要部署到客戶那邊的,即使是測試的,測試期限也要長點啊,SO...

在網上找了很多例子,但都不詳細,或者說不符合我的需求。最后,綜合網上的資料,鄙人整理了如下。

本機裝的是VS2012,以下所有工具都可在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin目錄找到。

 

第一步,打開CMD或者VS2012的工具命令

我用的是后者,如果是用CMD的,可直接把makecert.exe、cert2spc.exe等復制到C:\Windows\System32目錄,這樣的話輸入命令時就不需要專門導航到對應的目錄了

第二步,創建 X.509 證書

v7.1A\Bin目錄里的makecert.exe為證書創建工具。
證書創建工具生成僅用於測試目的的 X.509 證書。它創建用於數字簽名的公鑰和私鑰對,並將其存儲在證書文件中。
此工具還將密鑰對與指定發行者的名稱相關聯,並創建一個 X.509 證書,該證書將用戶指定的名稱綁定到密鑰對的公共部分。
創建證書時會提示要求證書的私鑰密碼(Subject Key,兩個密碼輸入框),並會在生成cer文件是再次要求輸入密碼(一個輸入框),最后提示Succeeded,並在C:\Program Files (x86)\Microsoft Visual Studio 11.0(我的是x64位系統,不同的系統,目錄路徑可能有所區別)目錄下生成兩個文件。
參考:http://msdn.microsoft.com/zh-cn/library/bfsktky3(v=vs.110).aspx

命令:

makecert  -r -n "CN=廣州軟件有限公司" -b 01/01/2014 -e 12/31/2100 -sv IvanSetupKey.pvk IvanSetupKey.cer

 

第三步,創建發行者證書

cert2spc.exe發行者證書測試工具
發行者證書測試工具通過一個或多個 X.509 證書創建發行者證書 (SPC)。Cert2spc.exe 僅用於測試目的。可以從證書頒發機構(如 VeriSign 或 Thawte)獲得有效的 SPC。
參考:http://msdn.microsoft.com/zh-cn/library/f657tk8f(v=vs.110).aspx
生成發行者證書時,不要求輸入私鑰密碼,提示成功后,在IvanSetupKey.cer證書所在目錄,可以看到多了一個IvanSetupKey.spc文件

命令:

cert2spc IvanSetupKey.cer IvanSetupKey.spc

 

 

第四步,導出證書文件

pvkimprt.exe是證書導出工具。需要從微軟網站下載:http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe
注意:下載之后的pvkimprt.exe是個壓縮文件!需要我們雙擊解壓得到pvkimprt.exe才是我們想要的!運行解壓得到的pvkimprt.exe,會提示安裝,安裝成功后就可正常使用命令了。

證書導出工具用於將.spc和.pvk文件導出為pfx證書文件。
導出時,會提示創建證書的密碼
輸入正確的密碼后,出現導出向導界面,點擊下一步,選擇“是,導出密鑰”,然后點擊下一步,
出現證書類型選擇界面,選擇“個人信息交換 - PKCS #12(.PFX)(P)”(只有這一種可選,並且其下面的選項均不選擇),再點擊下一步,
出現私鑰保護密碼選項,輸入密碼,然后點擊下一步,在文本框中輸入要生成的文件名(一般與證書名稱一致,最后得到的文件名后綴是.pvk),點擊下一步
顯示完成窗口,並顯示導出證書的信息。

命令:
pvkimprt -pfx IvanSetupKey.spc IvanSetupKey.pvk

 

第五步,收工階段,把簽名添加到項目中

在項目屬性中,選擇“簽名”選項卡
點擊“從文件選擇”,然后選擇生成的.pfx文件
選擇了.pfx文件后,會提使輸入私鑰保護密碼,輸入正確的私鑰保護密碼后,即可添加到項目中。
現在再看證書的有效期,是不是延長到2100年了
\(^o^)/~

 

補充:

我在導入證書之后,在瀏覽器打開程序,點擊安裝OOB模式時,會彈出黃色警報提示。好吧,繼續解決此問題~緊接上面的步驟,打開項目屬性里的簽名之后,選擇“更多詳細信息”,選擇“常規”->“安裝證書”,在下一步中,選擇”將所有的證書放入下列存儲“,並瀏覽選擇受信任的機構,按“確定”、“確定”。Ok!

本文參考自Muse的文章:http://www.cnblogs.com/yuxs/archive/2009/06/08/1498592.html

 

補充:如果是別的電腦打開該工程時,會出現類似以下提示:

錯誤    45    無法導入以下密鑰文件: HZAnalysisIKey.pfx。該密鑰文件可能受密碼保護。若要更正此問題,請嘗試再次導入證書,或手動將證書安裝到具有以下密鑰容器名稱的強名稱 CSP: VS_KEY_F5ABFB8972AFDF7B    LIMS.Analysis (LIMS.Analysis\LIMS.Analysis)

這時,可采用下面的方法:

1、打開Visual Studio 命令提示

 

2、cd命令定位到當前密鑰文件xxxx.pfx的目錄,如:cd /d "D:\Work\Git Project Code\LIMS\LIMS.Analysis\LIMS.Analysis"

3、輸入命令: sn -i [CertName].pfx [VS_KEY], 例如: sn -i HZAnalysisIKey.pfx VS_KEY_F5ABFB8972AFDF7B

4、.輸入密碼pfx密碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM