简 述: 讲解如何拥有一份私人的代码签名证书,还是 『开源代码签名证书』→

Open Source Code Signing Certificate 🎉🎉🎉

当自己写的软件开发完毕后,若想进行商店软件发布,则下一步需要搞定『代码签名证书』。给你的 EXE 标记一个戳,写上一个被 Microsoft 所认证的签名。

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


代码签名证书的作用

代码签名证书(Code Signing Certificates)是什么?有什么用?

  1. 运行程序时候,UAC 弹窗(User Account Control)上面会显示 “发布者(Publisher)” 的名字;
  2. 用户下载 EXE/DLL 之后,通过查看属性签名,可以确保是该发布者发布的,未经过任何篡改
  3. 上架 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 等)

步骤如下:

  1. 付款成功

  2. 激活账号

  3. 验证本人以及开源开发者的身份

  4. 等待验证通过邮件,和按照邮件提示操作,里面的二维码都是是一次性的,一口气按照操作提示好

  5. 下载 SimplySign Desktop,,使用签名工具时必须联网验证身份 token;

  6. 使用 signtool + CMD进行签名

    1. 打开 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.
    2. 输入如下命令签名,盖上自己的章

  7. 查看 EXE 属性,确认签名成功;最后对 EXE 签名成功,右键属性可查看到。

上架 Microsoft Store

当签上名后,就可上架 Microsoft Store ;也可以上架三方 XX 软件管家/ 商城,但通常需要提供软著和额外的其它文件。

这部分下次有空时,另单独写一篇,详细介绍上架流程全程;

下载地址:GitHub ,这是一个ChatGPT 免费使用的跨平台客户端;更多介绍参见官网 thinkymate.com


系列地址

QtExamples 欢迎 star ⭐ 和 fork 🍴 这个系列的 C++ / QT / DTK 学习,附学习由浅入深的目录,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且永久免费!”