如何通过New-SelfSignedCertificate cmdlet创建代码签名证书

And*_*man 5 powershell

PowerShell 4.0

makecert工具可以-eku选择将增强的密钥用法对象标识符(OID)描述到证书中.它允许为代码签名和其他目的制作证书.但它不是cmdlet.

新的PowerShell版本具有New-SelfSignedCertificate用于本地脚本测试的cmdlet.但它创建了不能用于​​代码签名的证书:

New-SelfSignedCertificate -DnsName www.SomeSite.com -CertStoreLocation Cert:\CurrentUser\My
Run Code Online (Sandbox Code Playgroud)

我没有看到类似的选项-eku.

如何设置新的自签名证书(通过New-SelfSignedCertificatecmdlet 创建)的目标,以确定其用于代码签名的可能性?或者是否可以通过其他cmdlet执行相同的操作?

Mic*_*l B 2

PS 4 上的版本New-SelfSignedCertificate相当基础。

但是,Powershell v5具有创建特定密钥所需的参数。

具体来说,一个Keyusage参数需要

-- CertSign
-- CRLSign
-- DataEncipherment
-- DecipherOnly
-- DigitalSiganture
-- EncipherOnly
-- KeyAgreement
-- KeyEncipherment
-- None (default) 
-- NonRepudiation
Run Code Online (Sandbox Code Playgroud)

和一个KeyUsageProperty采取

-- All
-- Decrypt
-- KeyAgreement
-- None (default) 
-- Sign
Run Code Online (Sandbox Code Playgroud)

您是否特别依赖 v4?如果您可以升级到 v5,您应该能够实现您所需要的。