• 创建项目签名证书


    近日,需要为一个Silverlight项目添加签名证书(注意:如果单是为了测试,在VS项目->属性->签名,有个创建测试证书的功能,虽然这个证书的有效期是一年,是一年吧:(,忘记了。。。)。因为我的这个是需要部署到客户那边的,即使是测试的,测试期限也要长点啊,SO...

    在网上找了很多例子,但都不详细,或者说不符合我的需求。最后,综合网上的资料,鄙人整理了如下。

    本机装的是VS2012,以下所有工具都可在C:Program Files (x86)Microsoft SDKsWindowsv7.1ABin目录找到。

    第一步,打开CMD或者VS2012的工具命令

    我用的是后者,如果是用CMD的,可直接把makecert.exe、cert2spc.exe等复制到C:WindowsSystem32目录,这样的话输入命令时就不需要专门导航到对应的目录了

    第二步,创建 X.509 证书

    v7.1ABin目录里的makecert.exe为证书创建工具。
    证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。
    此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
    创建证书时会提示要求证书的私钥密码(Subject Key,两个密码输入框),并会在生成cer文件是再次要求输入密码(一个输入框),最后提示Succeeded,并在C:Program Files (x86)Microsoft Visual Studio 11.0(我的是x64位系统,不同的系统,目录路径可能有所区别)目录下生成两个文件。
    参考:http://msdn.microsoft.com/zh-cn/library/bfsktky3(v=vs.110).aspx

    命令:

    makecert  -r -n "CN=广州软件有限公司" -b 01/01/2014 -e 12/31/2100 -sv IvanSetupKey.pvk IvanSetupKey.cer

    第三步,创建发行者证书

    cert2spc.exe发行者证书测试工具
    发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。
    参考:http://msdn.microsoft.com/zh-cn/library/f657tk8f(v=vs.110).aspx
    生成发行者证书时,不要求输入私钥密码,提示成功后,在IvanSetupKey.cer证书所在目录,可以看到多了一个IvanSetupKey.spc文件

    命令:

    cert2spc IvanSetupKey.cer IvanSetupKey.spc

    第四步,导出证书文件

    pvkimprt.exe是证书导出工具。需要从微软网站下载:http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe
    注意:下载之后的pvkimprt.exe是个压缩文件!需要我们双击解压得到pvkimprt.exe才是我们想要的!运行解压得到的pvkimprt.exe,会提示安装,安装成功后就可正常使用命令了。

    证书导出工具用于将.spc和.pvk文件导出为pfx证书文件。
    导出时,会提示创建证书的密码
    输入正确的密码后,出现导出向导界面,点击下一步,选择“是,导出密钥”,然后点击下一步,
    出现证书类型选择界面,选择“个人信息交换 - PKCS #12(.PFX)(P)”(只有这一种可选,并且其下面的选项均不选择),再点击下一步,
    出现私钥保护密码选项,输入密码,然后点击下一步,在文本框中输入要生成的文件名(一般与证书名称一致,最后得到的文件名后缀是.pvk),点击下一步
    显示完成窗口,并显示导出证书的信息。

    命令:
    pvkimprt -pfx IvanSetupKey.spc IvanSetupKey.pvk

    第五步,收工阶段,把签名添加到项目中

    在项目属性中,选择“签名”选项卡
    点击“从文件选择”,然后选择生成的.pfx文件
    选择了.pfx文件后,会提使输入私钥保护密码,输入正确的私钥保护密码后,即可添加到项目中。
    现在再看证书的有效期,是不是延长到2100年了
    (^o^)/~

    补充:

    我在导入证书之后,在浏览器打开程序,点击安装OOB模式时,会弹出黄色警报提示。好吧,继续解决此问题~紧接上面的步骤,打开项目属性里的签名之后,选择“更多详细信息”,选择“常规”->“安装证书”,在下一步中,选择”将所有的证书放入下列存储“,并浏览选择受信任的机构,按“确定”、“确定”。Ok!

    本文参考自Muse的文章:http://www.cnblogs.com/yuxs/archive/2009/06/08/1498592.html

    补充:如果是别的电脑打开该工程时,会出现类似以下提示:

    错误    45    无法导入以下密钥文件: HZAnalysisIKey.pfx。该密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 CSP: VS_KEY_F5ABFB8972AFDF7B    LIMS.Analysis (LIMS.AnalysisLIMS.Analysis)

    这时,可采用下面的方法:

    1、打开Visual Studio 命令提示

    2、cd命令定位到当前密钥文件xxxx.pfx的目录,如:cd /d "D:WorkGit Project CodeLIMSLIMS.AnalysisLIMS.Analysis"

    3、输入命令: sn -i [CertName].pfx [VS_KEY], 例如: sn -i HZAnalysisIKey.pfx VS_KEY_F5ABFB8972AFDF7B

    4、.输入密码pfx密码

  • 相关阅读:
    【特种兵系列】String中的==和equals()
    windows7 x64下maven安装和配置
    微信开发之本地接口调试(非80端口,无需上传服务器服务器访问)
    Java微信公众平台接口封装源码分享
    jdk安装
    用户权限管理
    Linux常用命令(一)
    Xshell显示中文乱码问题
    伪装虽易测试不易之微信浏览器
    每次新建项目出现appcompat_v7 解决方法
  • 原文地址:https://www.cnblogs.com/oneivan/p/3507118.html
Copyright © 2020-2023  润新知