首页 > 其他 > 详细

Makecert.exe(证书创建工具)

时间:2014-04-04 21:28:42      阅读:2579      评论:0      收藏:0      [点我收藏+]

Makecert.exe(证书创建工具)

.NET Framework 4.5
 
其他版本
bubuko.com,布布扣
 
2(共 3)对本文的评价是有帮助 评价此主题
 

 

证书创建工具生成仅用于测试目的的 X.509 证书。 它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。 此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。

bubuko.com,布布扣 说明

Working with Certificates.‘ data-guid="5514707c4a299e94b1748dea4fae22a5">有关 X.509 证书的概述,请参阅 使用证书

Makecert.exe 包含基本选项和扩展选项。 基本选项是最常用于创建证书的选项。 扩展选项提供更多的灵活性。

一定不要将此工具生成的证书私钥存储在 .snk 文件中。 如果需要存储私钥,则应使用密钥容器。 How to: Store Asymmetric Keys in a Key Container.‘ data-guid="c5f755b0f283a3135649b57ca76406f0">关于如何在密钥容器中存储私钥的更多信息,请参见 如何:将非对称密钥存储在密钥容器中

bubuko.com,布布扣 警告

应使用证书存储区来安全地存储证书。此工具使用的 .snk 文件以不受保护的方式存储私钥。创建或导入 .snk 文件时,在使用期间应注意保证其安全,并在使用后将其移除。

安装 Visual Studio 和 Windows SDK 时会自动安装此工具。 要运行工具,我们建议您使用 Visual Studio 命令提示符或 Windows SDK 命令提示符(也称 CMD Shell)。 您可以使用这些实用程序轻松运行工具,而不需要导航到安装文件夹。 Visual Studio and Windows SDK Command Prompts.‘ data-guid="d31c22376b148c962a4348bb82bafb3a">有关详细信息,请参阅 Visual Studio 和 Windows SDK 命令提示

  • Start, click All Programs, click Visual Studio, click Visual Studio Tools, and then click Visual Studio Command Prompt.‘ data-guid="7eb5f294a346fb88df5bfcd81fae53fc">如果您的计算机上已安装了 Visual Studio:在任务栏上依次单击 StartAll ProgramsVisual StudioVisual Studio ToolsVisual Studio Command Prompt

    - 或 -

    Start, click All Programs, click the folder for the Windows SDK, and then click Command Prompt (or CMD Shell).‘ data-guid="e5c9a16fbd50ab1d8670bf733f16422d">如果您的计算机上已安装了 Windows SDK:在任务栏上依次单击 StartAll Programs、Windows SDK 文件夹和 Command Prompt(或CMD Shell)。

  • 在命令提示处,键入下列命令:

 
 
makecert [options] outputCertificateFile
 

参数

描述

outputCertificateFile

测试 X.509 证书要写入的 .cer 文件的名称。

 

选项

描述

-n name‘ data-guid="673ce22f1f5300eefeb67176f4478f85">-n  name

指定主题的证书名称。 此名称必须符合 X.500 标准。 CN=; for example, -n "CN=myName".‘ data-guid="ae1a60f97e8c955d1d7b8b215082e38f">最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,-n "CN=myName"。

-pe

将所生成的私钥标记为可导出。这样可将私钥包括在证书中。

-sk keyname‘ data-guid="47f1cac1a2c46c25cc1a04387a999116">-sk  keyname

指定主题的密钥容器位置,该位置包含私钥。 如果密钥容器不存在,系统将创建一个。

-sr location‘ data-guid="fa32c731e68058ade8455300b7107cbf">-sr  location

指定主题的证书存储位置。 location can be either currentuser (the default) or localmachine.‘ data-guid="69fbce5e43c1113400d7544d2336b393">location 可以为 currentuser(默认)或 localmachine

-ss store‘ data-guid="36105439761a3202826265ca42f543e6">-ss  store

指定主题的证书存储名称,输出证书即存储在那里。

X509Store.Name property. ‘ data-guid="4a8708589bf111a3a33af8915e945cd0">有关在本地系统发现的可显示所有标准证书存储区名称的示例,请参阅 X509Store.Name 属性。

-# number‘ data-guid="45cb8c77d78730a87eeda386025ef5c4">-#  number

指定从 1 到 2,147,483,647 的序列号。 默认值是由 Makecert.exe 生成的唯一值。

-$ authority‘ data-guid="36b5b9ac4f4393bd04bd85e55e621ffa">-$  authority

commercial (for certificates used by commercial software publishers) or individual (for certificates used by individual software publishers).‘ data-guid="2df5f821d6cbd5cf0037d979d82b9eb7">指定证书的签名权限,必须设置为 commercial (对于商业软件发行者使用的证书)或 individual(对于个人软件发行者使用的证书)。

-?

显示此工具的命令语法和基本选项列表。

-!

显示此工具的命令语法和扩展选项列表。

 

选项

描述

