给ActiveX签名的实现方法详解

 更新时间:2013年05月16日 17:34:56   作者:  
本篇文章是对给ActiveX签名的实现方法进行了详细的分析介绍,需要的朋友参考下
给AcitveX签名有很多种方式,现介绍我所了解的几种:
以下用到的工具请在http://ftp.intron.ac/pub/security/下载authenticode.zip文件
一,使用微软的工具不采用私钥文件
1.制作根证书
makecert -sk "myPK" -ss mySSName -n "CN=公司名称" -r myroot.cer
sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;
2.制作子证书
makecert -sk "myPK" -is mySSName -n "CN=公司名称" -$ commercial -ic myroot.cer test.cer
sk-表示主题的密钥容器位置,is-颁发者的证书存储名称, n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);
3.使用Cert2Spc生成spc发行者证书
cert2spc test.cer test.spc
4.使用signcode为你的程序,库或cab包签名:
双击signcode,或在控制台键入signcode,不带参数会启动签名向导。在第三步选择“自定义选项”,第四步选择“从文件选择”选择test.spc或test.cer,第五步选择“CSP中的私钥”,在密钥容器中选择我们定义的myPK,其他步骤默认即可,如果想添加时间戳,请在时间戳服务器地址上键入:(免费时间戳认证)
http://timestamp.wosign.com/timestamp
完成后,观察你所签名的文件属性,应该已经添加数字签名项。
5.将myroot.cer导入“受信任的根证书颁发机构”,使用chktrust测试刚才的文件是否签名成功
二,使用微软的工具采用私钥文件
1.制作根证书
makecert -sv "myroot.pvk" -ss mySSName -n "CN=公司名称" -r myroot.cer
sv-私钥文件名,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置;
2.制作子证书
makecert -sv "test.pvk" -iv myroot.pvk -n "CN=公司名称" -$ commercial -ic myroot.cer test.cer
sv-私钥文件名,iv-根证书的私钥文件, n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);
3.使用Cert2Spc生成spc发行者证书
cert2spc test.cer test.spc
4.使用signcode为你的程序,库或cab包签名:
双击signcode,或在控制台键入signcode,不带参数会启动签名向导。在第三步选择“自定义选项”,
第四步选择“从文件选择”选择test.spc或test.cer,
第五步选择“文件中的私钥”选择test.pvk,其他步骤默认即可,如果想添加时间戳,请在时间戳服务器地址上键入:(免费时间戳认证)
http://timestamp.wosign.com/timestamp
完成后,观察你所签名的文件属性,应该已经添加数字签名项。
用命令方式:signcode -spc test.spc -v test.pvk -n test的软件 test.cab
注意:用signcode.exe签署自己的软件。假如是.cab文件,需要在用cabarc.exe制作的时候
用-s参数留出签名的空间(一般6144字节即可)。
5.将myroot.cer导入“受信任的根证书颁发机构”,使用chktrust测试刚才的文件是否签名成功
三,使用openssl产生根证书
1.用openssl创建CA证书的RSA密钥(PEM格式):
openssl genrsa -des3 -out ca.key 1024
2.用openssl创建CA证书(PEM格式,假如有效期为一年):
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
openssl是可以生成DER格式的CA证书的,很奇怪Windows却说那证书是“无效的”,
无奈,只好用IE将PEM格式的CA证书转换成DER格式的CA证书。
3.将ca.crt导入至IE中。
导入时注意一定要将证书存储至“本地计算机”。
具体步骤如下:
1)在“我的电脑”或“资源管理器”里双击该文件图标。
2)在“常规”卡片上选择“安装证书”。
3)点“下一步”至“证书导入向导”,选择“将所有的证书放入下列存储区”,
点下面的“浏览”。勾上“显示物理存储区”。选择“受信任的根目录...”下一级的
“本地计算机”。点“确定”,再点“下一步”。
4)点“完成”。
可以检查一下导入是否完全成功:
在IE的Internet选项中的“证书”中“受信任根证书颁发机构”中应该可以
看见上述的根证书。
4.IE的Internet选项中的“证书”中“受信任根证书颁发机构”中将刚才
导入的证书导出。格式为“DER编码的二进制X.509(.CER)”。
假设导出的文件名为ca.cer
5.将PEM格式的ca.key转换为Microsoft可以识别的pvk格式。
  pvk -in ca.key -out ca.pvk -nocrypt -topvk
6.步骤接第二种方式的第3步

相关文章

  • C语言rewind与fseek函数之随机读写文件的用法详解

    C语言rewind与fseek函数之随机读写文件的用法详解

    这篇文章主要介绍了C语言rewind与fseek函数之随机读写文件的用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • C语言实现控制台版贪吃蛇游戏

    C语言实现控制台版贪吃蛇游戏

    这篇文章主要为大家详细介绍了c语言贪吃蛇控制台版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 一文带你了解C语言中的动态内存管理函数

    一文带你了解C语言中的动态内存管理函数

    C语言中内存管理相关的函数主要有realloc、calloc、malloc、free等,这篇文章主要为大家讲解一下这四个函数的具体用法,需要的可以参考一下
    2023-03-03
  • 用C语言实现贪吃蛇小游戏

    用C语言实现贪吃蛇小游戏

    这篇文章主要为大家详细介绍了用C语言实现贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • pybind11: C++ 工程提供 Python 接口的实例代码

    pybind11: C++ 工程提供 Python 接口的实例代码

    这篇文章主要介绍了pybind11: C++ 工程如何提供 Python 接口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • C语言详解如何实现顺序栈

    C语言详解如何实现顺序栈

    顺序栈,就是用一组地址连续的存储单元来存放栈元素,然后用一个栈结构去维护一个栈。在C中,可用动态开辟的数组去表示,维护的栈结构需要有一个栈底和一个栈顶指针
    2022-04-04
  • C语言SetConsoleTextAttribute函数使用方法

    C语言SetConsoleTextAttribute函数使用方法

    这篇文章介绍了C语言SetConsoleTextAttribute函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C++随机点名生成器实例代码(老师们的福音!)

    C++随机点名生成器实例代码(老师们的福音!)

    这篇文章主要给大家介绍了关于C++随机点名生成器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • C++实现屏幕截图功能

    C++实现屏幕截图功能

    这篇文章主要为大家详细介绍了C++实现屏幕截图功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C++实现LeetCode(5.最长回文子串)

    C++实现LeetCode(5.最长回文子串)

    这篇文章主要介绍了C++实现LeetCode(5.最长回文子串),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论