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

  需要準備的工具: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文件中)加密。

如何制作和應用數字簽名證書

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

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

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

如何制作和應用數字簽名證書

  然后,輸入這個子證書的私鑰(在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=縣城"

  其他輔助工具:

  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 "本次簽名的描述" "被簽名的程序的全路徑"

除非特別注明,雞啄米文章均為原創
轉載請標明本文地址:http://www.9385095.live/software/349.html
2014年6月14日
作者:雞啄米 分類:軟件開發 瀏覽: 評論:17