windows下如何製做和應用數字簽名證書 全流程

目前咱們在發佈應用程序時,有時用戶下載後會被360殺毒當作木馬直接隔離。爲應用程序可執行文件打上數字簽名可讓360殺毒放寬檢測規則。下文是講述如何製做數字簽名證書的過程。html

  須要準備的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。算法

  在MS的SDK6.0中有個證書生成工具makecert.exe, 你能夠使用這個工具來生成測試用的證書。安全

  第一步,生成一個自簽名的根證書(issuer,簽發者)。工具

  >makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer測試

  這個時候,會彈出提示框,首先給RootIssuer.pvk文件設置私鑰保護口令;加密

如何製做和應用數字簽名證書

  而後,再次輸入這個口令用私鑰(在RootIssuer.pvk文件中)來給公鑰(在RootIssuer.cer文件中)加密。spa

如何製做和應用數字簽名證書

  第二步,使用這個證書籤發一個子證書(使用者,subject)。.net

  >makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer命令行

  此時,會彈出提示框先給這個子證書的私鑰文件ChildSubject.pvk設置保護口令;htm

如何製做和應用數字簽名證書

  而後,輸入這個子證書的私鑰(在ChildSubject.pvk中)口令來保護子證書的公鑰(在ChildSubject.cer中)。

如何製做和應用數字簽名證書

  接下來會提示輸入根證書私鑰(在RootIssuer.pvk中)口令來簽發整個子證書(公鑰和用戶信息)。

如何製做和應用數字簽名證書

  若是你還要簽發更多的子證書,相似的,使用這個證書來簽發再下層的證書,前提是ChildSubject證書也能夠用於簽發(做爲Issuer)用途。

  備註:

  (1)若是你須要一個交互證書,用於安全通訊,那麼,加入選項 -sky exchange;

  (2)若是你須要一個簽名證書來簽發證書或者二進制文件,那麼,加入選項 -sky signature.

  (3)若是你須要一個客戶端證書來標誌你的身份,或者我的信息保護(電子郵件),那麼,選項-n 中的E字段是不可缺乏的。

  舉例:-n "CN=公司名稱, E=E-MAIL地址, O=組織名稱, OU=組織單位, C=國家, S=省份(州),  P=縣城"

參數爲:makecert -r -pe -n "cn=MyCA" -$ commercial -a sha1 -b 08/05/2010 -e 01/01/2012 -cy authority -ss my -sr currentuser

其中各部分的意義:

-r: 自簽名
-pe: 將所生成的私鑰標記爲可導出。這樣可將私鑰包括在證書中。
-n "cn=MyCA": 證書的subject name,.net自帶類庫中有X509Store類,能夠在store中根據證書subject name,來找到改證書
store參考:X509Store 類 
-$ commercial:指明證書商業使用。。。
-a:指定簽名算法。必須是 md5(默認值)或 sha1。
-b 08/05/2010:證書有效期的開始時間,默認爲證書的建立日期。格式爲:mm/dd/yyyy
-e 01/01/2012:指定有效期的結束時間。默認爲 12/31/2039 11:59:59 GMT。格式同上
-ss my:證書產生到my我的store區
-sr currentuser:保持到計算機當前我的用戶區,其餘用戶登陸系統後則看不到該證書。。

 

 

查看該生成的證書並導出:
能夠在MMC的證書管理單元中對證書存儲區進行管理。Windows沒有給咱們準備好直接的管理證書的入口。本身在MMC中添加,步驟以下: 
1. 開始→運行→MMC,打開一個空的MMC控制檯。
2. 在控制檯菜單,文件→添加/刪除管理單元→添加按鈕→選」證書」→添加→選」個人用戶帳戶」→關閉→肯定
3. 在控制檯菜單,文件→添加/刪除管理單元→添加按鈕→選」證書」→添加→選」計算機帳戶」→關閉→肯定

 

而後導出爲PFX格式的證書,PKCS#12規範的證書,包含了公鑰和私鑰,導出時須要提供一個私鑰的保護密碼,在導出時設置便可

  其餘輔助工具:

  1) 公鑰證書格式轉換成SPC。 cert2spc.exe

  >cert2spc TestRoot.cer TestRoot.spc

  .spc 意思是 軟件發佈者證書(Software Pulisher Cerificate).

  2) 將公鑰證書和私鑰合併成一個PFX格式的證書文件。pvk2pfx.exe

  >pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx

  輸入TestRoot.pvk的保護口令來合併.pvk和.spc文件,若是你不設置即將合併出來的TestRoot.pfx的保護口令的話,這個保護口令和輸入文件TestRoot.pvk的保護口令同樣。(備註:直接從cer文件也能夠,不必定要獲得SPC文件).

  3) 簽名工具。signtool.exe

  二進制文件數字簽名.爲了保證二進制文件的完整性,數字簽名是一個好的方法。

  如下命令啓動一個有圖形界面的文件簽名工具嚮導:

  >signtool wizard

  如下是命令行方式的簽名:

  >signtool  sign /f "pfx文件的全路徑" /p "pfx文件的保護口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次簽名的描述" "被簽名的程序的全路徑"

 
相關文章
相關標籤/搜索