是否可以使用makecert或其他可用于生成我自己的测试证书的工具来设置密钥使用属性?使用Makecert设置密钥使用属性
我感兴趣的原因是用于BizTalk Server AS2传输的证书需要数字签名的密钥用于签名和加密/解密的数据加密或密钥加密,我想要使用此功能。
我看到如何设置增强关键使用属性与makecert,但没有关键用法。
是否可以使用makecert或其他可用于生成我自己的测试证书的工具来设置密钥使用属性?使用Makecert设置密钥使用属性
我感兴趣的原因是用于BizTalk Server AS2传输的证书需要数字签名的密钥用于签名和加密/解密的数据加密或密钥加密,我想要使用此功能。
我看到如何设置增强关键使用属性与makecert,但没有关键用法。
您可以使用-eku选项指定证书的密钥使用情况。
查看详情这里: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx
-eku允许您设置*扩展*键用法,而不是密钥用法。 – nlawalker 2010-06-09 20:55:08
哼,我明白了......在这种情况下,我建议你尝试使用Openssl来生成你的证书。我不知道使用openssl的具体问题的答案,但它是一个强大的工具(在我看来比makecert更好)。我建议你在你的问题中加上“openssl”标志,并把标题改为“makecert/Openssl”。也许这样你会得到更有帮助的答案。使用'makecert'来确认 – 2010-06-10 11:41:58
虽然您无法创建自签名证书并使用makecert
设置增强型密钥使用参数,但我认为可以节省每个人尝试使用OpenSSL在Windows上生成证书的麻烦。相反,您可以使用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 = "[email protected]"
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
,您可以使用'-eku'来设置扩展密钥的使用情况,但是我正在寻找一种方法来设置两个或更多的扩展密钥使用。 – AaA 2017-08-24 09:16:14
我认为你正在寻找'-sky'选项 – AaA 2017-08-24 09:14:25