目前我们在发布应用程序时,有时用户下载后会被360杀毒当做木马直接隔离。为应用程序可执行文件打上数字签名可以让360杀毒放宽检测规则。下文是讲述如何制作数字签名证书的过程。

  需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。

  在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试用的证书。

  第一步,生成一个自签名的根证书(issuer,签发者)。

  >makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer

  这个时候,会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令;

  然后,再次输入这个口令用私钥(在RootIssuer.pvk文件中)来给公钥(在RootIssuer.cer文件中)加密。

  第二步,使用这个证书签发一个子证书(使用者,subject)。

  >makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer

  此时,会弹出提示框先给这个子证书的私钥文件ChildSubject.pvk设置保护口令;

  然后,输入这个子证书的私钥(在ChildSubject.pvk中)口令来保护子证书的公钥(在ChildSubject.cer中)。

  接下来会提示输入根证书私钥(在RootIssuer.pvk中)口令来签发整个子证书(公钥和用户信息)。

  如果你还要签发更多的子证书,类似的,使用这个证书来签发再下层的证书,前提是ChildSubject证书也可以用于签发(作为Issuer)用途。

  备注:

  (1)如果你需要一个交互证书,用于安全通信,那么,加入选项 -sky exchange;

  (2)如果你需要一个签名证书来签发证书或者二进制文件,那么,加入选项 -sky signature.

  (3)如果你需要一个客户端证书来标志你的身份,或者个人信息保护(电子邮件),那么,选项-n 中的E字段是不可缺少的。

  举例:-n "CN=公司名称, E=E-MAIL地址, O=组织名称, OU=组织单位, C=国家, S=省份(州),  P=县城"

参数为:makecert -r -pe -n "cn=MyCA" -$ commercial -a sha1 -b 08/05/2010 -e 01/01/2012 -cy authority -ss my -sr currentuser

其中各部分的意义:

-r: 自签名
-pe: 将所生成的私钥标记为可导出。这样可将私钥包括在证书中。
-n "cn=MyCA": 证书的subject name,.net自带类库中有X509Store类,可以在store中根据证书subject name,来找到改证书
store参考:X509Store 类
-$ commercial:指明证书商业使用。。。
-a:指定签名算法。必须是 md5(默认值)或 sha1。
-b 08/05/2010:证书有效期的开始时间,默认为证书的创建日期。格式为:mm/dd/yyyy
-e 01/01/2012:指定有效期的结束时间。默认为 12/31/2039 11:59:59 GMT。格式同上
-ss my:证书产生到my个人store区
-sr currentuser:保持到计算机当前个人用户区,其他用户登录系统后则看不到该证书。。

查看该生成的证书并导出:
可以在MMC的证书管理单元中对证书存储区进行管理。Windows没有给我们准备好直接的管理证书的入口。自己在MMC中添加,步骤如下: 
1. 开始→运行→MMC,打开一个空的MMC控制台。
2. 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”我的用户账户”→关闭→确定
3. 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”计算机账户”→关闭→确定

然后导出为PFX格式的证书,PKCS#12规范的证书,包含了公钥和私钥,导出时需要提供一个私钥的保护密码,在导出时设置即可

  其他辅助工具:

  1) 公钥证书格式转换成SPC。 cert2spc.exe

  >cert2spc TestRoot.cer TestRoot.spc

  .spc 意思是 软件发布者证书(Software Pulisher Cerificate).

  2) 将公钥证书和私钥合并成一个PFX格式的证书文件。pvk2pfx.exe

  >pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx

  输入TestRoot.pvk的保护口令来合并.pvk和.spc文件,如果你不设置即将合并出来的TestRoot.pfx的保护口令的话,这个保护口令和输入文件TestRoot.pvk的保护口令一样。(备注:直接从cer文件也可以,不一定要得到SPC文件).

  3) 签名工具。signtool.exe

  二进制文件数字签名.为了保证二进制文件的完整性,数字签名是一个好的方法。

  以下命令启动一个有图形界面的文件签名工具向导:

  >signtool wizard

  以下是命令行方式的签名:

  >signtool  sign /f "pfx文件的全路径" /p "pfx文件的保护口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次签名的描述" "被签名的程序的全路径"

 

