clickOnce证书流程以及数字签名工具SignTool的使用教程

577 阅读2分钟

数字证书可以保证软件不被修改,也可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报。下面简单记录一下自己制作证书时的实际操作。

1. 工具下载

windows SDK中会自带创建证书和签名工具,如果没有找到则自己搜索下载。我根据此链接下载的安装包,但没有证书导出工具【pvkimprt.exe】,所以又单独下载了pvkimprt.exe,放在和其他的SignTool工具同一目录下,使用前根据下载介绍双击后安装,需要输入创建证书时的密码,所以此步骤可以放在步骤3之后再操作。

参考链接:使用流程ClickOnce发布VSTO用clickonce发布时如何自建数字证书

2. 创建证书

官网:证书创建工具 (Makecert.exe)。用于生成仅用于测试目的的x.509证书。创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。创建时需要设置私钥密码。

-b 有效期开始时间 -e 有效期结束时间 -sv pvkEile 指定私钥文件 生成DevRootCA.cer文件

image.png

makecert -n "CN=DevRootCA" -r -b 12/19/2023 -e 12/19/2123 -sv DevRootCA.pvk DevRootCA.cer 
3. 创建发行者证书

官网:发行者证书测试工具 (Cert2spc.exe)。该工具通过一个或多个x.509证书创建发行者证书(SPC),仅用于测试目的。

表示:从 DevRootCA.cer 创建一个SPC并将其放入 DevRootCA.spc

cert2spc DevRootCA.cer DevRootCA.spc
4. 导出证书文件

有两种方式:

1)使用pvkimprt.exe工具导出pfx文件:(实际操作用的这种)

pvkimprt -pfx DevRootCA.spc DevRootCA.pvk

image.png 按提示操作导出.pfx证书,若步骤2设置了私钥密码,此处需要输入验证。 此方法必须安装过pvkimprt工具后,才能使用,否则在cmd中执行上面的命令将无法成功。

2)使用pvk2pfx.exe工具从pvk文件中导出pfx文件:(没有使用过,但应该没问题,参考

pvk2pfx -pvk fqrcw2.pvk -pi my123456 -spc fqrcw2.spc -pfx fqrcw2.pfx -f

把密码替换为步骤2时输入的密码对自己的软件签名。

5. 添加到ClickOnce

在vs项目的ClickOnce清单签名的证书设置处点击【从文件选择】浏览定位到步骤4导出的.pfx证书,此处需要验证步骤2中设置的证书私钥密码。

image.png

6. 客户端安装证书
certmgr.exe -add DevRootCA.cer -c -s -r localMachine Root
7. 证书查看
  1. win+r 运行mmc;
  2. 文件 > 添加删除管理单元;
  3. 在可用的管理单元中选择【证书】,点击添加-->确定;