白話數位簽章(番外篇)——簽名EXE檔案(上)

來源:互聯網
上載者:User
摘要

人家微軟的軟體都有數位簽章,感覺好酷哦,我們寫的軟體也要弄個簽名炫一炫。

帶有簽名的軟體非常酷

在QQ的安裝檔案上右擊,選“屬性”,就可以看到QQ的數位簽章了。

使用Process Explorer或SREng查看系統中正在啟動並執行程式時,也可以驗證程式是否有數位簽章,如果我們的程式顯示“Unable to verify”,那顯得多不專業呀。

給自己的程式加上籤名

中的那個MathLover121.exe是我在上學的時候用C++ Builder寫的一個小軟體,不用說,它肯定是沒有簽名的了。下面就來示範一下如何使用微軟的簽名工具SignTool簽名這個EXE檔案。要進行簽名,首先要有數位憑證才行。如果你的公司已經申請了數位憑證,那就再好不過了;但是鑒於很多朋友手中沒有數位憑證,這裡就先介紹一下如何在CA365上申請一個免費的數位憑證。

申請免費的數位憑證

Step1: 登入www.ca365.com,在“免費認證”欄中點擊“用表格申請認證”連結。

Step2: 填表,基本上可以瞎填的,沒人管。

Step3: 在上一步按“提交”按鈕後稍等一會兒,會自動進入下載認證的頁面,點擊“下載並安裝認證”連結下載並儲存認證,預設的檔案名稱是“NewCert.der”。

Step4: 安裝認證。
在“NewCert.der”檔案上右擊,選擇“安裝認證”即可。

接下來就可以開始簽名EXE檔案了。

使用SignTool簽名EXE檔案

Step1: 通過“開始菜單|程式|Microsoft Visual Studio 2005|Visual Studio Tools|Visual Studio 2005 命令提示”開啟命令列表單。
Step2: 執行“signtool signwizard”。
Step3: 在“數位簽章嚮導”中點擊下一步,來到“檔案選擇”頁,選擇需要簽名的檔案。注意如果檔案放在了案頭下會提示“指定的檔案不存在或為唯讀檔案”的錯誤資訊,可能是檔案夾許可權的問題。
Step4: 點擊“下一步”,來到“簽名選項”頁,選擇“典型”即可。
Step5: 點擊“下一步”,來到“簽署憑證”頁,點擊“從儲存區選擇...”按鈕,然後選擇我們剛剛申請並安裝的那個認證。
Step6: (可選)點擊下一步,在“資料描述”頁可以填寫一些描述資訊。
Step7: (可選)點擊下一步,在“給資料蓋時間戳記”頁,填寫時間戳記服務的URL。這裡有兩個免費的時間戳記伺服器URL:http://timestamp.verisign.com/scripts/timstamp.dll

http://timestamp.wosign.com/timestamp

Step8: 點擊“下一步”,在“正在完成數位簽章嚮導”頁最後瀏覽一下所有的設定,確認無誤後點擊“完成”按鈕開始簽名。
Step9: 在彈出的“正在用您的專用交換密鑰簽名資料”對話方塊上按“確定”按鈕。
Step10: 看到“數位簽章嚮導已成功完成”資訊,說明簽名成功了。

現在,在Windows的資源管理員中右擊MathLover121.exe選“屬性”,就可以看到多了一個“數位簽章”頁。點擊“詳細資料”按鈕可以查看認證的詳細資料。

在Process Explorer裡也可以驗證簽名了。

不過如果把這個已簽了名的MathLover121.exe複製到我的同事的電腦上用Process Explorer驗證簽名,會仍然顯示“Unable to verify”  _| ̄|○ (好像有磚頭飛來的聲音,我閃先~~),這是因為 ca365的根憑證預設並沒有安裝在Windows系統的“受根信任憑證授權單位”列表中。在我的機器上能驗證成功是因為我事先已經匯入了CA365的根憑證。關於數位憑證和根憑證的關係可以看我的白話數位簽章(2)。
可以在“開始菜單 | 運行...”裡執行“certmgr.msc”查看“受根信任憑證授權單位”列表。

所以如果你希望Windows信任你就乖乖的向這個列表中的公司交錢吧,例如QQ的安裝檔案就是使用的 VeriSign 的程式碼簽署認證。

還有一個奇怪的問題...

但是如果我們在“C:\Program Files\Internet Explorer\IEXPLORE.EXE”上面右擊,再點擊“屬性”,可以看到並沒有顯示數位簽章頁,但是在Process Explorer中卻可以成功驗證簽名,這是怎麼回事呢?呵呵,先賣個關子,下篇再講

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.