由于领导不懂行,直接购买了GlobalSign的证书,结果引起了我这个开发人员痛苦的2星期之旅,说说大体情况:

目的:对买来的一个驱动程序进行签名,使之能够在Win x64情况下安装和使用

下载Windows Kits后安装,得到signtool.exe工具,用它进行签名。

公司名很快签上了,但是时间戳死活签不上,一运行就signtool就崩溃。可是

https://support.globalsign.com/customer/en/portal/articles/1491089

signtool sign /ac MSCrossCert.crt /f CodeSign.pfx /p password1234 /tr http://timestamp.globalsign.com/scripts/timestamp.dll filter.sys

文档上的例子明明写了一个例子啊,为啥我就死活运行不了呢?

一开始还以为timestamp.dll写错了,应该是timstamp.dll(少了一个e,网上搜索出来的结果都是少e的),还是不行。

最后不得不求助GlobalSign的售后,足足报告了5组测试命令与运行过程的全部情况。结果混蛋的GlobalSign售后看都不看内容,直接发给我已经看过一万遍的两个连接(其中第二个链接还是针对过时的驱动):

https://support.globalsign.com/customer/en/portal/articles/1491089
https://support.globalsign.com/customer/portal/articles/1217485

这样来来回回,整整13封邮件,问题还是没有得到解决。最后还是我发现了一件事情,他们给我的证书是不符合 RFC 3161的,所以必须用/t参数,而不是/tr。同时timestamp.dll拼写带e还是不带e,都是正确的,可是没人告诉我这件事情啊,让我疑惑了很久。

时间戳有了,signtool verify /v /kp 也显示正确无误,可是我的驱动还是无法使用,一调用就崩溃,一点有用的提示信息都没有,郁闷啊。。。因为无法判断出错原因,反反复复测试自己调用驱动的代码,试了一遍又一遍,实在是觉得自己的代码没问题,而确实是驱动本身的问题。

没办法,不能让驱动本身耽误开发,先开发业务流程吧。于是启动windows,按F8,进入“不检查签名”模式。

几天后,一切功能都开发完毕了,在“不检查签名模式”下运行良好,于是回到驱动签名的问题。

Windows正常启动模式下,死活还是无法安装驱动啊,更别提我调用的那些功能。

我还把自己的证书、密码、要签名的驱动、我签过名的驱动,全部发给了GlobalSign,要求他们帮我检查比较一下,问题到底出在哪里,可是他们看都不看(后来研究的结果表明,就是这个证书不能用来签名驱动,就这么简单的结果都不愿帮我试一下)。。。这服务,绝对差评。

无奈啊,只能在QQ群里求助,因为QQ群是全国范围的嘛,相关的高手应该都在里面了嘛。至于论坛,虽然也可提问,但是实时性太差,还要注册论坛什么的,放弃。

最后还是在一位VeriSign的朋友热心帮助下解决了问题,当场使用各种签名工具帮我实时测试,很快就有了结果。然后重新向GlobalSign申请内核证书,问题全部搞定。而且据这位VeriSign的朋友说,他们的证书不区分应用级别和内核级别,换而言之,直接就可对驱动签名。

这里是VeriSign的价格:

http://verisign.ert7.com/quotation.html

另外证书小白们,想节省时间精力、减少郁闷、加快项目开发,可联系我上面提到的两位VeriSign的朋友(QQ6220414和QQ1125803355)。

天地良心,我不是他们的托,他们也至今没有收取我一分钱(没一年之内必要买2份证书嘛!)。不过这态度和“售后”真没是没的说,明年一定买他们家的证书!

优秀的VeriSign和混蛋的GlobalSign的更多相关文章

  1. Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...

  2. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...

  3. 国内优秀的Android资源

    因为一些大家都知道的原因,Android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...

  4. [转]别再抱怨了,国内这么多优秀的Android资源你都知道吗?

    因为一些大家都知道的原因,android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...

  5. ******IT公司面试题汇总+优秀技术博客汇总

    滴滴面试题:滴滴打车数据库如何拆分 前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计? 当时我的想法是根据用户id的最后一位对某个特殊的值取%操作 ...

  6. CSDN:你认为一名优秀的技术人应该具备怎样的素质?

    CSDN:你认为一名优秀的技术人应该具备怎样的素质? 王晶昱:我个人认为,符合这个世界要求的就是优秀的.在目前这个时代,我认为一个优秀的技术人员的特质可能是: 兴趣驱动,兴趣是最好的老师,写程序本身就 ...

  7. 优秀网站看前端 —— 小米Note介绍页面

    刚开始经营博客的时候,我写过不少“扒皮”系列的文章,主要介绍一些知名站点上有趣的交互效果,然后试着实现它们.后来开始把注意力挪到一些新颖的前端技术上,“扒皮”系列便因此封笔多时.今天打算重开“扒皮”的 ...

  8. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  9. [转] Android优秀开源项目

    Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习.今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助.另外, ...

随机推荐

  1. nav标签的作用

    . <nav>用来将具有导航性质的链接划分在一起,使代码结构在语义化方面更加准确,同时对于屏幕阅读器等设备的支持也更好.一直以来,我们习惯于使用形如<div id="nav ...

  2. HDU 4280 Island Transport(网络流)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=4280">http://acm.hdu.edu.cn/showproblem.php ...

  3. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  4. LAMP php5.4编译 _php_image_stream_putc等问题

    编译时出现下列问题时: In file included from /usr/local/src/php-5.4.6/ext/gd/gd.c:103: /usr/local/src/php-5.4.6 ...

  5. jquery实现图片切换和js实现图片切换

    jquery实现图片切换: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  6. 转 - markdown 简明语法

    Markdown是一种极简的『标记语言』,将文本转为HTML,通常为我大码农所用.其不追求大而全,简洁至上,正所谓不求最贵,只求最好! 本文介绍Markdown基本语法,内容很少,一行语法一行示例,学 ...

  7. Oracle 11g详细安装配置教程

    最近开始学习Oracle数据库了,根据我的理解Oracle数据库是一种强大.复杂.高性能的数据库,而且价格不菲,使用都是中大型企业,土豪专用.学习一种数据库的入门工作就是先安装这种数据库,鉴于大批道友 ...

  8. 安装 vs2005, vs2008 报错

    最近重新装了系统之后,在安装 vs2005, vs2008 到如下类似的错误,苦苦两天没有解决.不要问为什么是 vs2005,vs2008, 因为原有的项目就是老版本. 无意间在网上看到一句话,大意是 ...

  9. Asp.Net Api2 过滤器的使用

    1.注意: apiController控制器 对应的过滤器System.Web.Http.Filters.ActionFilterAttribute的过滤器 MVC的Controller控制器 对应的 ...

  10. 把数据库中的null作为条件查询应该用is

    如select * from mbXX where tuijian is null 而不是select * from mbXX where tuijian=null