为发布的windows软件解决 “发布者:未知 ”问题
用户安装我们发布的程序时,弹出UAC提示框:
您想允许来自未知发布者的以下程序对此计算机进行更改吗?
发布者:未知
如果安装程序出现该提示,很多用户就不会安装程序了。
从发布者的角度要解决这个问题,就需要对发布的程序做签名认证。使得弹出窗口中显示发布者的公司名称。
用户帐户控制UAC
用户帐户控制(User Account Control,简写作UAC)是微软公司在其操作系统中采用的一种控制机制。是微软在Windows Vista 开始引入的技术,主要功能是当软件在做会影响系统安全的操作时,会触发UAC,需要经过用户同意确认后才可执行。因为大部分恶意软件、病毒、广告插件都会有如:将文件复制到Windows或Program Files等目录、安装驱动、安装ActiveX等影响安全的操作,windows vista及以后的操作系统,对这些操作都会触发UAC,用户都可以在UAC提示时,阻止这些程序的危险操作。
*安装ActiveX;*安装或卸载程序; *安装设备驱动程序;*修改注册表; *将文件移动或复制到Program Files或是Windows目录;上面的操作都会触发UAC。
签名程序
安全对软件和媒体变得越来越重要。程序签名后,使用户可以看到软件的来源,并且没有被恶意修改或意外损坏。 代码签名技术早已问世多年,但许多软件供应商避免使用它,因为参与这个过程很复杂。
首先,在对代码签名之前,需要获得由CA(Certificate Authority,数字证书认证机构)签发的代码签名证书。
选择一个CA,登入到它的网站,找到代码签名证书,
通常步骤是:
- 要求你输入公司或个人的信息。
- 为证书付费。
- 获得私钥文件*.pvk。私钥需要输入密码(PVK-Password),这个密码需要妥善保管。
在获得私钥的同时会生成公钥上传到CA,CA会审核你的提交的信息,审核完成后,会签发软件发布证书(Software Publishing Certificate)*.spc。
最后,你所拥有的就包括:
- 私钥文件*.pvk、
- 私钥密码、
- 软件发布证书*.spc。
以上步骤,根据不同的认证机构有所不同。在取得证书之后,就可以用来对我们的安装程序进行签名,如:在installshield中可以看到打包的选项中的signing就是用来进行签名的。
代码签名证书
代码签名证书,支持Windows 32位和64位用户模式下的 .exe, .cab, .dll, .ocx, .msi, .xpi, and .xap files 等应用程序和内核模式下的sys ,cat 等驱动程序文件签名。代码签名证书能验证软件的来源和代码的完整性,使用者也会知道该代码程序自发布后未遭到非法窜改,从而对软件开发商产生高度信赖感,保护了软件开发商的利益,使得软件开发商能安全地快速地通过互联网发布软件。所以,首先你需要有一个自己公司所有的代码签名证书。要进行签名,首先要有数字证书才行。
去哪里弄一个代码签名证书 ?
用于软件发布的证书,代码签名证书:需要一个证书,为代码做签名。
证书由颁发组织CA(认证机构)颁发。CA中最突出的是:verisign.com和tawthe.com。 然而,获得一个证书是相当繁琐和费时的过程。(需要CA机构识别你或你的组织才能出具),而且需要我们为认证支付几百美元的证书。
一旦选择一个CA,进入CA的网站导航页面,CA提供一个“代码签名证书”。当你点击【购买】按钮,CA将引导你包括以下步骤:
- 输入您的个人和公司信息。
- 支付证书费用。
- 运行一个特殊的小应用程序,将在您的计算机上创建一个私有密钥文件(* .PVK)。
创建私钥文件时,系统将提示您输入密码(PVK-Password密码)。你应该保管好记住这个密码,使用它来签署您的应用程序。您还必须将私钥文件复制到一个安全的地方。 当在您的计算机上创建私钥文件时,小程序还将创建一个免费的“公钥”文件,并将其发送到CA。 现在CA将启动流程,验证和批准您的组织和领域。这个过程通常需要几天时间。在这段时间内CA机构会通过电话或其他方式和你联系请求一些识别文件。 结论CA验证过程时将给你一个链接到一个软件发布证书文件(* .SPC)。下载这个文件,也是在一个安全的地方 这个过程结束时你将有以下3项:
- SPC File
- PVK File
- PVK Password
得到认证后,生成证书,把证书打到软件里exe里。
如果希望Windows信任你的软件,就的向这个列表中的公司去做数字证书,会交一笔费用。
360软件的证书
windows微信的证书
数字签名工具 SignTool.exe
使用微软的签名工具SignTool,签名EXE文件。
数字签名工具 SignTool.exe是一个命令行工具,用于对文件进行数字签名,验证文件和时间戳文件中的签名。
安装 Visual Studio 和 Windows SDK 时会自动安装SignTool.exe工具。要运行SignTool.exe工具,我们使用 Visual Studio 命令提示符或 Windows SDK 命令提示符(也称 CMD Shell)。
注意:
不要直接在系统自带cmd上去执行SignTool命令,因为这些命令工具所在的目录并没有添加到Path中;
而是要使用vs开发人员命令提示符工具去执行,如:
命令格式:
signtool [command] [options] [file_name | ...]
1、以下命令通过使用最佳证书对文件进行自动签名。
signtool sign /a MyFile.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0>signtool sign /a Mgfile.exe
Done Adding Additional Store
SignTool Error: File not found: Mgfile.exe
Number of errors: 1
C:\Program Files (x86)\Microsoft Visual Studio 14.0>signtool sign /a D:\Temp\V_1.0_Setup.exe
Done Adding Additional Store
Successfully signed: D:\Temp\V_1.0_Setup.exe
2、以下命令使用存储在受密码保护的 PFX 文件中的证书对文件进行数字签名。
signtool sign /f MyCert.pfx /p MyPassword MyFile.exe
密码不正确:
C:\Program Files (x86)\Microsoft Visual Studio 14.0>signtool sign /f D:\Temp\clientcert.pfx /p vmstd56 D:\Temp\V_1.0.0.188_x86_Setup.exe
SignTool Error: The specified PFX password is not correct.
证书标准不对:
C:\Program Files (x86)\Microsoft Visual Studio 14.0>signtool sign /f D:\Temp\clientcert.pfx /p vm12346789 D:\Temp\V_1.0.0.188_x86_Setup.exe
SignTool Error: No certificates were found that met all the given criteria.
3、以下命令对文件进行数字签名并加盖时间戳。 用于对文件进行签名的证书存储在 PFX 文件中。
signtool sign /f MyCert.pfx /t http://timestamp.digicert.com MyFile.exe
4、以下命令通过使用位于 My 存储中的证书对文件进行签名,该证书的主题名为 My Company Certificate。
signtool sign /n "My Company Certificate" MyFile.exe
为发布的windows软件解决 “发布者:未知 ”问题相关推荐
- 解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者
解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者 简介VMware版本16.1.2如图所示,点击了始终安装此驱动程序软件,还是会提示报错这就 ...
- 解决VMware 16在Win7虚拟机安装VMware Tools时报 “Windows 无法验证此驱动程序软件的发布者”问题
参考: [原创]解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者. 解决VMware16在虚拟机Windows7下安装VMware tool ...
- 提示“windows无法配置此无线连接,如果您已经起用其他程序管理此无线连接,请使用该软件.....”解决方法
查找可用无线网络,提示"windows无法配置此无线连接,如果您已经起用其他程序管理此无线连接,请使用该软件....." 解决方法: 1.查看无线网卡的驱动是否安装正确 查看方法: ...
- Linux 基金会发布《开源软件供应链安全报告》
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 近期,Linux 基金会发布<开源软件供应链安全报告>,探索当前影响软件供应链的安全性和可靠性问题,并找到从何处着手以及如 ...
- 最新型号设备信息对照表_所有iPhone设备都可能被解锁!黑客发布新款越狱软件“Unc0ver”...
近日据外媒报道,一个著名的iPhone黑客团队发布了一款新的"越狱"工具Unc0ver,可以解锁每一部iPhone设备,甚至是运行最新iOS13.5的最新型号iPhone设备. 据 ...
- 苹果电脑可以装windows系统吗_Linux系统安装Windows软件? 通过这个工具可以做到...
Linux系统是一个很优秀的系统,但是,这个优秀的系统,却面临着很尴尬的局面--很多软件都没有Linux对应版本. 如果一个优秀的系统连常用的软件都没有,那么也就与我们这些普通的用户失之交臂了. 那么 ...
- windows上安装linux_Linux系统安装Windows软件? 通过这个工具可以做到
Linux系统是一个很优秀的系统,但是,这个优秀的系统,却面临着很尴尬的局面--很多软件都没有Linux对应版本. 如果一个优秀的系统连常用的软件都没有,那么也就与我们这些普通的用户失之交臂了. 那么 ...
- 包教包会:龙芯3A5000上尝试运行任意Windows软件
几个月之前,龙芯中科刚放出可用的二进程翻译模块时,我写了一篇<在龙芯3A5000上运行Windows程序>.在龙芯3A5000上运行Windows程序https://zhuanlan.zh ...
- 美国CISA联合发布了勒索软件防护指南
近日,美国CISA(国土安全部下属的网络安全和基础设施安全局)和MS-ISAC(州际信息共享和分析中心) 联合发布了勒索软件防护指南,该指南是以客户为中心的一站式资源,提供了最佳实践和预防,保护方法, ...
最新文章
- Android Intent setAction的使用注意
- 青源LIVE第22期|旷视刘松涛:YOLOX,高性能目标检测的最新实践
- 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
- Spring Boot 最核心的 3 个注解详解
- java B2B2C 仿淘宝电子商城系统-Spring Cloud Eureka参数配置项详解
- 完全背包——方案个数 UVA11137 Ingenuous Cubrency
- mysql 5.5 5.6 备份库_mysql5.5备份数据库里面除系统库外的所有数据库
- 河北省计算机2018单招试题答案,2018年河北省普通高职单招考试十类和高职单招对口电子电工类、计算机类联考命题、考试与评卷...
- ubuntu上安装python3.7教程_ubuntu中安装Python3.7
- oracle 查询XML操作、操作系统文件
- 基于PHP+小程序(MINA框架)+Mysql数据库的汽车维修保养小程序系统设计与实现
- J2EE框架技术(SpringMVC) 知识点笔记(2)
- zedgraph控件使用
- 为什么直播礼物特效越来越流行?
- 零基础学会数据分析计划
- 埃特巴什码(Atbash Cipher)
- 图数据库查询语言Cypher
- 如何成为一名卓越的软件工程师
- Born近似和Rytov近似
- 基于高通410c开发板,开发android端家庭控制中心APP(1)
热门文章
- 小米12刷机:Root详细步骤和注意事项
- 全民一起玩python课件_【全民一起玩python】下载 - 面包树
- 工程伦理第七章习题答案
- AMiner论文推荐——3D Spatial Recognition without Spatially Labeled 3D
- 树莓派通过物联网照顾宠物龟
- 轮廓仪 wyko matlab,VEECO光学轮廓仪
- 塔望 · ​食业​中国|文化对消费者行为的影响
- (1-4)sklearn库的----模型评估
- MySQL之自带四库之mysql库
- Jenkins与Allure持续集成