简介
证书创建工具生成仅用于测试目的的 X.509 证书。 它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。 此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书(该证书将用户指定的名称绑定到密钥对的公共部分)。绝不要将此工具生成的证书私钥存储在 .snk 文件中。 如果需要存储私钥,则应使用密钥容器。
基本语法结构: makecert
基本选项
/
扩展选项
生成的文件名
创建根证书
1
2
|
makecert.exe -n "CN=CARoot" -r -pe -a sha512 -len 4096 -cy authority -sv CARoot.pvk CARoot.cer
pvk2pfx.exe -pvk CARoot.pvk -spc CARoot.cer -pfx CARoot.pfx -po Test123
|
注意: 在这里只有 cer 文件可以分享。现在这张证书是不受信任的,需要将这张证书安装到 Local Machine 的 Root 目录下。
创建服务端证书
1
2
3
|
makecert.exe -n "CN=yourdomain.com" -iv CARoot.pvk -ic CARoot.cer -pe -a sha512 -len 4096
-b 01/01/2014 -e 01/01/2016 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -sv server.pvk server.cer
pvk2pfx.exe -pvk %1.pvk -spc server.cer -pfx server.pfx -po Pwd123
|
将这张证书安装到 Local Machine 的 Personal 目录下。
创建客户端证书
1
2
3
|
makecert.exe -n "CN=yourdomain.com" -iv CARoot.pvk -ic CARoot.cer -pe -a sha512 -len 4096
-b 01/01/2014 -e 01/01/2016 -sky exchange -eku 1.3.6.1.5.5.7.3.2 -sv client.pvk client.cer
pvk2pfx.exe -pvk %1.pvk -spc client.cer -pfx client.pfx -po Pwd123
|
将这张证书安装到 Current User 的 Personal 目录下。
注意:
- 对于生产环境,大部分选择从第三方受信任的公司和机构购买证书,但是对于开发和测试而言,我们优先选择创建自签名的根证书用以为其他证书签名。例子:SSL Certificate 用以 servers 和 clients 的认证。
- 当你这样做的时候,你的根证书是默认不受信任的,你需要将它添加到你机器的根证书目录下。
- pvk2pfx 工具的作用是分别从 pvk 文件中提取私钥和从 cer 文件中提取公钥来创建 pfx 文件。
基本选项
缩 写 |
名称 |
描述 |
n |
name |
主题的证书名称。 此名称必须符合 X.500 标准 |
pe |
|
将所生成的私钥标记为可导出。 这样可将私钥包括在证书中 |
sk |
keyname |
主题的密钥容器位置,该位置包含私钥。 如果密钥容器不存在,系统将创建一个 |
sr |
location |
主题的证书存储位置。 位置可为 currentuser/localmachine |
ss |
store |
主题的证书存储名称(可存储输出证书) |
# |
number |
一个介于 1 和 2,147,483,647 之间的序列号。 默认值是由 Makecert.exe 生成的唯一值 |
$ |
authority |
证书的签名授权机构,必须将其设置为 commercial(用于商业软件发行者使用的证书)或 individual(用于个人软件发行者使用的证书) |
? |
|
显示工具的命令语法和基本选项列表。 |
! |
|
显示工具的命令语法和扩展选项列表。 |
扩展选项
缩 写 |
名称 |
描述 |
a |
algorithm |
签名算法。算法必须是 md5、sha1(默认)、sha256、sha384 或 sha512 |
b |
mm/dd/yyyy |
指定有效期的开始时间。 默认值为当前日期 |
crl |
|
生成证书吊销列表 (CRL),而不是证书 |
cy |
certType |
证书类型。 有效值是 end(对于最终实体)和 authority(对于证书颁发机构) |
e |
mm/dd/yyyy |
有效期的结束时间。 默认值为 12/31/2039 11:59:59 GMT |
eku |
oid[,oid…] |
将用逗号分隔的增强型密钥用法对象标识符(OID)列表插入到证书中 |
h |
number |
此证书下面的树的最大高度 |
ic |
file |
颁发者的证书文件 |
ik |
keyName |
颁发者的密钥容器名称 |
iky |
keytype |
发布者的密钥类型 |
in |
name |
颁发者的证书公用名称 |
ip |
provider |
颁发者的 CryptoAPI 提供程序名称 |
ir |
location |
颁发者的证书存储的位置。位置可为 currentuser/localmachine |
is |
store |
颁发者的证书存储名称 |
iv |
pvkFile |
颁发者的 .pvk 私钥文件 |
iy |
type |
颁发者的 CryptoAPI 提供程序类型 |
l |
link |
指向策略信息(如 URL)的链接 |
len |
number |
生成的密钥长度(以位为单位) |
m |
number |
证书有效期的持续时间(以月为单位) |
nscp |
|
包括 Netscape 客户端授权扩展 |
r |
|
创建自我签名证书 |
sc |
file |
主题的证书文件 |
sky |
keytype |
主题的密钥类型 |
sp |
provider |
主题的 CryptoAPI 提供程序名称 |
sv |
pvkFile |
主题的 .pvk 私钥文件。如果该文件不存在,系统将创建一个 |
sy |
type |
主题的 CryptoAPI 提供程序类型 |
tbs |
|
要签名的证书或 CRL 文件 |