-a algorithm‘ data-guid="c80f71abdc9af3f7abeca25643293be8">-a  algorithm

指定签名算法。 algorithm must be md5, sha1 (the default), sha256, sha384, or sha512.‘ data-guid="d6e4bf6e40e7d139933bcc3edc4de220">algorithm 必须是 md5sha1(默认值)、sha256sha384 或 sha512

-b mm/dd/yyyy‘ data-guid="45b1ab14848f9b9687245c53f5e537d5">-b mm/dd/yyyy

指定有效期的开始时间。 当前日期的默认值。

-crl

生成证书重定位列表 (CRL) 而不是证书。

-cy certType‘ data-guid="5eb3bc442fd41de4162b7a5a4153beca">-cy  certType

指定证书类型。 end for end-entity and authority for certification authority.‘ data-guid="57dccf51a25ebb4ce4718eb8b2c56ace">有效值是 end(对于最终实体)和 authority (对于证书颁发机构)。

-e mm/dd/yyyy‘ data-guid="1412ef24ec02de30c6caca5fb52948e6">-e mm/dd/yyyy

指定有效期的结束时间。 默认为 12/31/2039 11:59:59 GMT。

-eku oid[,oid…]‘ data-guid="e6605d8214f73096505a5e5604711aa6">-eku oid[,oid…]

将用逗号分隔的增强型密钥用法对象标识符 (OID) 列表插入到证书中。

-h number‘ data-guid="87422f081bdbb3329588817f91e00713">-h  number

指定此证书下面的树的最大高度。

-ic file‘ data-guid="e2c04c57eb32644c2706f0470280f369">-ic  file

指定颁发者的证书文件。

-ik keyName‘ data-guid="50105a4cbbff87c3566e1c320c86de8f">-ik  keyName

指定颁发者的密钥容器名称。

-iky keytype‘ data-guid="9d5ba20bb8a4a53b3c5a56f2f4cad469">-iky  keytype

指定发布者的密钥类型,必须是下列之一:signature(其中指出密钥用于数字签名),exchange(其中指出密钥用于密钥加密和密钥交换),或一个整数,表示提供程序类型。 1 for an exchange key or 2 for a signature key.‘ data-guid="dfa2b60b7c00a6265ad02c7f8caa3e0a">默认情况下,可传入1 表示交换密钥,或2 表示签名密钥。

-inname‘ data-guid="7377462ec274df948c30edc058b52685">-in name

指定颁发者的证书公用名称。

-ip provider‘ data-guid="c53fe69a857ffbfaf9ece9ad980bbca2">-ip  provider

指定颁发者的 CryptoAPI 提供程序名称。 -sp option.‘ data-guid="26283512d6abeb7a34b79601dc84eb92">关于 CryptoAPI 提供程序名称的信息,请参见 -sp

-ir location‘ data-guid="cc6a9813dd997900238d471997df2ca1">-ir  location

指定颁发者的证书存储区的位置。location 可以是 currentuser(默认)或 localmachine

-is store‘ data-guid="b0f1dd71f09809da2f74c3445103f6e5">-is  store

指定颁发者的证书存储名称。

-iv pvkFile‘ data-guid="73eb42f14ddc503f653d107f201f197a">-iv  pvkFile

指定颁发者的 .pvk 私钥文件。

-iy type‘ data-guid="a021636ab7744f1c76673cd7db3db055">-iy  type

指定颁发者的 CryptoAPI 提供程序类型。 -sy option.‘ data-guid="0cfd591f2d131c9532d687261a48da47">关于 CryptoAPI 提供程序类型的信息,请参见 -sy 选项。

l link‘ data-guid="b955239c42c1cf1d10df42ba78d1e077">-l link

到策略信息的链接(例如,一个 URL)。

-lennumber‘ data-guid="7d3393a5c8bbf344ce3f3a80afb1f25d">-len number

指定生成的密钥长度(以位为单位)。

-m number‘ data-guid="d5a620e019c604cd96d8ebec4768c8e1">-m  number

以月为单位指定证书有效期的持续时间。

-nscp

包括 Netscape 客户端身份验证扩展。

-r

创建自签署证书。

-sc file‘ data-guid="2911e778dbb8f0265be19d955722734f">-sc  文件

指定主题的证书文件。

-sky keytype‘ data-guid="9468ea6c5a4ebb9c75fdf290a44c6d1a">-sky  keytype

指定主题密钥类型,必须是下列之一:signature(其中指出密钥用于数字签名),exchange(其中指出密钥用于密钥加密和密钥交换),或一个整数,表示提供程序类型。默认情况下,可传入1 表示交换密钥,或2 表示签名密钥。

-sp provider‘ data-guid="be408aa0d426b9fb71044395ebda2580">-sp  provider

指定主题的 CryptoAPI 提供程序名称,该名称必须在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider 的注册表子项中已有定义。 如果 -sp 和 -sy 都出现, CryptoAPI 提供程序的类型应对应于提供程序的子项的 Type 值。

