我试图导出我的自签名证书,以便将其导入到我的开发环境中的其他服务器(将使用“真实的”证书用于生产),但它引发以下错误:
出口-Pfx证书:无法导出不可导出的私钥
要求是我需要导出证书并“允许导出私钥”,但我很好奇我缺少了什么。我的PowerShell如下:
$pwd = ConvertTo-SecureString -String ‘1234’ -Force -AsPlainText
$path = 'cert:\localMachine\my\' + '1E7439053EE57AEE6EA0E1F3CDF5DB4234B6731E'
Export-PfxCertificate -cert $path -FilePath c:\Certificates\cert.pfx -Password $pwd
字符串
7条答案
按热度按时间mu0hgdu01#
问题不在于powershell代码。证书有问题。
首次导入或创建证书时,必须将私钥标记为可导出,以便能够导出私钥。
您收到的错误消息表明,您尝试使用的证书上的私钥不可导出。
Example Issue
a5g8bdjr2#
也许太晚了,但你有没有尝试以管理员身份运行PowerShell脚本?(如果您可以从mmc控制台导出私钥,Export-PfxCertificate也会导出私钥。)
r6l8ljro3#
我知道这是一个老问题,但我想张贴我的解决方案,因为我有这个同样的问题。我也得到了可怕的出口PfxCertificate:无法导出不可导出的私钥在尝试导出我的PFX文件时出错。在Windows计算机上加载代码签名证书后,问题开始出现。当我去导出它时,导出到PFX选项变灰了,没有进一步的解释。然后,我按照这里列出的许多说明进行操作,包括 Powershell Export-PfxCertificate。这些都不管用。我最后回到我的证书提供商GoDaddy,他们告诉我,在我的原始证书签名请求(CSR)中,我没有选中 * 使私钥可导出 *。GoDaddy慷慨地,免费地,允许我提交一个新的CSR(选中该选项)来“重新密钥”我现有的证书。几个小时后,我的新证书颁发了。我在我的机器上安装了它,并且能够直接从Windows MMC导出(不需要PowerShell)。我已经包括了在创建CSR时必须选中的框的这个屏幕截图(在不同的平台上可能看起来不同)。
x1c 0d1x的数据
ui7jx7zq4#
我做了一个快速搜索,你可以使用
certutil
或更好的可能是从http://community.idera.com/powershell/powertips/b/tips/posts/exporting-certificate-with-private-key的解决方案。该帖子的相关代码已粘贴在下面。100%归因于该页面的作者。
字符串
vsmadaxz5#
将Import-PfxCertificate与参数-Exportable一起使用
Get-ChildItem -Path c:\mypfx\my.pfx| Import-PfxCertificate -CertStoreLocation证书:\CurrentUser\My -可导出
s4n0splo6#
检查我的代码下面.
字符串
2uluyalo7#
即使将证书标记为不可导出,仍可以从源服务器上的注册表导出证书,并将其重新导入目标服务器上的注册表。
首先,您需要证书的拇指指纹。(本题假设你有这个。)
字符串
假设指纹是1E7439053EE57AEE6EA0E1F3CDF5DB4234B6731E。现在导出此注册表项:
型
并将其导入目标服务器。
来源:https://www.yuenx.com/2022/certificate-security-export-cert-with-non-exportable-private-key-marked-as-not-exportable-windows-pki/