开源项目代码签名证书?

我想以开源的方式发布我的一个应用程序,并用我自己的证书对我创建的二进制文件进行数字签名。(当然,其他任何人都可以下载代码,然后用自己的证书构建它。)我想这样做,所以任何人都可以检查,这个建设是由我,而不是由别人。我也想创建一个安全的网站与有效的 SSL 证书,使访问者可以创建自己的帐户在一个安全的方式,使他们可以有助于这个项目。

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

还有别的选择吗?例如,通过提供价格较低的证书来支持开放源码项目的供应商?它不一定是免费的,只是比 Verisign 便宜很多。

(这个项目是用 C # 和 VisualStudio2008创建的,外加一个 ASP.NET 中需要 SSL 的附加项目。)

88753 次浏览

你可以看看 启动 SSL产品。

注意 StartSSL 现在已经关闭,不再发放证书。

对于开放源码开发人员,Certum提供代码签名证书 免费的 *

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

到开源代码签名证书的链接是 给你

[ * ]从2016年开始,开源代码签名证书不再免费提供。现在这项服务只收费。

你也可以查看 K 软件。他们转售 科莫多代码签名证书,每年99美元。

你可以试试 卡塞尔。有了这个,您就可以获得其他 CAcert 用户的认证。CAcert 有一个基于声誉的系统,所以如果你的证书经常被认证,那么你的证书就是有效的。

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

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


作为个人,从 Certum/Unizeto获得免费的代码签名证书,遵循以下步骤。使用 Internet Explorer 或 Safari,因为它们支持密钥交换机制。

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

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

  3. 通过激活向导。对于 组织,输入 开源开发人员。对于 组织单位,输入 软件发布

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

  5. 在一天左右的时间内,您应该收到一封带有收集证书链接的电子邮件。您必须从启动该进程所使用的计算机和浏览器中打开该链接。

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

2016年更新: StartCom 已被 WoSign 在可疑的情况下收购。我不相信 StartCom/WoSign。考虑下面的文本作为一个历史记录,说明 StartCom 曾经是 直到2015年初有多好。

我有一个来自 StartCom(StartSSL)的代码签名证书。我对他们的服务非常满意: 他们的客户服务非常快,价格也非常合理。

获取代码签名证书

获得代码签名证书需要 第二类身份验证。StartCom 将指导您完成整个过程(以我的经验,响应率非常高,通常在10分钟内)。
如果您想立即获得正确的细节,请阅读 这篇博文。我是在一个小时内验证(费用为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

通过网络界面提交这个,你会很快得到一个新的有效期为两年的证书(我在一个小时内得到了我的证书)。

问题: 终生签署 OID

StartCom 的类2证书具有生命周期签名 OID 集。由于这一点,签名代码的签名将在证书过期后变得无效,即使它有时间戳。

当我问 Eddy Nigg (StartCom 的 COO/CTO)这个 OID 的原因时,他回答说:

这要求我们在证书已经过期后,继续保持 CRL 的运作长达20年。这是我们可以为电动汽车水平证书(更低的数量,不同的支付条件) ,但会增加的价格类2只是为了这个好处(其中代码签名只是这个级别的选项的一部分)。

因此,时间戳只有在扩展验证(EV)之后才能使用,扩展验证是 只有合法成立的组织才能使用,价格为199.90美元。

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

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

证书的实际使用

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

若要更改证书上的属性,必须撤消以前的证书,撤消请求的新证书。吊销证书的费用为29.90美元。虽然当我在获得代码签名证书后的第二天更换了我的电子邮件,他们却无偿撤销了我的证书(我非常惊讶) !

过期

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

OCSP

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

大约半天后,OCSP 服务器知道了我的证书,我的名字如期出现。经验教训: 当你有了一个新的证书,等待大约一天之前发布你的软件与新的签名。

您需要购买代码签名证书。最便宜的来自科莫多。我已经发布了源代码和二进制文件,像您计划的那样,并签署了二进制文件。参见 照片和其他文件的日期和时间批改器

Linux 基金会(The Linux Foundation)与红帽(Red Hat)、谷歌(Google)和普渡大学合作,共同开发了 发射 sigstore 项目。Sigstore将自己标榜为“一个非盈利、公益的软件签名和透明服务”。

它看起来还没有准备好普遍使用,但看起来很有希望。

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

我写了个 完成证书的安装和使用的 blog 文章。一个重要的注意事项是,他们会把你的街道地址的公共证书,除非你要求他们离开它。