如何使用 PowerShell 申请可导出证书?

How to request a exportable certificate using PowerShell?

参考Get-Certificate
我尝试使用 PowerShell 申请证书,它有效但证书不可导出,这是我的命令:

Get-Certificate -Template "MyComputer" -SubjectName "CN=corey.com" -CertStoreLocation cert:\LocalMachine\My

当我尝试导出证书时,失败了。

Export-PfxCertificate -Cert cert:\LocalMachine\My$Thumbprint -FilePath C:\corey.com.pfx -Password $mypwd

错误信息:

Export-PfxCertificate: Cannot export non-exportable private key.

我找不到像 Exportable 或 属性 这样的参数供我与 Get-Certificate 命令一起使用。有什么方法可以 request/make 使用 PowerShell 导出证书吗?

因为在使用 Get-Certificate 时没有参数使其可导出,所以我使用 certreq 作为替代来实现我的目标,在这里 post 希望可以帮助其他人.

首先准备一个信息文件,将Exportable设为TRUE

$file = @'
[NewRequest]
Subject = "CN=corey.com"
KeyLength = 2048
Exportable = TRUE
[RequestAttributes]
CertificateTemplate = "MyTemplate"
'@

Set-Content temp.inf $file

其次,输入以下命令。

# create a new request from an .inf file
certreq -new temp.inf temp.req

# submit a request to the certificate authority
certreq -submit -config CAHostName\CAName temp.req temp.cer

# accept and install a response to a certificate request
certreq -accept temp.cer

最后,导出证书并为其分配密码。

$mypwd = ConvertTo-SecureString -String $password -Force -AsPlainText
Export-PfxCertificate -Cert cert:\LocalMachine\My$Thumbprint -FilePath C:\corey.com.pfx -Password $mypwd

详情请见certreq - Microsoft Docs