首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Makecert设置关键用法属性

使用Makecert设置关键用法属性
EN

Stack Overflow用户
提问于 2010-06-02 12:39:11
回答 4查看 11.9K关注 0票数 19

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

我感兴趣的原因是,用于BizTalk服务器AS2传输的证书需要使用密钥使用数字签名进行签名和数据加密或密钥加密进行加密/解密,我想尝试一下这个特性。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-10 01:38:31

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

详情请看这里:http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx

票数 -4
EN

Stack Overflow用户

发布于 2016-03-23 01:39:02

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

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

创建一个新文件MyCert.inf

代码语言:javascript
复制
[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设置为所需的值即可。

然后运行:

代码语言:javascript
复制
certreq -new MyCert.inf MyCert.cer

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

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

有关更多细节,请访问:https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New

票数 6
EN

Stack Overflow用户

发布于 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

示例:

代码语言:javascript
复制
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下的当前用户存储区创建证书。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2955049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档