申请免费代码签名证书

最近在研究代码签名技术, 花了不少时间, 下面记录一下从了解代码签名到获得一个有效的代码签名证书的过程.

首先说一下什么是”代码签名”:

代码签名即软件的所有者使用受全球认可的第三方发放的能证明其真实身份的 “代码签名数字证书” 为其开发的软件添加一个标记, 即所谓的 “签名”, 因而增强了可信度.
耳听为虚, 眼见为实, 有图有真象.
code sign

代码签名的作用:

证明软件在发行和传播过程中未经篡改, 增强安全性.
当软件中有涉及到安全方面或底层代码的地方, 如果没有代码签名, 系统会弹出警示框是否要继续安装或执行, 而签名之后的代码便会顺利通过安全检测, 不会弹出警示框.

代码签名的对象:

按照不同的系统和文件类型可以为多种文件进行签名. 比如微软常见的 .exe, .dll, .cab, .msi, .ocx, .sys, .cat, .vbs 等文件类型. Android 系统中的 .apk 文件. Java 中的 .jar 文件等.

代码签名需要的工具:

代码签名证书: 通过 sn.exe 自制证书或申请免费证书, 稍后重点介绍申请免费证书.
签名工具: .net 中为 SignTool.exe, 已随 Visual Studio 或 Windows SDK 安装.
时间戳服务器: 网络上有很多提供免费时间戳服务的机构, 最著名的有 Symantec 的时间戳服务, 下面列举一些常用的.
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
http://www.startssl.com/timestamp
http://timestamp.wosign.com/timestamp
http://timestamp.globalsign.com/scripts/timstamp.dll
http://www.trustcenter.de/codesigning/timestamp

申请代码签名证书:

Certum 是一家来自波兰的证书颁发机构, 他们提供免费的开源代码签名证书, 有效期为一年, 到期后可以续延. 使用此证书必须遵守开源协议. 申请地址为 : http://www.certum.eu/certum/cert,offer_en_open_source_cs.xml

如图
certum
点击 “Try it” , 添好申请表单, 其中 “Choose a product *” 项选 “Open Source Code Signing”, 提交后会收到一封确认邮件.
tryit

点击邮件中的确认链接确认, 这一步将产生一个私钥证书安装到浏览器中, 此时要注意记住你所使用的浏览器, 推荐 firefox 或 ie, 最后一步安装数字证书时仍要使用这一步产生的私钥, 所以要用同一款浏览器.

确认之后会收到另一封邮件, 要求提供可以证明真实身份的证件拷贝, 我这里使用身份证扫描件, 发送到其指定的邮箱, 以提交表单后产生的订单号为标题.

很快就能得到他们的回复, 通过后, 要求在你填写表单时所添的网站中添加一个以一长串base64字符为名字的html文件, 同时在主页 </head> 标签之前加上

xxxxxx…. 为那个base64文件名, 不带后缀名.
完成后回复邮件通知他们你已安成此步, 再过个把小时他们验证通过就会给你发放证书了.

通过后登录他们的网站, 在 “Certificates’ management” 项中就可以看到申请到的证书内容了, 点击展开此项, 下面有几个按钮.
2
点击 “Install online” , 此时证书就已安装到您的浏览器中了. 现在打开浏览器选项, 找到证书, 点击导出, 保存证书备份以便使用.
back
此时需要设定保护证书的密码, 请牢记密码.
password
确定之后证书便被保存为 .p12 格式了, 这就是我们最终需要用到的代码签名证书.

进行代码签名:

代码签名的格式

例如:

签名之后 dll 的属性标签中就会多出一项 “数字签名” 选项卡, 查看详细内容就会看到代码签名证书, 如果显示 “此数字签名正常” 就表示我们的证书获得认可, 此程序没有被篡改.
zhengshu
至此, 代码签名就完成了. 最后请注意证书过期后要及时更新.

证书过期前30天会有邮件通知,证书只能重新申请, 一般再次申请不需要提供身份证明文件, 只需重新验证域名即可.

申请免费代码签名证书》上有22条评论

  1. 貌似现在真的是不能免费申请了,注册时也没有代码签名的项可选。只能花14欧元购买了。

  2. 3天了还是等待提交。。发邮箱ccp@certum.pl标题是订单号,内容发什么

  3. 主页中的try it 没有了,我想问下我填写了表单,但是没有收到确认电子邮件,请问这个网站还能申请到免费证书吗?

  4. 现在是不是没有免费的了?这个签名签了 是不是软件就不会报毒啊

    • 一直显示404, 看来是出了什么问题, 过几天再关注一下. 这个签名只是证明程序没有被篡改. 报不报毒要看你的代码是不是恶意的.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入正确的验证码