申请免费代码签名证书

发表于2013-01-18

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

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

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

代码签名的作用:

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

代码签名的对象:

按照不同的系统和文件类型可以为多种文件进行签名. 比如微软常见的 .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

如图

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

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

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

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

XHTML
<meta name="certumid" content="xxxxxxxxxxxxxxxxxxxxxxxxx" />
1
<meta name="certumid" content="xxxxxxxxxxxxxxxxxxxxxxxxx" />

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

通过后登录他们的网站, 在 “Certificates’ management” 项中就可以看到申请到的证书内容了, 点击展开此项, 下面有几个按钮.

点击 “Install online” , 此时证书就已安装到您的浏览器中了. 现在打开浏览器选项, 找到证书, 点击导出, 保存证书备份以便使用.

此时需要设定保护证书的密码, 请牢记密码.

确定之后证书便被保存为 .p12 格式了, 这就是我们最终需要用到的代码签名证书.

进行代码签名:

代码签名的格式

Shell
signtool.exe sign /d "已签名内容的说明" /du "为已签名文档的详细说明指定统一资源定位器 (URL)" /f 证书全名 /p 证书密码 /t 时间戳服务器 /ph 要签名的文件全名
1
signtool.exe sign /d "已签名内容的说明" /du "为已签名文档的详细说明指定统一资源定位器 (URL)" /f 证书全名 /p 证书密码 /t 时间戳服务器 /ph 要签名的文件全名

例如:

Shell
signtool.exesign /d "ExtLibrary by www.itnmg.net" /du "http://www.itmg.net/extlibrary" /f itnmg.net.pfx /p ****** /t http://timestamp.verisign.com/scripts/timstamp.dll /ph extlibrary.dll
1
signtool.exe sign /d "ExtLibrary by www.itnmg.net" /du "http://www.itmg.net/extlibrary" /f itnmg.net.pfx /p ****** /t http://timestamp.verisign.com/scripts/timstamp.dll /ph extlibrary.dll

签名之后 dll 的属性标签中就会多出一项 “数字签名” 选项卡, 查看详细内容就会看到代码签名证书, 如果显示 “此数字签名正常” 就表示我们的证书获得认可, 此程序没有被篡改.

至此, 代码签名就完成了. 最后请注意证书过期后要及时更新.

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

此条目由 老黄瓜刷绿漆发表在 .Net分类目录,并贴了 Code Signing、 代码签名标签。将 固定链接加入收藏夹。

申请免费代码签名证书相关推荐

  1. 代码签名证书如何申请?

    新时代的到来对于证书方面的量需求更加大了.很多人对于代码签名证书费用是不了解的,包括如何去申请这些知识都是不清楚的,那么小编带领大家一起详细的来看一下这方面的事儿. 代码签名证书申请 我们需要先下载出 ...

  2. Win10内核驱动强制签名,申请沃通 EV代码签名证书

    为什么80%的码农都做不了架构师?>>>    2016年7月,微软在MSDN宣布从Windows 10的1607版本开始,强制要求所有新的Win10 内核驱动程序,必须获得Wind ...

  3. 全面剖析VeriSign代码签名证书

    本文档由维瑞技术中心提供:VeriSign代码签名 www.willrey.com 什么是代码签名?我为什么需要代码签名证书? 用户在线下载应用程序.安装插件附件.与复杂的 网络应用程序交互时,出于安 ...

  4. sectigo代码签名证书

    sectigo代码签名证书分为ov代码签名证书和ev代码签名证书,原名为comodo代码签名证书.ov代码签名证书通过邮件获得,ev代码签名证书通过邮寄获得,申请sectigo代码签名证书需要先申请邓 ...

  5. EV代码签名证书的价格

    EV代码签名是使用 X.509 证书对一段代码.软件或其他可执行文件进行数字签名的过程,以确保产品未被篡改或以其他方式受到损害.扩展验证或EV是指证书必须通过的高级验证,代表对客户的最高级别保证. E ...

  6. Java代码签名证书申请和使用指南

    第1步 下载签名工具 Step 1: Download Signing Tools 如果您还没有签名工具,请到SUN公司网站免费下载:http://java.sun.com/j2se/,推荐下载JDK ...

  7. 个人也可以通过维瑞申请VeriSign,Thawte 代码签名证书

    "当前越来越多的个人和个体工商户进入软件开发行业,但是以往的代码签名证书服务都是针对软件公司,从而将更多个体开发者挡在门外." 从今日起,个人也可以通过维瑞申请VeriSign,T ...

  8. 代码签名证书如何申请,有什么好处?

    一.在哪些情况下需要申请代码签名证书? 如果您的企业有关于软件开发.软件发布等业务,尤其是您作为一位软件开发工程师或产品经理,您可能经常遇到以下几种情况: 1.开发的软件等程序放在网站上被用户下载时候 ...

  9. EV代码签名证书,支持Windows 10预览版和正式版驱动签名

    DigiCert EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥, ...

  10. 微软代码签名证书使用指南

    来源:http://***/support/signcode_guide.htm 本使用指南演示怎样使用WoSign代码签名证书来给微软代码签名,Thawte和VeriSign代码签名证书也是使用相同 ...

最新文章

  1. .NET Core微服务之路:不断更新中的目录 (v0.42)
  2. 实现用户名密码登陆,输入错误3次后锁定用户
  3. 检测Maven依赖中介
  4. S3C2440_MMU
  5. 查看linux可用磁盘空间_如何在Linux中检查可用磁盘空间
  6. Handshake failed due to invalid Upgrade header: null 解决方案
  7. Docker容器中常见的十种误区
  8. 使用NHibernate, Oracle Clob/NClob无法插入
  9. 卧槽!迅雷的代码竟然被扒了精光!
  10. 流畅的python是python3吗_流畅的 Python - 3. 文本与
  11. Apollo公开课六:规划
  12. 腾讯云函数转华为云函数
  13. 运维工程师那些尴尬的瞬间
  14. php手册3.1,thinkphp3.1手册下载|
  15. 《微信小程序商城界面设计实战》--学习笔记作业
  16. 你不知道的达梦数据库
  17. 8月22日到26日工作收获
  18. 满分的一份软件测试工程师简历,凭什么?
  19. SVN服务器迁移操作
  20. 18118 勇者斗恶龙

热门文章

  1. 在Linux 中安装cmus 用命令行中玩转音乐库
  2. 给postfix邮件发信 报错Relay access denied (in reply to RCPT TO command)
  3. Tomcat任意文件读取 文件包含漏洞复现(CVE-2020-1938/CNVD-2020-10487)
  4. 【元宇宙系列】元宇宙的创世居民——M 世代(Mateverse)
  5. 白墙挂什么画 超美的6款白墙挂画选择推荐
  6. 干货!一文带你认清SD卡、TF卡、SIM卡!
  7. 软考高级系统架构设计师系列论文二十五:论信息系统的安全性与保密性设计
  8. python推箱子代码详细讲解_python实现推箱子游戏
  9. Linux打补丁遇到Hunk# succeeded at提示
  10. chrome 打开默认页 被篡改_Chrome谷歌浏览器主页总被篡改怎么解决?