出自http://www.imooc.com/wenda/detail/577483

由于这篇文章搜索实在费劲,机缘巧合中才找到,为了后面课程学习方便查找,斗胆转载,侵删

慕森王
更新的答案
如果您使用的是以下Windows版本或更高版本:Windows Server 2012,Windows Server 2012 R2或Windows 8.1,则现在不推荐使用MakeCert,Microsoft建议使用PowerShell Cmdlet New-SelfSignedCertificate。

如果您使用的是Windows 7等旧版本,则需要坚持使用MakeCert或其他解决方案。有些人建议使用Public Key Infrastructure Powershell(PSPKI)模块。

原始答案
虽然您可以一次创建自签名代码签名证书(SPC - 软件发布者证书),但我更喜欢执行以下操作:

创建自签名证书颁发机构(CA)

makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

这将创建一个带有可导出私钥(-pe)的自签名(-r)证书。它被命名为“我的CA”,应该放在当前用户的CA存储中。我们正在使用SHA-256算法。密钥用于签名(-sky)。

私钥应存储在MyCA.pvk文件中,而证书应存储在MyCA.cer文件中。

导入CA证书
因为如果您不信任CA证书没有意义,您需要将其导入Windows证书库。您可以使用证书MMC管理单元,但是可以从命令行使用:

certutil -user -addstore Root MyCA.cer

创建代码签名证书(SPC)

makecert -pe -n "CN=My SPC" -a sha256 -cy end -sky signature -ic MyCA.cer -iv MyCA.pvk -sv MySPC.pvk MySPC.cer

它与上面几乎相同,但我们提供了发行者密钥和证书(-ic和-iv交换机)。

我们还想将证书和密钥转换为PFX文件:

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx

如果要保护PFX文件,请添加-po开关,否则PVK2PFX会创建一个没有密码短语的PFX文件。

使用证书签名代码

signtool sign /v /f MySPC.pfx /t http://timestamp.url XXXe.exe

(看看为什么时间戳可能很重要)
我:后面的其实不用执行,到这里就可以了,http那里填后文的url或者自行寻找一个

如果将PFX文件导入证书存储区(可以使用PVKIMPRT或MMC管理单元),则可以按如下方式对代码进行签名:

signtool sign /v /n "Me" /s SPC /t http://timestamp.url XXXX.exe

一些可能的时间戳URL signtool /t是:

http://timestamp.verisign.com/scripts/timstamp.dllhttp://timestamp.globalsign.com/scripts/timstamp.dllhttp://timestamp.comodoca.com/authenticode

完整的Microsoft文档
signtool

makecert

pvk2pfx

下载
对于那些不是.NET开发人员的人,您需要一份Windows SDK和.NET框架。此处提供了当前链接:SDK和.NET(安装makecert C:\Program Files\Microsoft SDKs\Windows\v7.1)。你的旅费可能会改变。

MakeCert可从Visual Studio命令提示符获得。Visual Studio 2015确实拥有它,它可以从Windows 7的“开发人员命令提示符VS 15”或“VS2015 x64 Native Tools命令提示符”(可能所有这些都在同一文件夹中)的“开始”菜单中启动。

如何在Windows上为代码签名创建自签名证书相关推荐

  1. 如何在Windows上创建,解压,更新.tar.gz压缩包

    Linux上常用的压缩包格式是.tar.gz..tar.gz文件的创建过程有两步.首先把文件打包到tar文件中,然后用gzip压缩tar文件.这里分享下如何在Windows上创建,解压,更新.tar. ...

  2. 如何在Windows上使用Git创建一个可执行脚本?

    长话短说,今天介绍如何在windows上使用Git上创建一个可执行的shell脚本. " 首先我们要知道windows上Git默认添加的文件权限是:-rw-r--r--(对应权限值是644) ...

  3. 如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用

    如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用 初次安装 MySQL 移植使用 附录 其它 MySQL 命令 查看本 MySQL 数据存放目录 MySQL 的各种其它 ...

  4. 如何在Windows上运行Redis?

    如何在Windows上运行Redis? Redis下载页面似乎只提供* nix选项. 我可以在Windows上本地运行Redis吗? #1楼 MS Open Tech最近提供了Redis版本,可以在G ...

  5. windows 安装php_如何在Windows上安装PHP

    windows 安装php We've previously shown you how to get a working local installation of Apache on your W ...

  6. 如何在 Windows 上的 VirtualBox 中安装 macOS Big Sur

    [手把手]如何在 Windows 上的 VirtualBox 中安装 macOS Big Sur 零.软件环境前提准备 一.准备安装 1.在您的计算机上安装 VirtualBox 软件.之后,单击您下 ...

  7. 零基础如何在windows上进行JAVA开发

    文章目录 前言 一.JDK安装 1.什么是JRE和JDK 2.下载JDK 2. 配置环境变量 二.下载和使用 intellij idea 1.进入官网下载 2.配置 intellij idea 3.代 ...

  8. 【腾讯云 Finops Crane 集训营】 如何在Windows上快速搭建一个Kubernetes+Crane 环境及应用

    一.前言 个人主页: ζ小菜鸡 大家好我是ζ小菜鸡,让我们一起学习在 Windows 如何快速搭建一个Kubernetes+Crane 环境及应用. 如果文章对你有帮助.欢迎关注.点赞.收藏(一键三连 ...

  9. 如何在Windows上做Python开发?微软出了官方教程(附链接)

    来源:机器之心 本文附教程,建议阅读5分钟. 本文为你分享微软最近发布的关于在Windows上做Python开发的一系列官方教程. 在Windows上做Python开发太痛苦?微软最近发布了一系列官方 ...

最新文章

  1. 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...
  2. 基于特征的对抗迁移学习论文_lt;EYD与机器学习gt;迁移学习:PTL选择式对抗网络...
  3. 分布式系统的面试题7
  4. WIF - claims-based identity
  5. 【从零入门 Web 前端】HTML5 + CSS 简明教程
  6. 数据结构-单链表实现
  7. pycharm的updating indices
  8. 收集常用的Linux常用命令
  9. Bash脚本报错:“/bin/bash^M: bad interpreter: No such file or directory”
  10. Python二叉树的三种深度优先遍历
  11. 子集和数问题——回溯法(C++)
  12. 六安瓜片在51CTO【礼树迎蛇 红满社区】
  13. JAVA回形数的实现
  14. “间谍”软件克星Ad-Aware
  15. numpy——flat与flatten
  16. pink-css标签
  17. python实时语音转写_实时语音转写 API 文档
  18. 阿里云移动热修复Sophix问题汇总
  19. Python回归分析五部曲(三)—一元非线性回归
  20. 惠斯特电桥平衡条件的证明

热门文章

  1. 作战效能评估系统模型
  2. 系统开发建设要经过哪些流程?
  3. java将office文档,word,ppt,pdf文档转换成swf文件在线预览
  4. 【Skynet】开始创建服务的代码流程
  5. 1253寻找肇事司机
  6. Git, GitHub使用记录
  7. 微型计算机结构框图,微型计算机系统结构图.doc
  8. 【超实用】在微信文章中点击号码直接拨打电话,轻松运营~
  9. java hdms_网盘预研 - ZICK_ZEON的个人空间 - OSCHINA - 中文开源技术交流社区
  10. Siney's BLOG - 我也来分析魔兽世界-场景组织