Certificate 使用Makecert设置密钥使用属性

Certificate 使用Makecert设置密钥使用属性,certificate,biztalk,makecert,Certificate,Biztalk,Makecert,是否可以使用makecert或我可以用来生成自己的测试证书的任何其他工具来设置密钥使用属性 我感兴趣的原因是,用于BizTalk Server AS2传输的证书需要使用数字签名进行签名和数据加密,或者使用密钥加密进行加密/解密,我想使用此功能 我了解如何使用makecert设置增强的密钥使用属性,但不设置密钥使用情况。您可以使用-eku选项指定证书的密钥使用情况 详情如下: MakeCert不允许您指定密钥使用,只允许指定扩展密钥使用。我认为您需要CA来创建更广泛的证书 您可以使用ubuntu服

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

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


我了解如何使用makecert设置增强的密钥使用属性,但不设置密钥使用情况。

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

详情如下:
MakeCert不允许您指定密钥使用,只允许指定扩展密钥使用。我认为您需要CA来创建更广泛的证书


您可以使用ubuntu服务器设置自己的CA

虽然您无法使用
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%"
只需将
主题设置为您需要的任何内容

然后运行:

certreq -new MyCert.inf MyCert.cer
这将生成公钥(X509证书),并将其安装到计算机上当前用户的个人存储中。如果你愿意,你可以从那里导出它

我使用它生成了一个证书,用于加密PowerShell DSC,以进行测试


有关详细信息:

可以使用PowerShell Cmdlet添加数字签名、数据加密和密钥加密
新的自签名证书
新的SelfSignedCertificate
参数之一是
KeyUsage
,您可以在其中添加数字签名、数据加密和密钥加密

已在technet()上描述

样本:

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下的当前用户存储中创建证书。

-eku允许您设置扩展密钥用法,而不是密钥用法。嗯,我明白了。。。在这种情况下,我建议您尝试使用Openssl生成您的证书。我不知道使用Openssl的具体问题的答案,但它是一个功能强大的工具(在我看来比makecert更好)。我建议您在问题中添加“openssl”标志,并将标题更改为“makecert/openssl”。也许那样你会得到更多有用的答案。我想您正在寻找
-sky
选项使用
makecert
您可以使用
-eku
设置扩展密钥使用,但我正在寻找一种方法来设置两个或更多扩展密钥使用。这种方法使我绕过了使用
新自签名证书时出现的“指定的提供程序类型无效”错误。谢谢我希望我能给这1000张选票。在与makecert和openssl混战了一天之后,这为我解决了问题。