2014年11月2日

Office Outlook Customization 開發筆記(3) Signing & Publishing

開發最後卡最久的地方是 Signing & Publishing

在 msdn 上說我們可以使用一個 test Certificate 來 sign 我們的 binary / assembly / manifest ,這裡講的 Certificate 是指 Code Signing Certificate 。

但是實際上,使用 test Certificate 是非常看情況的,在我所選擇使用的環境和狀況下( .net framework 4.0, VSTO, ClickOnce ),使用 test Certificate 在安裝 manifest (.vsto)時會引發 System.Security.SecurityException,並沒有讓使用者決定要不要安裝這個不受信任的 Publisher 的軟體。

這種情況研究之後可能有幾種解法,第一個是使用 Intranet 來安裝,Windows 基本上是相信區網的,但是這樣完全失去選用 ClickOnce 的意義,不考慮。第二種方法,乖乖去 CA 購買一個 Certificate,一個一年大約 100美金有找,也有特殊用途的到 500 美金。缺點是,這種第三方購買憑證的期限一定很短,期限到了 ClickOnce 就不會自動更新了,要用特別的方法來更新憑證,我們小戶也不可能一次花個幾百美金買個三四年期的憑證,對比 self-signed Certificate 的使用期限是自己打上去的,可以寫個五十年,五十年不用更換憑證。第三種方法是讓使用者先安裝我們的 test Certificate ,讓這個憑證變成已經信任的,甚至可以用 Group Policy 幫整個公司的電腦裝憑證,缺點是這種大客戶公司的 IT 大概不會讓我這樣搞。第四種方法是安裝前修改客戶電腦的 prompt level ,至少讓客戶有辦法選擇要不要安裝這個可疑的軟體,那至少要有管理員權限,這讓安裝步驟變得麻煩。

結果我研究了兩三天之後還是乖乖的去 CA 買了一個 Certificate  ...