SSL 个人开发者以个人名义低成本申请代码签名 购买数字证书后如何给你的程序签名:
- font size decrease font size increase font size
- Print Email
很久没来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++等可用编译后操作来实现自动签名)
( ! ) 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 | ||||
# | Time | Memory | Function | Location |
1 | 0.0008 | 412984 | {main}( ) | .../index.php:0 |
2 | 0.1132 | 4264056 | Joomla\CMS\Application\SiteApplication->execute( ) | .../index.php:49 |
3 | 0.1132 | 4264056 | Joomla\CMS\Application\SiteApplication->doExecute( ) | .../CMSApplication.php:196 |
4 | 0.4622 | 11455552 | Joomla\CMS\Application\SiteApplication->dispatch( ) | .../SiteApplication.php:233 |
5 | 0.4628 | 11480728 | Joomla\CMS\Component\ComponentHelper::renderComponent( ) | .../SiteApplication.php:194 |
6 | 0.4635 | 11536056 | Joomla\CMS\Component\ComponentHelper::executeComponent( ) | .../ComponentHelper.php:377 |
7 | 0.4637 | 11563456 | require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ) | .../ComponentHelper.php:402 |
8 | 0.4710 | 11963088 | K2ControllerItem->execute( ) | .../k2.php:64 |
9 | 0.4710 | 11963088 | K2ControllerItem->display( ) | .../BaseController.php:710 |
10 | 0.4798 | 12613792 | K2ControllerItem->display( ) | .../item.php:78 |
11 | 0.4798 | 12613792 | K2ControllerItem->display( ) | .../controller.php:19 |
12 | 0.4837 | 12984832 | Joomla\CMS\Cache\Controller\ViewController->get( ) | .../BaseController.php:663 |
13 | 0.4871 | 13005200 | K2ViewItem->display( ) | .../ViewController.php:102 |
14 | 0.6208 | 15923144 | K2ViewItem->display( ) | .../view.html.php:742 |
15 | 0.6208 | 15923144 | K2ViewItem->loadTemplate( ) | .../HtmlView.php:230 |
16 | 0.6230 | 16096080 | include( '/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 | ||||
# | Time | Memory | Function | Location |
1 | 0.0008 | 412984 | {main}( ) | .../index.php:0 |
2 | 0.1132 | 4264056 | Joomla\CMS\Application\SiteApplication->execute( ) | .../index.php:49 |
3 | 0.1132 | 4264056 | Joomla\CMS\Application\SiteApplication->doExecute( ) | .../CMSApplication.php:196 |
4 | 0.4622 | 11455552 | Joomla\CMS\Application\SiteApplication->dispatch( ) | .../SiteApplication.php:233 |
5 | 0.4628 | 11480728 | Joomla\CMS\Component\ComponentHelper::renderComponent( ) | .../SiteApplication.php:194 |
6 | 0.4635 | 11536056 | Joomla\CMS\Component\ComponentHelper::executeComponent( ) | .../ComponentHelper.php:377 |
7 | 0.4637 | 11563456 | require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ) | .../ComponentHelper.php:402 |
8 | 0.4710 | 11963088 | K2ControllerItem->execute( ) | .../k2.php:64 |
9 | 0.4710 | 11963088 | K2ControllerItem->display( ) | .../BaseController.php:710 |
10 | 0.4798 | 12613792 | K2ControllerItem->display( ) | .../item.php:78 |
11 | 0.4798 | 12613792 | K2ControllerItem->display( ) | .../controller.php:19 |
12 | 0.4837 | 12984832 | Joomla\CMS\Cache\Controller\ViewController->get( ) | .../BaseController.php:663 |
13 | 0.4871 | 13005200 | K2ViewItem->display( ) | .../ViewController.php:102 |
14 | 0.6208 | 15923144 | K2ViewItem->display( ) | .../view.html.php:742 |
15 | 0.6208 | 15923144 | K2ViewItem->loadTemplate( ) | .../HtmlView.php:230 |
16 | 0.6230 | 16096080 | include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ) | .../HtmlView.php:701 |