134

我想将我的一个应用程序作为开源发布,并希望对我使用自己的证书创建的二进制文件进行数字签名。(当然,其他任何人都可以下载代码并使用他们自己的证书自己构建它。)我想这样做,以便任何人都可以检查这个构建是由我制作的,而不是由其他人制作的。我还想创建一个具有有效 SSL 证书的安全网站,以便访问者可以以安全的方式创建自己的帐户,以便他们可以为这个项目做出贡献。

我可以创建一个自签名证书,但我不太喜欢这个选项。或者,我可以向 Verisign 支付一些金币,以获得有效期仅为几年的证书。我也不喜欢那个选项,因为我的金库对我很有价值。

那么,还有其他选择吗?例如,通过以优惠价格提供证书来支持开源项目的提供商?它不一定是免费的,只是比威瑞信便宜很多......

(该项目是在 C# 中使用Visual Studio 2008创建的。另外还有一个需要 SSL 的 ASP.NET 项目。)

4

9 回答 9

38

对于开源开发者,Certum免费提供代码签名证书*

申请证书时,只需在“公司”字段中输入“开源开发者”即可。就是这样。

开源代码签名证书的链接在这里

[*] 从 2016 年开始,开源代码签名证书不再免费提供。它现在是一项付费服务​​。

于 2009-07-24T13:41:42.267 回答
27

更新:不再免费,现价105.78 欧元(截至 2017 年 2 月 19 日)。如果您已经拥有他们的加密硬件,成本会更低。FWIW,以下是前面的说明。


从Certum/Unizeto为您自己获取免费的代码签名证书,请按照以下步骤操作。使用 Internet Explorer 或 Safari,因为它们支持密钥交换机制。

  1. 浏览到测试 ID 和开源代码签名证书,然后提交表单。

  2. 证书将出现在激活证书下。单击激活

  3. 通过激活向导。对于组织输入Open Source Developer。对于组织单位,输入软件发布

  4. 您将收到一封电子邮件,要求您提供身份证明。回复开源项目的链接和您的驾照(或其他接受的文件)的图像。为了保护您的隐私,您应该对回复进行加密。*加密方式因电子邮件客户端而异。对于 Outlook,请确保您拥有电子邮件证书(免费提供),并打开加密

  5. 在一天左右的时间内,您应该会收到一封电子邮件,其中包含用于收集您的证书的链接。您必须从用于启动该过程的同一台计算机和浏览器打开链接。

* 虽然来自 Certum 的验证邮件中说要将证明发送到ccp@certum.pl,但 Certum 也接受发送到回复地址的证明info@certum.pl,您可以向该回复地址发送加密电子邮件。

于 2013-09-23T12:58:52.420 回答
22

2016 年更新:沃通在可疑情况下收购了 StartCom 。我不会相信 StartCom/WoSign。将以下文本视为关于 StartCom到 2015 年初有多 好的历史记录。

我从StartCom (StartSSL) 获得了代码签名证书。我对他们的服务非常满意:他们的客户服务非常快,而且价格非常合理。

获取代码签名证书

获得代码签名证书需要Class 2 Identity Validation。StartCom 会指导您完成整个过程(根据我的经验,响应率通常在十分钟内)。
如果您想立即获得详细信息,请阅读此博客文章。我在一小时内得到了验证(通过 Paypal 收取 59.90 美元的费用)。

验证后,生成新的私钥和证书签名请求 (CSR)。请注意,除了公钥之外的所有字段都将被忽略。证书中的所有信息都是从您在身份验证期间提供的信息中推断出来的,而不是从您的 CSR中推断出来的。

# Create key and CSR (key must be at least 2048 bit, per Policy Statement)
openssl req -nodes -newkey rsa:2048 -keyout codesigning.key -out codesigning.csr
# Add pass phrase to key (optional, but highly recommended)
openssl rsa -in codesigning.key -des3 -out codesigning2.key && \
    mv codesigning2.key codesigning.key

通过 Web 界面提交此文件,您将很快获得有效期为两年的新证书(我在一小时内拿到了我的证书)。

问题:终身签名 OID

StartCom 的 2 类证书具有 Lifetime Signing OID 集。由于这个位,签名代码的签名将在证书过期后失效,即使它带有时间戳。

当我询问 Eddy Nigg(StartCom 的首席运营官/首席技术官)关于这个 OID 的原因时,他回答说:

它要求我们在证书过期后将 CRL 保持运行长达 20 年。这是我们可以为 EV 级别证书做的事情(数量要少得多,付款条件不同),但会为了这个好处而提高 2 类的价格(代码签名只是这个级别的选项的一部分)。

因此,时间戳仅在扩展验证 (EV) 之后可用,仅适用于合法成立的组织,费用为 199.90 美元。因此,个人开发人员不能将时间戳与 StartCom 的代码签名证书一起使用

很长一段时间,我认为这个限制是一个大问题。最近,我改变了主意:每两年才发生一次,有安全意识的用户可能更倾向于获得我的软件的最新版本,而旧版本的软件仍然可以使用(对于那些想要使用它的人;虽然没有经过验证的签名)。

注意:始终为您的代码添加时间戳,即使设置了 Lifetime 签名标志!时间戳签名将一直有效,直到证书的到期日,即使证书已被吊销(显然,只有在证书被吊销之前创建了签名)。

证书的实际使用

在 StartCom,您只需为验证付费。身份验证有效期为 350 天,在此期间,您可以免费索取代码签名证书。您只能拥有一个有效的代码签名证书,它可用于签署任何代码(MSI、DLL、XPI...),但不能用于驱动程序代码(这需要 EV)。

要更改证书上的属性,必须撤销先前的证书并请求新的证书。撤销证书的费用为 29.90 美元。虽然当我在获得代码签名证书后的第二天更改我的电子邮件时,他们异常地免费撤销了我的证书(我非常惊讶)!

到期

当您的证书即将到期时(将近两年后),您会收到通知(提前两周)。如果您已验证的身份仍然有效(请记住,验证在 350 天后到期;然后您必须再次确认您的身份,费用为 59.90 美元),您可以申请新证书而无需撤销之前的证书。不要忘记发布使用此新代码签名证书签名的软件的新版本,因为以前的版本很快就会显示“(未验证)”或类似内容。

OCSP

当我收到我的证书时,我签署了我的 Firefox 插件。但是,即使我的 XPI 文件已正确签名,它仍然显示“(作者未验证)”。原来,Firefox 在向 StartCom 的 OCSP 服务器查询我的新证书的吊销状态时,并没有得到当前的证书状态。可能相关的论坛主题

大约半天后,OCSP 服务器知道我的证书,并且我的名字按预期显示。经验教训:获得新证书后,请等待大约一天,然后再发布具有新签名的软件。

于 2013-12-24T15:36:22.987 回答
12

Linux 基金会与红帽、谷歌和普渡大学合作推出了 sigstore 项目。Sigstore 称其为“非营利、公益软件签名和透明度服务”。

它看起来还没有准备好用于一般用途,但看起来很有希望。

于 2021-04-28T05:16:05.047 回答
8

你可以看看StartSSL产品。

注意 StartSSL 现已关闭,不再颁发证书。

于 2009-07-24T13:15:45.513 回答
8

您还可以查看KSoftware。他们以每年 99 美元的价格转售Comodo代码签名证书。

于 2009-07-24T14:23:36.860 回答
7

你可以试试CAcert。有了这个,您将获得其他 CAcert 用户的认证。CAcert 具有基于信誉的系统,因此如果您获得足够多的认证,您的证书就会被视为有效。

您可能必须将 CAcert 添加为目标系统上的受信任机构。自签名您的可执行文件应该是一个足够的选择,但您需要提供公共证书。使用已知的权威可以帮助验证文件,但我认为在这种情况下使用文件的校验和或 sha2 哈希与您的自签名证书相结合是过度的。您可以将 linux 机器设置为 CA,但是他们需要信任您的公共证书。

于 2009-07-24T14:32:42.663 回答
0

您将需要购买代码签名证书。最便宜的来自 Comodo。我已经按照您的计划发布了源代码和二进制文件,并对二进制文件进行了签名。请参阅照片和其他文件的日期和时间批量更改器

于 2014-07-14T15:59:33.757 回答
0

我使用Comodo 个人代码签名证书。每年 71 美元,不需要任何特殊硬件。

我写了一篇博文,介绍了证书的安装和使用。一个重要的注意事项是,除非您要求他们将其保留,否则他们会将您的街道地址放在公共证书上。

于 2021-05-25T06:21:52.473 回答