如何对应用程序exe及MSI安装包进行数字认证或添加白名单
VS6非托管C++程序MSI包安全标记消除方案
数字签名操作步骤
数字签名操作针对编译完成的二进制文件执行,和开发所用的VS6环境无关联,无需升级开发工具即可完成:
- 第一步:申请合法的代码签名证书,优先选择EV级代码签名证书,信任度更高,可直接避免大部分初始安全标记;OV级普通代码签名证书也可使用,积累信任后即可正常通行。
- 第二步:获取签名工具,使用微软官方的
SignTool工具,该工具包含在Windows SDK中,单独安装对应版本的Windows SDK即可获取,无需安装高版本Visual Studio。 - 第三步:签名MSI封装的内部文件,打包MSI之前,先对VS6编译输出的exe文件、关联dll、底层访问所需的sys/driver模块全部执行签名操作,参考命令如下:
必须添加时间戳参数,避免证书过期后签名失效。signtool sign /f 你的证书文件.pfx /p 证书密码 /t 时间戳服务地址 /d "软件名称" 待签名文件路径 - 第四步:使用你原有打包流程将已经签名完成的所有文件封装为MSI安装包。
- 第五步:对最终生成的MSI安装包执行同样的签名操作,完成后整个安装包及内部文件都带有合法数字签名。
杀毒厂商检测提交渠道列表
完成签名后如果仍有安全标记,可提交软件到各杀毒厂商的官方审核通道,审核通过后会加入白名单,常见提交通道如下:
- 微软:Microsoft Defender安全智能提交门户
- 360:360安全中心白名单提交平台
- 腾讯电脑管家:腾讯安全开放平台误报提交入口
- 卡巴斯基:卡巴斯基病毒实验室文件提交入口
- 火绒安全:火绒官方误报反馈通道
- 瑞星:瑞星安全软件误报提交页面
- Avast:Avast误报文件提交门户
- ESET:ESET可疑文件提交页面
注意事项
- 刚签发的OV代码签名证书可能存在短期的信任度积累期,期间小概率出现误报,提交厂商审核即可快速解决。
- 提交软件给厂商审核时,可附带软件功能说明、数字签名主体信息,加快审核速度。
- 签名完成的二进制文件不能做任何修改,否则签名会失效,需要重新签名后再打包。
内容的提问来源于stack exchange,提问作者user36861
相关产品推荐
相关产品推荐

