SSL 个人开发者以个人名义低成本申请代码签名 购买数字证书后如何给你的程序签名:

很久没来cnsw,最近坛子在热烈讨论以个人名义申请代码签名.看来需求强烈.First of all,现在从正规途径申请个人签名越来越少,监管的问题,另外一个,验证个人也是比较折腾.在此我推荐一家服务商并且将整个注册流程分享出来(不是之前那位大王推荐的comodo,也算是提供一个选择给广大作者).
首先,介绍一下这家服务商:来自以色列的StartCom.这家公司的根证书已经给微软承认,并且装在了系统里面,而国内的wosign所用的次级证书也是这家公司颁发给他了.所以其实等于wosign是startcom的reseller.但推出的产品是不一样的,这个待我在后面解释.
产品选择
他们家有好多产品,从免费到199刀,用途各不相同,作为个人开发者如果要签程序,这里要选择的是class 2的StartSSL verified,卖59.9刀一年.当然,如果注册了公司个体户之类,可以选class 2的organization verified或者class 3 的extended verified.........但个人作者 59.9的就够用了.
准备材料(缺一不可,如果没有电话费单也可,不过需要折腾多十天八天(工作日算,那就是多折腾个一头半个月))
1.护照
2.身份证
3.最近三个月的电话费单(户名必须为本人,地址也必须与身份证上的一致)
总体成本
时间成本:整个流程下来,如果你没有护照那么大概是1个月左右可以走完全部流程,如果你有以上准备的材料,那么只需三四天即可.
金钱成本:护照250-300左右,数字签名:59.9刀,折合人民币700人仔左右.
如何申请
[1]申请护照(如已有,可跳过):到出入境管理局申请即可,护照与签证不一样,护照很容易就申请下来,目的地,你随便说即可.....如果你选用他们快递邮寄给你,快的一两个星期左右即可.
[2]递交材料:
首先,先到startcom那里注册一下,他会给你颁发一个class one的,用于先期验证.然后,在他们的control panel里面填好信用卡资料.然后开始折腾之旅:
(1)进入到后台,在validations wizard里面,选择class 2 的个人验证.
(2)他会要求你提供[准备材料]中的材料,你用扫描仪扫进去或者相机拍下来,正反面要.并且提供电话费单的扫描件或者照片.我提供了最近三个月的电话费单,如果你是银行扣费,去营业厅补打一下发票即可.
(3)通过验证后他会发邮件告知你.
(4)他们会打电话(英文,当然,带以色列口音)给你验证电话的可靠性,而这个电话号码必须是电话费单里面显示的那个,从这里可以见得CA办事的严谨,OK.通过验证后他们会发邮件通知你,然后你在control panel里面的certificate wizard里面申请一下object code sign.
(5)提交CSR文件给他,你可以装openssl生成,也可以在IIS里面生成
(6)等待1-2个小时的人工审核即可完成,然后你就可以通过他们的证书给你的程序签名咯...
证书有效期
59.9刀是一年的费用,就是说可以让你在一年里面签程序,多少个都可以,但证书本身,是只有两年的期限,也就是说,你签的程序,两年后的证书信息会失效,需要重签,也就是说比如你今天 2011年10月8日签了个程序,2013年的10月8日,证书就会失效,这个和他的reseller wosign最大的区别就是在这里,wosign的证书是签一次,终身不会失效.但是,很显然,wosign和其他机构都不让个人签,所以也是没办法中的办法.但对于共享软件来说,两年的证书有效期已经够用,因为你总得更新程序吧.

 

续篇: 购买数字证书后如何给你的程序签名:

 

购买签名后就得给程序签名,不过首次签名显然也是相当折腾的...(对呀对,申请折腾,连签名也折腾)申请签名需要用到openssl来生成私钥(key文件)和CSR文件.这两个文件是不可分割的.一个是私钥.这个大家懂.需要备份,不可公开,至于CSR文件是提交给CA的(就是公钥),CA根据CSR文件生成crt文件(公共模数).根据这三个参数就构建了整个非对称的数字签名/认证的体系.好,废话不说,直奔主题.....
[编译OpenSSL]
首先OpenSSL是没有直接发布windows的二进制版本的(这就是为何开源的产品永远没法进入普通用户市场的原因之一),所以需要编译.你需要Perl还有c编译器/链接器(这里我用vc++ 2008的编译器)
1.安装Perl,我这里推荐strawberryperl.
2.到openssl.org下载最新版的openssl的代码.解压到[解压目录]
3.运行Vistual Studio 2008 命令提示
4.在命令提示符进入[解压目录],执行perl configure VC-WIN32
5.执行ms\do_ms.bat
6.执行nmake -f ms\ntdll.mak
7.完毕,编译后的库和程序会出现在out32dll
[生成私钥和公钥,并获得公共模数]
1.将openssl_conf这个环境变量设置为openssl.conf(apps目录下可以找到)文件的路径
2.命令提提示符进入out32dll目录
3.执行openssl req -new -newkey rsa:2048 -nodes -keyout codesign.key -out codesign.csr
4.然后在out32dll目录下会出现两个文件.key是你的私钥.csr是公钥
5.将CSR提交给CA(我用的是startcom)
6.CA(startcom)根据私钥会生成公共模数.
7.使用CA提供的工具生成pfx文件(*.p12)用做代码签名
8.使用signcode工具(.net framework SDK 1.1有提供)给你的程序签名(如果用.net,可以使用强名称来实现自动签名,如果是delphi,c++等可用编译后操作来实现自动签名)

Last modified onSaturday, 05 January 2013 13:05

( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 169
Call Stack
#TimeMemoryFunctionLocation
10.0008412984{main}( ).../index.php:0
20.11324264056Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.11324264056Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.462211455552Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.462811480728Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.463511536056Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.463711563456require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.471011963088K2ControllerItem->execute( ).../k2.php:64
90.471011963088K2ControllerItem->display( ).../BaseController.php:710
100.479812613792K2ControllerItem->display( ).../item.php:78
110.479812613792K2ControllerItem->display( ).../controller.php:19
120.483712984832Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.487113005200K2ViewItem->display( ).../ViewController.php:102
140.620815923144K2ViewItem->display( ).../view.html.php:742
150.620815923144K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.623016096080include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701
  • Published in SSL
  • Read 3409 times

( ! ) Notice: Only variables should be assigned by reference in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 478
Call Stack
#TimeMemoryFunctionLocation
10.0008412984{main}( ).../index.php:0
20.11324264056Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.11324264056Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.462211455552Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.462811480728Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.463511536056Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.463711563456require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.471011963088K2ControllerItem->execute( ).../k2.php:64
90.471011963088K2ControllerItem->display( ).../BaseController.php:710
100.479812613792K2ControllerItem->display( ).../item.php:78
110.479812613792K2ControllerItem->display( ).../controller.php:19
120.483712984832Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.487113005200K2ViewItem->display( ).../ViewController.php:102
140.620815923144K2ViewItem->display( ).../view.html.php:742
150.620815923144K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.623016096080include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701
back to top