是否可以使用 makecert 或任何其他我可以用来生成我自己的测试证书的工具来设置密钥使用属性?
我感兴趣的原因是用于 BizTalk Server AS2 传输的证书需要使用数字签名的密钥进行签名和数据加密或密钥加密以进行加密/解密,我想尝试使用此功能。
我看到了如何使用 makecert 设置增强的密钥使用属性,而不是密钥使用。
是否可以使用 makecert 或任何其他我可以用来生成我自己的测试证书的工具来设置密钥使用属性?
我感兴趣的原因是用于 BizTalk Server AS2 传输的证书需要使用数字签名的密钥进行签名和数据加密或密钥加密以进行加密/解密,我想尝试使用此功能。
我看到了如何使用 makecert 设置增强的密钥使用属性,而不是密钥使用。
虽然您无法制作自签名证书并使用设置增强密钥使用参数,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
可以使用 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 下的当前用户存储中创建证书。
MakeCert 不允许您指定密钥用法,只能指定扩展密钥用法。我认为您需要 CA 来创建更广泛的证书。
您可以使用 ubuntu 服务器设置自己的 CA。 https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
您可以使用 -eku 选项指定证书的密钥用法。
在此处查看详细信息:http: //msdn.microsoft.com/en-us/library/aa386968 (VS.85).aspx