• 证书创建工具 (Makecert.exe)


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

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

    一定不要将此工具生成的证书私钥存储在 .snk 文件中。如果需要存储私钥,则应使用密钥容器。有关如何在密钥容器中存储私钥的更多信息,请参见如何:将非对称密钥存储在密钥容器中

    Caution note警告

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

     
     
    makecert [options] outputCertificateFile
    
     
    参数说明

    outputCertificateFile

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

     
    选项说明

    -n x509name

    指定主题的证书名称。此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀 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

    指定有效期的开始时间。默认为证书的创建日期。

    -cy certType

    指定证书类型。有效值是 end(对于最终实体)和 authority(对于证书颁发机构)。

    -d name

    显示主题的名称。

    -e mm/dd/yyyy

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

    -eku oid[,oid]

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

    -h number

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

    -ic file

    指定颁发者的证书文件。

    -ik keyName

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

    -iky keytype

    指定颁发者的密钥类型,必须是 signatureexchange 或一个表示提供程序类型的整数。默认情况下,可传入 1 表示交换密钥,传入 2 表示签名密钥。

    -in name

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

    -ip provider

    指定颁发者的 CryptoAPI 提供程序名称。

    -ir location

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

    -is store

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

    -iv pvkFile

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

    -iy pvkFile

    指定颁发者的 CryptoAPI 提供程序类型。

    -l link

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

    -m number

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

    -nscp

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

    -r

    创建自签署证书。

    -sc file

    指定主题的证书文件。

    -sky keytype

    指定主题的密钥类型,必须是 signatureexchange 或一个表示提供程序类型的整数。默认情况下,可传入 1 表示交换密钥,传入 2 表示签名密钥。

    -sp provider

    指定主题的 CryptoAPI 提供程序名称。

    -sv pvkFile

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

    -sy type

    指定主题的 CryptoAPI 提供程序类型。

    下面的命令创建了一个由默认测试根颁发的测试证书并将其写入 testCert.cer

     
     
    makecert testCert.cer
    

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

     
     
    makecert -ss testCertStore
    

    下面的命令创建了一个由默认测试根颁发的证书并将其保存到证书存储区。它将证书显式地放入 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
    

    下面的命令创建一个自我签署的证书,指定使用者名称为“CN=XYZ Company”,指定有效期的起始和结束时间,将密钥放入 my 存储区,指定并交换密钥,并且使私钥可导出。

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

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

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

    下面的命令创建了一些证书并将它们保存到存储区。第一个命令将证书保存到 my 存储区。第二个命令使用新创建的证书创建了另一个证书。因为 my 存储区中存在多个证书,所以第二个命令使用公用名称来标识第一个证书。

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

    下面的命令创建了一些证书并将它们保存到文件和存储区。第一个命令使用默认测试根创建了一个证书并将其保存到 my 存储区和一个文件。第二个命令使用新创建的 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(d=printer,v=VS.80).aspx
  • 相关阅读:
    阿里云安装Kafka并配置外网访问
    Golang之select中time.After()为什么不生效
    macOS配置GitHub和GitLab共存
    Golang获取HTTP请求IP
    macOS下安装Python3.8并设置为默认版本
    mysql之力扣数据库题目620有趣的电影优化记录
    Pgsql之查询一个月份的天数
    Pgsql之查询一段时间内的所有年月yyyy-mm
    Pgsql之查询一段时间内的所有日期
    swiper下echarts点击事件失效
  • 原文地址:https://www.cnblogs.com/sunrunzhi/p/3098509.html
Copyright © 2020-2023  润新知