开源项目的代码签名证书?

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

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

那么,还有其他的select吗? 例如,通过提供降价的证书来支持开源项目的提供商? 它不必是免费的,只比Verisign便宜很多…

(该项目是使用Visual Studio 2008在C#中创build的,另外还有一个需要SSL的项目。

你可以试试CAcert 。 有了这个,你可以得到其他CAcert用户的authentication。 CAcert有一个基于声誉的系统,所以如果你经常certificate你的证书是有效的。

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

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

请求证书时,只需在“公司”字段中input“开源开发人员”即可。 而已。

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

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

更新:不再免费,现在€105.78 (截至2017年2月19日)。 如果您已经拥有自己的encryption硬件,成本就会降低。 FWIW,以下是前面的说明。


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

  1. 浏览到testingID和开源代码签名证书 ,并提交表单。

  2. 证书将显示在激活证书下 。 点击激活

  3. 通过激活向导。 对于组织,请inputOpen Source Developer 。 对于组织单位 ,请input软件发布

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

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

*虽然Certum的validation电子邮件说要将certificate发送到ccp@certum.pl ,但Certum也接受发送到回复地址info@certum.pl的证据,您可以向其发送encryption的电子邮件。

2016年更新: 在可疑情况下, StartCom已被WoSign收购。 我不信任StartCom / WoSign。 考虑下面的文字作为对StartCom 公司 到2015年初有多好的历史logging。

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

获取代码签名证书

获取代码签名证书需要2类身份validation 。 StartCom指导您完成整个过程(通常在十分钟内,我的经验将会有很好的响应速度)。
如果你想立刻获得细节,请阅读这篇博文 。 我在一小时内validation(通过Paypal收取59.90 $的费用)。

validation后,生成一个新的私钥和一个证书签名请求(CSR)。 请注意, 除公钥以外的所有字段都将被忽略 。 证书中的所有信息都是根据您在身份validation期间提供的信息推断的,而不是来自您的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的首席运营官兼首席技术官)是因为这个OID,他回答说:

它要求我们在CRLs证书已经到期之后继续运行长达20年。 这是我们可以为EV级证书(低得多的数量,不同的付款条件)做的事情,但是为了这个好处(代码签名只是这个级别的选项的一部分),会增加2级的价格。

因此时间戳只有在扩展validation(EV) 后才可用,只有合法build立的组织才可以使用 ,费用为199.90美元。 因此, 个人开发人员不能使用来自StartCom的代码签名证书的时间戳

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

注意: 即使设置了生命周期签名标志,也始终为您的代码添加时间戳 。 时间戳签名将保持有效,直到证书的失效date,即使证书已被撤销(显然,只有在证书被撤销前创build签名)。

实际使用证书

在StartCom,你只需支付validation。 身份validation有效期为350天,在此期间,您可以免费申请代码签名证书。 你只能有一个有效的代码签名证书,它可以用来签署任何代码(MSI,DLL,XPI,…),而不是驱动程序代码(这需要EV)。

要更改证书上的属性,必须先撤消之前的证书,并请求新的证书。 撤销证书费用为29.90美元。 尽pipe当我在获得代码签名证书后的一天内更换了我的电子邮件,他们却非正式地吊销了我的证书(我感到非常惊讶)!

呼气

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

OCSP

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

大概半天后,OCSP服务器就知道我的证书了,而且我的名字如预期的那样出现了。 获得的经验:当你有一个新的证书,等待一天,然后用新的签名发布你的软件。

你可以看看StartSSL产品。

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

您将需要购买代码签名证书。 最便宜的是Comodo。 我已经发布了源代码和二进制文件,就像你计划的那样,并且签署了二进制文件。 查看照片和其他文件的date和时间批量更换器