-sv pvkFile‘ data-guid="4c0fdb0be44e9a798d38a773936f9882">-sv  pvkFile

指定主题的 .pvk 私钥文件。 如果该文件不存在,系统将创建一个。

-sy type‘ data-guid="264bda80817836701a5dcdb841daad3f">-sy  type

指定主题的 CryptoAPI 提供程序类型,该类型必须在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider 的注册表子项中已有定义。 -sy and -sp are present, the name of the CryptoAPI provider must correspond to the Name value of the provider type subkey.‘ data-guid="79120adb7c9a9bb8d823954d5a2e2ddd">如果 -sy 和 -sp 都出现, CryptoAPI 提供程序的类型应对应于提供程序的子项的 Name 值。

-tbs

指定需签名的证书或 CRL 文件。

testCert.cer.‘ data-guid="0f656de35d4597ba10947bbef5b39e2f">下面的命令创建了一个由默认测试根颁发的测试证书并将其写入 testCert.cer

 
 
makecert testCert.cer

下面的命令创建了一个由默认测试根颁发的证书并将其保存到证书存储区。

 
 
makecert -ss testCertStore

currentuser store.‘ data-guid="095d53def5cbe7651be1850cfc912487">下面的命令创建了一个由默认测试根颁发的证书并将其保存到证书存储区。它将证书显式地放入 currentuser 存储区。

 
 
makecert -ss testCertStore -sr currentuser

下面的命令使用主题的密钥容器和证书主题的 X.500 名称创建一个测试证书,并将其写入 textXYZ.cer

 
 
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer 

下面的命令创建了一个由默认测试根颁发的证书和一个 .pvk 文件,并将此证书同时输出到存储区和该文件。

 
 
makecert -sv testCert.pvk -ss testCertStore testCert.cer

下面的命令创建了一个由默认测试根颁发的证书和一个密钥容器,并将此证书同时输出到存储区和该文件。

 
 
makecert -sk myTestKey -ss testCertStore testCert.cer

my store, specifies an exchange key, and makes the private key exportable.‘ data-guid="b9beea71e3f574da3c63b5ce6bb39ddb">下面的命令创建一个自我签署的证书,指定使用者名称为“CN=XYZ Company”,指定有效期的起始和结束时间,将密钥放入 my 存储区,指定并交换密钥,并且使私钥可导出。

 
 
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my

以下命令创建自签名证书,该证书可以用于测试 web 应用程序,这个程序使用的是 URL 为 www.example.com web 的网络服务器上的“安全套接字层”(SSL)。 -eku option identifies that certificate as an SSL server certificate.‘ data-guid="6351232e7f4ec33220ebc32c9a3b556f">由 -eku 选项定义的 OID 标识该证书作为 SSL 服务器证书。 my store and is available at the machine (rather than user) level.‘ data-guid="d7c5acc20d41c29d153337a4dee1d11c">证书存储在 my 存储,并在计算机(而非用户)级别可用。 证书专用密钥可用导出,证书有效期从 2010 年 5 月 10 日至 2011 年 12 月 22 日。

 
 
Makecert -r -pe -n CN="www.example.com" -b 05/10/2010 -e 12/22/2011 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

下面的命令创建了一些证书并将它们保存到存储区。第一个命令使用默认测试根创建了一个证书并将其保存到存储区。 第二个命令使用新创建的证书创建了另一个证书,并将第二个证书保存到另一个存储区。

 
 
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore

下面的命令创建了一些证书并将它们保存到存储区。 my store.‘ data-guid="11013f4716a7287cf24bb2fbec3b4061">第一个命令将证书保存到 my 存储区。 第二个命令使用新创建的证书创建了另一个证书。 my store, the second command identifies the first certificate by using its common name.‘ data-guid="1ecbbad2ad1bf07fdb1ae61823e322e4">因为 my 存储区中存在多个证书,所以第二个命令使用公用名称来标识第一个证书。

 
 
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore

my store and to a file.‘ data-guid="0f2fd1d23f925c698a396dbb5645a24d">下面的命令创建了一些证书并将它们保存到文件和存储区。第一个命令使用默认测试根创建了一个证书并将其保存到 my 存储区和一个文件。 testCert.cer certificate. Because there is more than one certificate in the my store, the second command uniquely identifies the first certificate by using the certificate file name.‘ data-guid="3b49b3dd2a96c261ffdfe701ddd0238d">第二个命令使用新创建的testCert.cer 证书创建了另一个证书。因为 my 存储区中存在多个证书,所以第二个命令使用证书文件名来唯一标识第一个证书。

 
 
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore




地址:http://msdn.microsoft.com/zh-cn/library/bfsktky3.aspx

Makecert.exe(证书创建工具),布布扣,bubuko.com

Makecert.exe(证书创建工具)

原文:http://www.cnblogs.com/huangzelin/p/3645520.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!