• windows下如何制作和应用数字签名证书 全流程


    目前我们在发布应用程序时,有时用户下载后会被360杀毒当做木马直接隔离。为应用程序可执行文件打上数字签名可以让360杀毒放宽检测规则。下文是讲述如何制作数字签名证书的过程。

      需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。

      在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试用的证书。

      第一步,生成一个自签名的根证书(issuer,签发者)。

      >makecert -n "CN=Root" -r -sv RootIssuer.pvk RootIssuer.cer

      这个时候,会弹出提示框,首先给RootIssuer.pvk文件设置私钥保护口令;

    如何制作和应用数字签名证书

      然后,再次输入这个口令用私钥(在RootIssuer.pvk文件中)来给公钥(在RootIssuer.cer文件中)加密。

    如何制作和应用数字签名证书

      第二步,使用这个证书签发一个子证书(使用者,subject)。

      >makecert -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer

      此时,会弹出提示框先给这个子证书的私钥文件ChildSubject.pvk设置保护口令;

    如何制作和应用数字签名证书

      然后,输入这个子证书的私钥(在ChildSubject.pvk中)口令来保护子证书的公钥(在ChildSubject.cer中)。

    如何制作和应用数字签名证书

      接下来会提示输入根证书私钥(在RootIssuer.pvk中)口令来签发整个子证书(公钥和用户信息)。

    如何制作和应用数字签名证书

      如果你还要签发更多的子证书,类似的,使用这个证书来签发再下层的证书,前提是ChildSubject证书也可以用于签发(作为Issuer)用途。

      备注:

      (1)如果你需要一个交互证书,用于安全通信,那么,加入选项 -sky exchange;

      (2)如果你需要一个签名证书来签发证书或者二进制文件,那么,加入选项 -sky signature.

      (3)如果你需要一个客户端证书来标志你的身份,或者个人信息保护(电子邮件),那么,选项-n 中的E字段是不可缺少的。

      举例:-n "CN=公司名称, E=E-MAIL地址, O=组织名称, OU=组织单位, C=国家, S=省份(州),  P=县城"

    参数为:makecert -r -pe -n "cn=MyCA" -$ commercial -a sha1 -b 08/05/2010 -e 01/01/2012 -cy authority -ss my -sr currentuser

    其中各部分的意义:

    -r: 自签名
    -pe: 将所生成的私钥标记为可导出。这样可将私钥包括在证书中。
    -n "cn=MyCA": 证书的subject name,.net自带类库中有X509Store类,可以在store中根据证书subject name,来找到改证书
    store参考:X509Store 类 
    -$ commercial:指明证书商业使用。。。
    -a:指定签名算法。必须是 md5(默认值)或 sha1。
    -b 08/05/2010:证书有效期的开始时间,默认为证书的创建日期。格式为:mm/dd/yyyy
    -e 01/01/2012:指定有效期的结束时间。默认为 12/31/2039 11:59:59 GMT。格式同上
    -ss my:证书产生到my个人store区
    -sr currentuser:保持到计算机当前个人用户区,其他用户登录系统后则看不到该证书。。

    查看该生成的证书并导出:
    可以在MMC的证书管理单元中对证书存储区进行管理。Windows没有给我们准备好直接的管理证书的入口。自己在MMC中添加,步骤如下: 
    1. 开始→运行→MMC,打开一个空的MMC控制台。
    2. 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”我的用户账户”→关闭→确定
    3. 在控制台菜单,文件→添加/删除管理单元→添加按钮→选”证书”→添加→选”计算机账户”→关闭→确定

    然后导出为PFX格式的证书,PKCS#12规范的证书,包含了公钥和私钥,导出时需要提供一个私钥的保护密码,在导出时设置即可

      其他辅助工具:

      1) 公钥证书格式转换成SPC。 cert2spc.exe

      >cert2spc TestRoot.cer TestRoot.spc

      .spc 意思是 软件发布者证书(Software Pulisher Cerificate).

      2) 将公钥证书和私钥合并成一个PFX格式的证书文件。pvk2pfx.exe

      >pvk2pfx -pvk TestRoot.pvk -spc TestRoot.spc -pfx TestRoot.pfx

      输入TestRoot.pvk的保护口令来合并.pvk和.spc文件,如果你不设置即将合并出来的TestRoot.pfx的保护口令的话,这个保护口令和输入文件TestRoot.pvk的保护口令一样。(备注:直接从cer文件也可以,不一定要得到SPC文件).

      3) 签名工具。signtool.exe

      二进制文件数字签名.为了保证二进制文件的完整性,数字签名是一个好的方法。

      以下命令启动一个有图形界面的文件签名工具向导:

      >signtool wizard

      以下是命令行方式的签名:

      >signtool  sign /f "pfx文件的全路径" /p "pfx文件的保护口令" /t "http://timestamp.verisign.com/scripts/timstamp.dll" /d "本次签名的描述" "被签名的程序的全路径"

     
  • 相关阅读:
    hdu2083
    斐波那数
    hdu2000~hdu2099
    hdu2070
    hdu2071
    hdu2095
    TSINGSEE青犀视频云边端架构视频直播点播平台/人脸识别系统EasyDSS 如何开启debug 日志?
    RTMP协议视频直播点播智能分析平台EasyDSS如何增加Stream模块实现TCP代理?
    RTMP推流平台/视频直播点播分析平台/人脸识别系统EasyDSS如何实现RTMP负载均衡?
    关于视频智能分析平台人脸识别/车牌识别系统EasyDSS登录及直播点播的安全防盗链验证说明
  • 原文地址:https://www.cnblogs.com/jackzz/p/11106057.html
Copyright © 2020-2023  润新知