在Windows系統(tǒng)中,如果程序沒有代碼簽名證書,或者代碼簽名授信級別較低時懈词,系統(tǒng)同樣會將其列為可信程序,只是當(dāng)用戶運行該應(yīng)用時计贰,系統(tǒng)會顯示安全提示钦睡。
- 設(shè)置package.json的有關(guān)window打包的相關(guān)內(nèi)容
"win": {
"icon": "build/icons/icon.ico",
"target": [
"nsis",
"zip"
],
"requestedExecutionLevel":"highestAvailable",
"verifyUpdateCodeSignature": false,
"signingHashAlgorithms": [
"sha1"
],
"signDlls": true,
"rfc3161TimeStampServer": "http://timestamp.comodoca.com/authenticode",
"certificateFile": "xxx.pfx",
"certificatePassword": "xxxxxx"
},
配置參數(shù)說明:
'verifyUpdateCodeSignature': 是否需要驗證簽名
-
'signingHashAlgorithms':代表加密的方式蒂窒,一般分為'sha256'與'sha1'兩種方式:
- sha1對應(yīng)時間戳 http://timestamp.comodoca.com/authenticode
- sha256對應(yīng)時間戳 http://timestamp.comodoca.com?td=sha256
'signDlls': dll文件是否簽名
'rfc3161TimeStampServer':代表時間戳
'certificateFile':證書地址躁倒,必須是pfx格式
'certificatePassword': 證書的私鑰密碼
2.導(dǎo)出pfx格式的證書
windows的證書需要去有相關(guān)資質(zhì)的商家進行購買,現(xiàn)在買的證書都是以簽名狗(類似與銀行的u盤)的方式進行發(fā)放洒琢,確保了安全性的問題秧秉。
(1)在插上簽名狗的時候,會自動下載一個證書管理工具軟件衰抑,在上面可以可以修改密碼象迎,即上面第一步certificatePassword參數(shù)的值。
(2)無法進行導(dǎo)出pfx證書呛踊,只能導(dǎo)出cer格式的不帶私鑰的證書砾淌。
問題:cer格式可以對已經(jīng)打包完的exe進行簽名,但在electron中對打包完的exe進行簽名谭网,會導(dǎo)致無法升級的問題汪厨,所以需要在打包的時候就將證書打進去。
解決方法:導(dǎo)出cer格式的證書愉择,然后修改后綴名為pfx劫乱,如test.cer修改為test.pfx织中,放到項目的根目錄下面,即第一步certificateFile參數(shù)的值衷戈。
- 打包配置
(1)在package.json文件中配置:
"build": "cross-env BUILD_TARGET=clean node .electron-vue/build.js && node .electron-vue/build.js && electron-builder"
狭吼。
(2)運行命令
npm run build
,生成打包后的程序及安裝包文件殖妇。
4.打包后的exe刁笙,右鍵屬性,查看數(shù)字簽名