Windows Code Signing

由於公司有開發了一個在 Windows 上的應用程式, 但是丟上網路後發現透過 Chrome 下載完檔案之後, 都會出現「下載檔案不正常,可能會有危險」詢問使用者是否要「捨棄」的訊息, 研究了一下才發現是因為沒有做 Code Signing

我想 Code Signing 這件事開發桌面軟體的公司來說應該是小事, 不過我一直都是在開發 Web, 所以碰到這件事還真是有點頭痛, 而且還碰到一些很爛的問題, 所以這件事情其實 Pending 了很久。

一開始想到 Code Signing 就是跑去 thawte 買, 先前聽說過他們的 SSL / Code Signing Certificate 滿便宜的, 但是再買的過程中, 第一個問題就是碰到說一定要用 IE, 結果買了幾次都碰到 IE Crash … oops, 之後幾次則是 thawte 的表單根本過不了, 沒有反應, 到不了下一步。

最後選擇了 Digicert , 價格比較便宜, Code Signing 的做法也說明的很清楚, 而且可以用 Chrome 買也沒問題。

原本覺得 Code Signing 很複雜, 但是做完後覺得還滿簡單的, 順便記錄一下使用 digicert 來做 Code Signing 的方法。

首先由於 Code Signing 的憑證會直接透過 Chrome / IE 安裝到系統 (其實我不確定這樣說正不正確), 所以直接下載安裝 Microsoft Windows SDK for Windows 7 and .NET Framework 4 之後, 透過這個套件提供的 signtool 就可以進行 Code Signing 了, 指令如下:

signtool sign /t http://timestamp.digicert.com /a "c:pathtofile.exe"  

另外也可以先匯出憑證檔案 (.pfx) 後再做 Code Signing, 畢竟要自動化的話, 沒辦法直接在本機處理

signtool sign /t http://timestamp.digicert.com /f "c:pathtomycert.pfx" /p pfxpassword "c:pathtofile.exe"  

以上, 這樣就把 Code Signing 給做好了, 之後下載就不會再有以上這個的問題了, 但老實說我還真沒想到我會處理到這種東西。

signtool 的路徑在: C:Program Files (x86)Windows Kits8.0binx86signtool

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!