用户安装我们发布的程序时,弹出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,登入到它的网站,找到代码签名证书,

通常步骤是:

  1. 要求你输入公司或个人的信息。
  2. 为证书付费
  3. 获得私钥文件*.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软件解决 “发布者:未知 ”问题相关推荐

  1. 解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者

    解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者 简介VMware版本16.1.2如图所示,点击了始终安装此驱动程序软件,还是会提示报错这就 ...

  2. 解决VMware 16在Win7虚拟机安装VMware Tools时报 “Windows 无法验证此驱动程序软件的发布者”问题

    参考: [原创]解决VMware16无法在Win7安装VMTools的问题,报Windows 无法验证此驱动程序软件的发布者. 解决VMware16在虚拟机Windows7下安装VMware tool ...

  3. 提示“windows无法配置此无线连接,如果您已经起用其他程序管理此无线连接,请使用该软件.....”解决方法

    查找可用无线网络,提示"windows无法配置此无线连接,如果您已经起用其他程序管理此无线连接,请使用该软件....." 解决方法: 1.查看无线网卡的驱动是否安装正确 查看方法: ...

  4. Linux 基金会发布《开源软件供应链安全报告》

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 近期,Linux 基金会发布<开源软件供应链安全报告>,探索当前影响软件供应链的安全性和可靠性问题,并找到从何处着手以及如 ...

  5. 最新型号设备信息对照表_所有iPhone设备都可能被解锁!黑客发布新款越狱软件“Unc0ver”...

    近日据外媒报道,一个著名的iPhone黑客团队发布了一款新的"越狱"工具Unc0ver,可以解锁每一部iPhone设备,甚至是运行最新iOS13.5的最新型号iPhone设备. 据 ...

  6. 苹果电脑可以装windows系统吗_Linux系统安装Windows软件? 通过这个工具可以做到...

    Linux系统是一个很优秀的系统,但是,这个优秀的系统,却面临着很尴尬的局面--很多软件都没有Linux对应版本. 如果一个优秀的系统连常用的软件都没有,那么也就与我们这些普通的用户失之交臂了. 那么 ...

  7. windows上安装linux_Linux系统安装Windows软件? 通过这个工具可以做到

    Linux系统是一个很优秀的系统,但是,这个优秀的系统,却面临着很尴尬的局面--很多软件都没有Linux对应版本. 如果一个优秀的系统连常用的软件都没有,那么也就与我们这些普通的用户失之交臂了. 那么 ...

  8. 包教包会:龙芯3A5000上尝试运行任意Windows软件

    几个月之前,龙芯中科刚放出可用的二进程翻译模块时,我写了一篇<在龙芯3A5000上运行Windows程序>.在龙芯3A5000上运行Windows程序https://zhuanlan.zh ...

  9. 美国CISA联合发布了勒索软件防护指南

    近日,美国CISA(国土安全部下属的网络安全和基础设施安全局)和MS-ISAC(州际信息共享和分析中心) 联合发布了勒索软件防护指南,该指南是以客户为中心的一站式资源,提供了最佳实践和预防,保护方法, ...

最新文章

  1. Android Intent setAction的使用注意
  2. 青源LIVE第22期|旷视刘松涛:YOLOX,高性能目标检测的最新实践
  3. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
  4. Spring Boot 最核心的 3 个注解详解
  5. java B2B2C 仿淘宝电子商城系统-Spring Cloud Eureka参数配置项详解
  6. 完全背包——方案个数 UVA11137 Ingenuous Cubrency
  7. mysql 5.5 5.6 备份库_mysql5.5备份数据库里面除系统库外的所有数据库
  8. 河北省计算机2018单招试题答案,2018年河北省普通高职单招考试十类和高职单招对口电子电工类、计算机类联考命题、考试与评卷...
  9. ubuntu上安装python3.7教程_ubuntu中安装Python3.7
  10. oracle 查询XML操作、操作系统文件
  11. 基于PHP+小程序(MINA框架)+Mysql数据库的汽车维修保养小程序系统设计与实现
  12. J2EE框架技术(SpringMVC) 知识点笔记(2)
  13. zedgraph控件使用
  14. 为什么直播礼物特效越来越流行?
  15. 零基础学会数据分析计划
  16. 埃特巴什码(Atbash Cipher)
  17. 图数据库查询语言Cypher
  18. 如何成为一名卓越的软件工程师
  19. Born近似和Rytov近似
  20. 基于高通410c开发板,开发android端家庭控制中心APP(1)

热门文章

  1. 小米12刷机:Root详细步骤和注意事项
  2. 全民一起玩python课件_【全民一起玩python】下载 - 面包树
  3. 工程伦理第七章习题答案
  4. AMiner论文推荐——3D Spatial Recognition without Spatially Labeled 3D
  5. 树莓派通过物联网照顾宠物龟
  6. 轮廓仪 wyko matlab,VEECO光学轮廓仪
  7. 塔望 · ​食业​中国|文化对消费者行为的影响
  8. (1-4)sklearn库的----模型评估
  9. MySQL之自带四库之mysql库
  10. Jenkins与Allure持续集成