使用工具生成证书

如何在 Windows 系统中使用工具生成证书。

简介

书创建工具生成仅用于测试目的的 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 目录下。

注意:

  1. 对于生产环境,大部分选择从第三方受信任的公司和机构购买证书,但是对于开发和测试而言,我们优先选择创建自签名的根证书用以为其他证书签名。例子:SSL Certificate 用以 servers 和 clients 的认证。
  2. 当你这样做的时候,你的根证书是默认不受信任的,你需要将它添加到你机器的根证书目录下。
  3. 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 文件
updatedupdated2023-12-052023-12-05