数字证书可以保证软件不被修改,也可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报。下面简单记录一下自己制作证书时的实际操作。
1. 工具下载
windows SDK中会自带创建证书和签名工具,如果没有找到则自己搜索下载。我根据此链接下载的安装包,但没有证书导出工具【pvkimprt.exe】,所以又单独下载了pvkimprt.exe,放在和其他的SignTool工具同一目录下,使用前根据下载介绍双击后安装,需要输入创建证书时的密码,所以此步骤可以放在步骤3之后再操作。
参考链接:使用流程、 ClickOnce发布、VSTO用clickonce发布时如何自建数字证书
2. 创建证书
官网:证书创建工具 (Makecert.exe)。用于生成仅用于测试目的的x.509证书。创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。创建时需要设置私钥密码。
-b 有效期开始时间 -e 有效期结束时间 -sv pvkEile 指定私钥文件 生成DevRootCA.cer文件
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
按提示操作导出.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中设置的证书私钥密码。
6. 客户端安装证书
certmgr.exe -add DevRootCA.cer -c -s -r localMachine Root
7. 证书查看
- win+r 运行mmc;
- 文件 > 添加删除管理单元;
- 在可用的管理单元中选择【证书】,点击添加-->确定;