是否可以使用makecert或任何其他工具来设置密钥使用属性,以生成我自己的测试证书?
我感兴趣的原因是,用于BizTalk服务器AS2传输的证书需要使用密钥使用数字签名进行签名和数据加密或密钥加密进行加密/解密,我想尝试一下这个特性。
我看到了如何使用makecert设置增强的密钥用法属性,而不是密钥用法。
发布于 2010-06-10 01:38:31
您可以使用-eku选项指定证书的密钥用法。
详情请看这里:http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx
发布于 2016-03-23 01:39:02
虽然您不能使用makecert
制作自签名证书和设置增强的密钥使用参数,但我认为我可以省去每个人尝试使用的麻烦,在Windows上使用OpenSSL生成证书。相反,您可以使用certreq
(如果您已经有了makecert
,则可以使用它)并设计自己的请求来设置所需的参数。
例如,这设置了具有文档加密的EKU (1.3.6.1.4.1.311.80.1)和密钥加密和数据加密的密钥用法的证书。
创建一个新文件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
发布于 2018-03-16 19:58:59
使用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下的当前用户存储区创建证书。
https://stackoverflow.com/questions/2955049
复制相似问题