windows下如何制作和应用数字签名证书 全流程的更多相关文章

  1. Windows下Charles从下载安装到证书设置和浏览器抓包

    1.在Charles官网https://www.charlesproxy.com/download/下载,我这边下载的是免费体验版的. 2.安装好以后打开,配置Charles证书:选择help——SS ...

  2. Windows下使用OpenSSL生成自签证书

    下载OpenSSLhttp://slproweb.com/products/Win32OpenSSL.html 生成证书 生成crt证书CMD进入安装bin目录,执行命令:openssl req -x ...

  3. Windows下配置Git服务器和客户端 超全

    为了配合Redmine使用,特地用Git来做版本控制. Git Candy© 是一个基于ASP.NET MVC的Git分布式版本控制平台,Git Candy的目标是轻松干掉Bonobo,逐渐追赶Git ...

  4. windows创建p12格式的ios开发证书的流程

    现在做ios开发,原生的开发已经不是第一选择,现在有很多不同的H5开发框架,在性能上都不输原生开发,而UI方便却能做得比原生更炫,比如CSS得灵活度肯定是比原生开发出来得应用更灵活的. 我们在开发IO ...

  5. Lua在Windows下的配置、安装、运行

    Windows下安装.运行Lua! 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1↓ 进入Lua官网:h ...

  6. Lua在Windows下的安装、配置、运行

    Lua在Windows下的安装.配置.运行 本文链接:https://blog.csdn.net/ChinarCSDN/article/details/78667262 展开 # Windows下安装 ...

  7. windows下部署免费ssl证书(letsencrypt)

    随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情.要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL ...

  8. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  9. windows下制作linux U盘启动盘或者安装优盘(转)

    windows下制作linux U盘启动盘或者安装优盘(转) Linux发行版排行榜:http://iso.linuxquestions.org/ [方案一]:UltraISO(不推荐,在Window ...

随机推荐

  1. SpringBoot第十二篇:整合jsp

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10953600.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   Sprin ...

  2. centos 安装 oracle11r2

    因为要测试spark链接oracle,所以需要再服务器装oracle 1.下载oracle, 如果自己下载需要注册,比较麻烦,可以直接用如下命令下载 因为zip比较大,建议nohup 后台下载 noh ...

  3. 5行代码带你实现一个js的打字效果

    (转载)原文链接:https://juejin.im/post/5ddf55835188257313541581 前言 有次看电影

  4. 使用docker安装gitlab,两台电脑gitlab库相互迁移

    原文来自合伙呀 https://hehuoya.com/2019/09/30/gitlab-docker/ Docker  for gitlab brew cask install docker do ...

  5. Luogu P2727 【01串 Stringsobits】

    看到题解里好像都是用$DP$解决的,本着禁止DP的原则,我来提供一发纯数学其实和DP本质相同的题解,前两天刚反演题,脑子炸了,本来说换换脑子,结果还是数学 首先受进制思想启发,我们不妨按位考虑,考虑这 ...

  6. 三、hexo+github搭建个人博客的主题配置

    更换博客主题 主题可参考:https://hexo.io/themes/ hexo默认主题:Landscape 示例主题:Next 下载Next主题 进入Blog所在目录,输入下载命令 #进入Blog ...

  7. Centos7利用rsync实现文件同步

    0x01 测试环境 CentOS 7.4 Rsync服务端:192.168.204.130 CentOS 7.4 Rsync客户端:192.168.204.168 0x02 rsync同步方式 第一种 ...

  8. 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)

    大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...

  9. 使用Ueditor上传图片到图片服务器(二)

    上一篇主要写了前端部分如何配置ueditor的上传路径,已经jsp页面中如何使用ueditor的编辑器功能以及如何配置单独的图片上传功能. 这一篇,我分两部分:第一部分是搭建图片服务器以及配置ftp上 ...

  10. PIE SDK打开自定义栅格数据

    1. 数据介绍 信息提取和解译的过程中,经常会生成一部分中间临时栅格数据,这些数据在执行完对应操作后就失去了存在的价值,针对这种情况,PIE增加了内存栅格数据集,来协助用户完成对自定义栅格数据的读取和 ...