SSL (1)

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

  • Published in 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++等可用编译后操作来实现自动签名)
Read more...