创建ClickOnce项目签名证书详细步骤以及批处理文件
2012-08-24 17:31
483 查看
------ 第一步 创建 X.509 证书 ------
makecert.exe为证书创建工具。
证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。
此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
创建证书时会提示要求证书的私钥密码(Subject Key,两个密码输入框),并会在生成cer文件是再次要求输入密码(一个输入框)
参考:http://msdn.microsoft.com/zh-cn/library/bfsktky3(VS.80).aspx
命令行为:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\makecert.exe" -r -n "CN=xxxx软件有限公司" -b 01/01/2009 -e 12/31/2019 -sv CbipSetupKey.pvk CbipSetupKey.cer
------ 第二步 创建发行者证书 ------
cert2spc.exe发行者证书测试工具
发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。
参考:http://msdn.microsoft.com/zh-cn/library/f657tk8f(VS.80).aspx
生成发行者证书时,不要求输入私钥密码
命令行为:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\cert2spc.exe" CbipSetupKey.cer CbipSetupKey.spc
------ 第三步 导出证书文件------
pvkimprt.exe是证书导出工具。需要从微软网站下载:http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe。
证书导出工具用于将.spc和.pvk文件导出为pfx证书文件。
导出时,会提示创建证书的密码
输入正确的密码后,出现导出向导界面,点击下一步,选择“是,导出密钥”,然后点击下一步,
出现证书类型选择界面,选择“个人信息交换 - PKCS #12(.PFX)(P)”(只有这一种可选,并且其下面的选项均不选择),再点击下一步,
出现私钥保护密码选项,输入密码,然后点击下一步,在文本框中输入要生成的文件名(一般与证书名称一致),点击下一步
显示完成窗口,并显示导出证书的信息。
pvkimprt -pfx CbipSetupKey.spc CbipSetupKey.pvk
------ 第四步 添加到项目中------
在项目属性中,选择“签名”选项卡
勾选“为ClickOnce清单签名”,点击“从文件选择”,然后选择生成的.pfx文件(如果项目中已经存在同名文件,则需要先删除)
选择了.pfx文件后,会提使输入私钥保护密码,输入正确的私钥保护密码后,即可添加到项目中。
需要注意的是证书的有效期,证书有起止有效期,当超出有效期时,将被视为无效证书,无法签名。
http://www.cnblogs.com/yuxs/archive/2009/06/08/1498592.html
以下是批处理文件 待签名的exe放在executefiles目录下
=============安全性 篇目录==============
证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
应使用证书存储区来安全地存储证书(证书存储区是系统中一个特殊区域,专门用来保存X.509数字证书)。此工具使用的 .snk 文件以不受保护的方式存储私钥。创建或导入 .snk 文件时,在使用期间应注意保证其安全,并在使用后将其移除。
预设了以下存储区:
AddressBook 其他用户的 X.509 证书存储区。
AuthRoot 第三方证书颁发机构 (CA) 的 X.509 证书存储区。
CertificateAuthority 中间证书颁发机构 (CA) 的 X.509 证书存储区。
Disallowed 吊销的证书的 X.509 证书存储区。
My 个人证书的 X.509 证书存储区。
Root 受信任的根证书颁发机构 (CA) 的 X.509 证书存储区。
TrustedPeople 直接受信任的人和资源的 X.509 证书存储区。
TrustedPublisher 直接受信任的发行者的 X.509 证书存储区。
格式:makecert [options] outputCertificateFile
基本选项 (输入:makecert /?)
扩展选项 (输入:makecert /!)
相关链接:
《(2)什么是数字证书?什么是数字时间戳》
参考资源:
Makecert.exe(证书创建工具)
makecert.exe为证书创建工具。
证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。
此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
创建证书时会提示要求证书的私钥密码(Subject Key,两个密码输入框),并会在生成cer文件是再次要求输入密码(一个输入框)
参考:http://msdn.microsoft.com/zh-cn/library/bfsktky3(VS.80).aspx
命令行为:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\makecert.exe" -r -n "CN=xxxx软件有限公司" -b 01/01/2009 -e 12/31/2019 -sv CbipSetupKey.pvk CbipSetupKey.cer
------ 第二步 创建发行者证书 ------
cert2spc.exe发行者证书测试工具
发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。
参考:http://msdn.microsoft.com/zh-cn/library/f657tk8f(VS.80).aspx
生成发行者证书时,不要求输入私钥密码
命令行为:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\cert2spc.exe" CbipSetupKey.cer CbipSetupKey.spc
------ 第三步 导出证书文件------
pvkimprt.exe是证书导出工具。需要从微软网站下载:http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe。
证书导出工具用于将.spc和.pvk文件导出为pfx证书文件。
导出时,会提示创建证书的密码
输入正确的密码后,出现导出向导界面,点击下一步,选择“是,导出密钥”,然后点击下一步,
出现证书类型选择界面,选择“个人信息交换 - PKCS #12(.PFX)(P)”(只有这一种可选,并且其下面的选项均不选择),再点击下一步,
出现私钥保护密码选项,输入密码,然后点击下一步,在文本框中输入要生成的文件名(一般与证书名称一致),点击下一步
显示完成窗口,并显示导出证书的信息。
pvkimprt -pfx CbipSetupKey.spc CbipSetupKey.pvk
------ 第四步 添加到项目中------
在项目属性中,选择“签名”选项卡
勾选“为ClickOnce清单签名”,点击“从文件选择”,然后选择生成的.pfx文件(如果项目中已经存在同名文件,则需要先删除)
选择了.pfx文件后,会提使输入私钥保护密码,输入正确的私钥保护密码后,即可添加到项目中。
需要注意的是证书的有效期,证书有起止有效期,当超出有效期时,将被视为无效证书,无法签名。
http://www.cnblogs.com/yuxs/archive/2009/06/08/1498592.html
以下是批处理文件 待签名的exe放在executefiles目录下
:: Digital signature :: XXXName :: 2011-3-15 @echo off :: set files here for sign :: sign one file once set path=./executefiles/ set filename=%path%MFCTest.exe set keyname=aikey.pvk set certname=aicert.cer set spcname=%certname%.spc set timeurl=http://timestamp.comodoca.com/authenticode :: timestamp URL :: http://timestamp.verisign.com/scripts/timstamp.dll :: http://timestamp.globalsign.com/scripts/timstamp.dll :: http://timestamp.comodoca.com/authenticode set signInfo="CN=MyCorporation Inc" ::set signInfo="CN=MyCorporation Inc,E=Support@MyCorporation.com,O=XXXName" :: not sign timestamp ::set args= -spc %spcname%.spc -v %keyname% %filename% set signargs= -t %timeurl% -spc %spcname% -v %keyname% %filename% makecert.exe -sv %keyname% -n %signInfo% %certname% cert2spc.exe %certname% %spcname% signcode.exe %signargs% pause
=============安全性 篇目录==============
证书创建工具生成仅用于测试目的的 X.509 证书。它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
应使用证书存储区来安全地存储证书(证书存储区是系统中一个特殊区域,专门用来保存X.509数字证书)。此工具使用的 .snk 文件以不受保护的方式存储私钥。创建或导入 .snk 文件时,在使用期间应注意保证其安全,并在使用后将其移除。
预设了以下存储区:
AddressBook 其他用户的 X.509 证书存储区。
AuthRoot 第三方证书颁发机构 (CA) 的 X.509 证书存储区。
CertificateAuthority 中间证书颁发机构 (CA) 的 X.509 证书存储区。
Disallowed 吊销的证书的 X.509 证书存储区。
My 个人证书的 X.509 证书存储区。
Root 受信任的根证书颁发机构 (CA) 的 X.509 证书存储区。
TrustedPeople 直接受信任的人和资源的 X.509 证书存储区。
TrustedPublisher 直接受信任的发行者的 X.509 证书存储区。
格式:makecert [options] outputCertificateFile
基本选项 (输入:makecert /?)
-n x509name | 指定主题的证书名称。在双引号中指定此名称,并加上前缀 CN=;例如,"CN=myName"。 |
-pe | 将所生成的私钥标记为可导出。这样可将私钥包括在证书中。 |
-sk keyname | 指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。 |
-sr location | 指定主题的证书存储位置。Location 可以是 currentuser(默认值)或 localmachine。 |
-ss store | 指定主题的证书存储名称,输出证书即存储在那里。 |
-# number | 指定一个介于 1 和 2,147,483,647 之间的序列号。默认值是由 Makecert.exe 生成的唯一值。 |
-$ authority | 指定证书的签名权限,必须设置为 commercial(对于商业软件发行者使用的证书)或 individual(对于个人软件发行者使用的证书)。 |
-a algorithm | 指定签名算法。必须是 md5(默认值)或 sha1。 |
-b mm/dd/yyyy | 指定有效期的开始时间。默认为证书的创建日期。 |
-e mm/dd/yyyy | 指定有效期的结束时间。默认为 12/31/2039 11:59:59 GMT。 |
-m number | 以月为单位指定证书有效期的持续时间。 |
-cy certType | 指定证书类型。有效值是 end(对于最终实体)和 authority(对于证书颁发机构)。 |
-d name | 显示主题的名称。 |
-eku oid[,oid] | 将用逗号分隔的增强型密钥用法对象标识符 (OID) 列表插入到证书中。 |
-h number | 指定此证书下面的树的最大高度。 |
-ic file | 指定颁发者的证书文件。 |
-ik keyName | 指定颁发者的密钥容器名称。 |
-iky keytype | 指定颁发者的密钥类型,必须是 exchange、signature 或一个表示提供程序类型的整数。默认情况下,可传入 1 表示交换密钥,传入 2 表示签名密钥。 |
-in name | 指定颁发者的证书公用名称。 |
-ip provider | 指定颁发者的 CryptoAPI 提供程序名称。 |
-ir location | 指定颁发者的证书存储位置。Location 可以是 currentuser(默认值)或 localmachine。 |
-is store | 指定颁发者的证书存储名称。 |
-iv pvkFile | 指定颁发者的 .pvk 私钥文件。 |
-iy pvkFile | 指定颁发者的 CryptoAPI 提供程序类型。 |
-l link | 到策略信息的链接(例如,一个 URL)。 |
-r | 创建自签署证书。 |
-sc file | 指定主题的证书文件。 |
-sky keytype | 指定主题的密钥类型,必须是exchange、 signature或一个表示提供程序类型的整数。默认情况下,可传入 1 表示交换密钥,传入 2 表示签名密钥。 |
-sp provider | 指定主题的 CryptoAPI 提供程序名称。 |
-sv pvkFile | 指定主题的 .pvk 私钥文件。如果该文件不存在,系统将创建一个。 |
-sy type | 指定主题的 CryptoAPI 提供程序类型。 |
相关链接:
《(2)什么是数字证书?什么是数字时间戳》
参考资源:
Makecert.exe(证书创建工具)
相关文章推荐
- 创建ClickOnce项目签名证书详细步骤
- 创建ClickOnce项目签名证书详细步骤
- 创建私有CA以及证书颁发详细步骤 推荐
- 【Android】如何创建自己的证书文件,如何为apk以及zip文件签名 openssl
- AndroidStudio项目提交到github以及工作中实际运用(详细步骤)
- 如何用Cocos2d-x创建lua项目以及lua项目如何调用cpp文件(图文讲解)
- 创建为ClickOnce清单签名的.pfx格式数字证书
- SSM项目spring配置文件详细步骤(分门别类、灵巧记忆)
- 创建为ClickOnce清单签名的.pfx格式数字证书
- 图文介绍MyEclipse (2015) 中创建简单的Maven项目的步骤(用于生成可运行jar文件)
- 使用Maven插件创建Web项目的详细步骤
- 创建web项目的步骤以及JSP相关问题
- 创建项目签名证书
- 用Maven创建web项目(详细步骤)
- 【末世旅行之Cocos2d-x】创建项目以及批处理快捷创建项目
- MyEclipse (2015) 中创建简单的Maven项目的步骤(用于生成可执行jar文件)
- 使用IDEA创建javaweb项目并配置详细步骤+导出war包详细步骤
- Vue-cli创建vue项目以及配置文件梳理
- 使用Maven插件创建Web项目的详细步骤
- 创建为ClickOnce清单签名的.pfx格式数字证书