本文初发于 “偕臧的小站”,同步转载于此。
简 述: 讲解如何拥有一份私人的代码签名证书,还是 『开源代码签名证书』→
Open Source Code Signing Certificate 🎉🎉🎉
当自己写的软件开发完毕后,若想进行商店软件发布,则下一步需要搞定**『代码签名证书』**。给你的 EXE 标记一个戳,写上一个被 Microsoft 所认证的签名。
![](https://i-blog.csdnimg.cn/blog_migrate/f363a25ecab3bda8f323cfed3e750900.jpeg)
代码签名证书的作用
代码签名证书(Code Signing Certificates)是什么?有什么用?
- 运行程序时候,UAC 弹窗(User Account Control)上面会显示 “发布者(Publisher)” 的名字;
- 用户下载 EXE/DLL 之后,通过查看属性签名,可以确保是该发布者发布的,未经过任何篡改
- 上架 Microsoft Store 时候,必须要有被 Microsoft 所认可的的签名证书;反之则会被拒。一些三方商城同理。
代码签名证书的分类
证书分为三类
- EV 代码签名:企业级别,价格最昂贵,无需积累任何信誉,就可以直接通过 Microsoft Defender SmartScreen,不会触发此弹窗或者误杀;申请门槛也随最高的,需要提交公司执照等有效信息。
- Standard 代码签名:标准代码签名,价格相对 EV 便宜许多,也支持个人申请,理想的个人推荐;初次运行,会 Microsoft Defender SmartScreen 弹窗提示,当程序被足够多的用户使用后,在 Windows 中积累的信誉足够多,后面也不会弹出此弹窗。
- Open Source 代码签名:开源作者代码签名,价格最低,目前还能提供的厂商,都是人类文明之光,申请条件为开源的个人开发者。相传,在很多年前,这种证书各大厂商都是免费提供的,但随着 Window 系统 xp -> 7/8/10/11 的变迁,出于系统级的安全设计考虑,诞生出 “User Account Control” 弹窗;以及信任和不信任,还有证书的高昂,现如今基本没有厂商提供了此类证书。
Code Signing Certificates 的价格 / 年;
Signing in the Cloud | Signing - code | Signing - set | |
---|---|---|---|
EV | € 379 | € 329 | € 359 |
Standard | € 189 | € 129 | € 159 |
Open Source | € 49 | € 25 | € 69 |
注:购买实物的时候,还会有约 € 35 的运费 + 23% 的税费,默认是 DHL 快递。
代码签名证书的购买
现代 (2024 年) 的签名证书购买 ,分为两类;
-
**云上: ** 手机上使用 OTP + PC 联网条件
-
**本地: ** 实体的 cryptographic card + card reader;
-
一种是大的密码卡片 + 大的读卡器
-
另一种是类似于手机卡卡片 + USB 读卡器
-
在线付款有较大概率性会被拒;手机提示信用卡支付成功,但是网站提示交易失败。通常等待三天左右,会自动原始账单返回,但是由于汇率和莫名的手续费,每次失败会损失约 ¥20 。可尝试切换支付方式或信用卡和切换节点。
手动签名流程
因我购买的是开源代码签名证书,其支持以下数字签名:
- UNIX/Linux 软件
- Firefox 和 Netscape 的扩展
- Java 小程序
- 基于JAVA技术的互联网应用
- ActiveX 组件和控件
- 二进制文件 (.exe .dll 等)
步骤如下:
-
付款成功
-
激活账号
-
验证本人以及开源开发者的身份
-
等待验证通过邮件,和按照邮件提示操作,里面的二维码都是是一次性的,一口气按照操作提示好
-
下载 SimplySign Desktop,,使用签名工具时必须联网验证身份 token;
-
使用 signtool + CMD进行签名
-
打开 SimplySign Desktop 输入验证后,通过调用 Windows 自带的 signtool.exe 工具,来实现对 EXE / DLL 的签名;参数如下
> signtool.exe Valid commands: sign -- Sign files using an embedded signature. timestamp -- Timestamp previously-signed files. verify -- Verify embedded or catalog signatures. catdb -- Modify a catalog database. remove -- Remove embedded signature(s) or reduce the size of an embedded signed file.
-
输入如下命令签名,盖上自己的章
-
-
查看 EXE 属性,确认签名成功;最后对 EXE 签名成功,右键属性可查看到。
上架 Microsoft Store
当签上名后,就可上架 Microsoft Store ;也可以上架三方 XX 软件管家/ 商城,但通常需要提供软著和额外的其它文件。
这部分下次有空时,另单独写一篇,详细介绍上架流程全程;
![](https://i-blog.csdnimg.cn/blog_migrate/b31129fabfd0ac46deedfee66ded0714.png)
下载地址:GitHub ,这是一个ChatGPT 免费使用的跨平台客户端;更多介绍参见官网 thinkymate.com 。
系列地址
QtExamples “欢迎 star
⭐ 和 fork
🍴 这个系列的 C++ / QT / DTK
学习,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且免费!”