Windows下生成测试数字证书

导语

我们在编写写驱动程序或者进行UWP开发时,开发阶段需要频繁的给程序进行签名然后测试,如果这时候每次都使用正式的公司证书来签名就很麻烦,这种情况下我们就可以生成一个自我签名的临时证书(根证书)来给我们的程序进行签名,只要在测试机器上安装上临时证书,那么我们的程序就可以通过操作系统的验证。如果你对数字证书和签名的原理很感兴趣,你可以查看我另一篇博客数字签名(点我)

数字证书工具

Windows SDK中包含一系列的数字证书工具,如:

  1. markecert.exe 用于生成测试证书,该工具可以生成数字证书文件(.cer)和私钥文件(.pvk)
  2. pvk2pfx.exe 该工具可以将私钥文件(.pvk)转换成数字证书文件(.pfx)
  3. signtool.exe 该工具可以使用.pfx的数字证书文件对其他文件进行签名

.cer为只包含公钥的数字证书文件

.pfx为包含公钥和私钥的数字证书文件

这些工具在Windows SDK Bin目录下,笔者自己的目录如下:

C:\Program Files (x86)\Windows Kits\10\bin\x64

生成自我签名证书(根证书)

在SDK目录下打开命令行工具(管理员权限)输入指令:

    makecert -r -n "CN=Tester" -sv "C:\Tester\Tester.pvk" "C:\Tester\Tester.cer"

-r表示这是一个自我签名的证书,-n参数为证书名称,-sv参数为保存私钥的文件,执行后提示输入私钥密码,因为我们生成的是测试证书,可以选择不需要密码,之后就可以在C盘Tester目录下看到证书文件,并且可以看到颁发者和颁发给的名称都是Tester

输入指令:

    pvk2pfx -pvk "C:\Tester\Tester.pvk" -spc "C:\Tester\Tester.cer" -pfx "C:\Tester\Tester.pfx"

将私钥文件和证书文件合并成一个.pfx证书文件

对程序进行签名

输入指令: signtool sign /v /fd SHA256 /f "C:\Tester\Tester.pfx" "C:\Tester\Tester.sys" /v表示输出命令执行的信息,/fd SHA256表示对文件进行Hash而使用的算法,/f指定证书文件,这样我们的驱动程序就被签名了,在测试机上安装证书文件Tester.cer之后,我们的驱动程序就可以被系统加载


赞助作者写出更好文章


您还未登录,登录GitHub账号发表精彩评论

 GitHub登录


最新评论

    还没有人评论...

 

 

刘杰

29岁, 现居苏州

微信:

CoderJieLiu

邮箱:

coderjie@outlook.com

Github:

https://github.com/BurnellLiu

简介:

弱小和无知不是生存的障碍,傲慢才是!

Think Twice, Code Once!

本站: 登录 注册

苏ICP备16059872号-1 苏ICP备16059872号-2 . Copyright © 2017. http://www.coderjie.com. All rights reserved.

账号登录

注册 忘记密码