19

是否可以使用 makecert 或任何其他我可以用来生成我自己的测试证书的工具来设置密钥使用属性?

我感兴趣的原因是用于 BizTalk Server AS2 传输的证书需要使用数字签名的密钥进行签名和数据加密或密钥加密以进行加密/解密,我想尝试使用此功能。

我看到了如何使用 makecert 设置增强的密钥使用属性,而不是密钥使用。

4

4 回答 4

6

虽然您无法制作自签名证书并使用设置增强密钥使用参数,makecert但我想我会省去每个人尝试使用 OpenSSL 在 Windows 上生成证书的麻烦。相反,您可以使用certreq(如果您已经拥有,则可以使用makecert)并制定您自己的请求来设置所需的参数。

例如,这将设置具有文档加密 (1.3.6.1.4.1.311.80.1) 的 EKU 和密钥加密和数据加密的密钥用法的证书。

创建一个新文件,MyCert.inf

[Version]
Signature = "$Windows NT$"

[Strings]
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_DOCUMENT_ENCRYPTION = "1.3.6.1.4.1.311.80.1"

[NewRequest]
Subject = "cn=me@example.com"
MachineKeySet = false
KeyLength = 2048
KeySpec = AT_KEYEXCHANGE
HashAlgorithm = Sha1
Exportable = true
RequestType = Cert

KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE"
ValidityPeriod = "Years"
ValidityPeriodUnits = "1000"

[Extensions]
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_DOCUMENT_ENCRYPTION%"

只需将 设置Subject为您需要的任何内容。

然后运行:

certreq -new MyCert.inf MyCert.cer

这将生成公钥(X509 证书)并将其安装到计算机上的当前用户个人存储中。如果需要,您可以从那里导出它。

我用它来生成用于加密 PowerShell DSC 的证书,用于测试。

示例证书

更多详情:https ://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New

于 2016-03-22T17:39:01.677 回答
1

可以使用 PowerShell Cmdlet 添加数字签名、数据加密和密钥加密New-SelfSignedCertificate。其中一个New-SelfSignedCertificate参数是KeyUsage您可以在其中添加 DigitalSignature、DataEncipherment 和 KeyEncipherment。

在 technet ( https://technet.microsoft.com/library/hh848633 )上描述了New-SelfSignedCertificate

样本:

New-SelfSignedCertificate -Type Custom -Subject "CN=sample.com" -KeyUsage DataEncipherment, KeyEncipherment, DigitalSignature -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1") -CertStoreLocation "Cert:\CurrentUser\My"

该示例涵盖客户端身份验证和服务器身份验证,并在 my 下的当前用户存储中创建证书。

于 2018-03-16T11:58:58.753 回答
0

MakeCert 不允许您指定密钥用法,只能指定扩展密钥用法。我认为您需要 CA 来创建更广泛的证书。

您可以使用 ubuntu 服务器设置自己的 CA。 https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

于 2014-11-13T21:22:04.683 回答
-4

您可以使用 -eku 选项指定证书的密钥用法。

在此处查看详细信息:http: //msdn.microsoft.com/en-us/library/aa386968 (VS.85).aspx

于 2010-06-09T17:38:31.140 回答