本篇是技術(shù)類。
做vsto開(kāi)發(fā)的知道,發(fā)布程序最簡(jiǎn)單的方式是clickonce,也是visual studio默認(rèn)支持的。clickonce做網(wǎng)絡(luò)發(fā)布非常好,自動(dòng)安裝缺席的控件,自動(dòng)更新,簡(jiǎn)潔明了,用戶體驗(yàn)佳。但毛病是需要數(shù)字簽名,否則通過(guò)網(wǎng)絡(luò)發(fā)布后,會(huì)提示用戶沒(méi)有認(rèn)證,然后就安裝不上去了。
數(shù)字證書(shū)是一套安全機(jī)制。具體啥機(jī)制的我也沒(méi)搞懂,哈哈。大家自行搜索吧。
進(jìn)入正題。數(shù)字簽名,要么通過(guò)CA機(jī)構(gòu)買,要么自建一個(gè)。
自建的數(shù)字證書(shū),需要用戶先安裝證書(shū)才行;購(gòu)買的就不需要。想想容易理解。自建證書(shū)本質(zhì)上是不被網(wǎng)絡(luò)信任的,用戶主動(dòng)安裝你才算信任對(duì)吧。
本篇就講如何自建數(shù)字證書(shū)。
測(cè)試環(huán)境
- visual studio 2017
- vsto excel 2013
- windows 10
步驟
visual studio 2017 發(fā)布clickonce時(shí)需要用pfx文件去簽名。pfx是一種軟證書(shū)。我們的目標(biāo)就是做一個(gè)pfx出來(lái)。
我們需要signtools。做pfx的簽名工具。里面真實(shí)有用的,只有三個(gè)文件。

pvkimp文件需要安裝。雙擊安裝。
makecert -r -n "CN=蘇州通商軟件" -b 01/01/2017 -e 01/01/2050 -sv my.pvk my.cer
過(guò)程中會(huì)出現(xiàn)要輸入密碼,輸入一摸一樣的密碼即可。CN= 后面的內(nèi)容改成自己公司名稱。 -b和-e分別是證書(shū)有效期,你可以搞大一點(diǎn)。最后他會(huì)生成兩個(gè)文件my.pvk和my.cer。待用。
cert2spc my.cer my.spc
把cer文件轉(zhuǎn)成spc文件。沒(méi)啥說(shuō)的。
最后是
pvkimprt -pfx my.spc my.pvk
過(guò)程中也要輸入密碼,用前面的密碼即可。這樣他就導(dǎo)出一個(gè)pfx文件了。這就是我們自建的,有三十年有效期的數(shù)字證書(shū)。
另外網(wǎng)上大量查到用pvk2pfx工具的,這個(gè)工具在本環(huán)境下沒(méi)有,不知道為什么。
Visual studio 內(nèi)導(dǎo)入簽名

選擇從文件選擇。導(dǎo)入剛剛的pfx文件即可。
