我正在尝试通过以下步骤更改 Comodo 代码签名证书的 KeySpec 属性本指南指南中提到将证书文件导入 MMC,然后稍后再次导出。但是,我似乎没有导出为 PFX 文件的选项。我已经有一个 PFX 文件;我可以成功导入它,但是当我导出时,该选项变灰/禁用。
我需要做什么才能启用此导出选项?
答案1
证书管理单元确实不喜欢导出 PFX 证书,但 PowerShell 很乐意这样做。您可以使用Export-PfxCertificate
执行以下命令:
cd cert:\
在 PowerShell 提示符下键入内容,转到证书伪驱动器。- 根据证书所在的位置键入
cd CurrentUser
或。您可能需要以管理员身份启动 PowerShell 来导出机器证书。cd LocalMachine
cd
进入适当的存储(adir
可能会有帮助)。MMC 中的个人存储My
在这里被调用。- 用于
dir
识别哪个ID对应您想要的证书。 键入此命令将其导出为带有密码的 PFX:
Export-PfxCertificate -Cert .\LONGSTRINGOFHEX -FilePath 'C:\path\to\outfile.pfx' -Password (ConvertTo-SecureString -String 'password' -AsPlainText -Force)
LONGSTRINGOFHEX
应替换为您的证书 ID。幸运的是,您可以使用制表符补全功能。
一旦执行该命令,您就会获得一个受您提供的密码保护的 PFX 证书。如果没有密码,PowerShell 拒绝导出证书的私钥,并且密码不能为空。尽管如此,您的 PFX 还是被导出了。
答案2
我的问题是,我在一台机器上创建了 CSR 文件,然后尝试在另一台机器上创建 pfx 文件(Windows 10 昨晚进行了更新,将我锁定在第一台机器之外)。CSR 和 pfx 文件都需要在同一台机器上创建。
答案3
如果您将证书导入 WebHosting 存储,则无法导出私钥。将其移动到个人存储,您将能够导出为 PFX。我能够在 Windows 2012R2 中执行此操作,而无需转到命令行并使用 Export-PfxCertificate(这很麻烦,因为我无法找出证书的 ID 来拯救我的生命)。
答案4
导出 .P7B 文件一次。然后返回并再次尝试导出证书。下次将启用 .PFX 导出。