1. 程式人生 > >signtool對exe進行簽名

signtool對exe進行簽名

數字證書,真是個神奇的東西,可以保證軟體不被修改,可以表明檔案的釋出日期,最重要的,可以很大程度的減少防毒軟體的誤報,當然,這就要使用可信任的機構頒發的證書了。

現在要說的不是申請證書,而是如何製作自己的證書。

1.安裝windows sdk

生成證書和簽名工具都包含在裡面,Visual Studio應該都有自帶了,以下內容中使用的工具都可以在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin裡面找到

2.建立 X.509 證書

MSDN對Makecert.exe(證書建立工具)的介紹:

證書建立工具生成僅用於測試目的的 X.509 證書。
它建立用於數字簽名的公鑰和私鑰對,並將其儲存在證書檔案中。
此工具還將金鑰對與指定發行者的名稱相關聯,並建立一個 X.509 證書,該證書將使用者指定的名稱繫結到金鑰對的公共部分。

使用這個命令列建立證書:

Makecert -sv abc.pvk -r -n “CN=XXX公司” abc.cer

-sv abc.pvk建立一個金鑰檔案,來儲存私鑰,建立時需要輸入一個密碼。

3.建立發行者證書

MSDN對Cert2spc.exe(軟體發行者證書測試工具)的介紹:

發行者證書測試工具通過一個或多個 X.509 證書建立發行者證書 (SPC)。
Cert2spc.exe 僅用於測試目的。
可以從證書頒發機構(如 VeriSign 或 Thawte)獲得有效的 SPC。

使用下面的命令列建立發行者證書:

Cert2spc abc.cer abc.spc

4.匯出pfx證書檔案

使用pvk2pfx.exe工具從pvk檔案中匯出pfx檔案:

pvk2pfx -pvk abc.pvk -pi mypassword -spc abc.spc -pfx abc.pfx -f

把"mypassword "密碼替換為第二步時輸入的密碼

5.對自己的軟體簽名

使用signtool.exe進行簽名,MSDN對SignTool.exe(簽名工具)的介紹:

簽名工具是一個命令列工具,用於對檔案進行數字簽名,驗證檔案和時間戳檔案中的簽名。
如果要對abc.exe進行簽名:

signtool sign /f abc.pfx /p mypassword abc.exe

把其中的密碼替換為自己的密碼。

6.對自己的軟體加蓋時間戳

可以使用WoSign提供的時間戳服務:http://timestamp.wosign.com/timestamp

signtool timestamp /t http://timestamp.wosign.com/timestamp abc.exe

簽名之後,自己的軟體瞬間就變的專業了有木有!

當然,這樣的簽名只是自慰罷了,沒有什麼實際用途,真正有用的證書還是要去專業機構申請的。

原文連結:signtool對EXE進行簽名