代码之家  ›  专栏  ›  技术社区  ›  Roger Lipscombe

不使用openssl从pfx文件提取证书

pfx
  •  2
  • Roger Lipscombe  · 技术社区  · 15 年前

    我找到了一个 answer that uses OpenSSL 但是我在窗户上,而且我不容易拿到。是否有方法(例如使用certutil或vbscript)查看.pfx文件中的证书?

    如果我使用“certutil-dump”,它会要求输入密钥的密码。我不想要钥匙,证书应该是公开的。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Mormegil    13 年前

    在pfx文件中,两个私钥 证书加密(使用相同的密码)。如果您不知道密码,您将无法获得证书。如果你知道的话, certutil -dump 应该足够了。

        2
  •  0
  •   Ogglas    6 年前

    你可以使用 Get-PfxData pkiclient .

    https://docs.microsoft.com/en-us/powershell/module/pkiclient/get-pfxdata?view=win10-ps

    例子:

    $mypwd = ConvertTo-SecureString -String "localhost" -Force -AsPlainText
    $mypfx = Get-PfxData -FilePath C:\Users\oscar\Desktop\localhost.pfx -Password 
    $mypfx
    $mypfx.EndEntityCertificates
    

    如果您在商店中有证书并且需要 .sst (Microsoft系列证书存储区), .cer (CERP)或 .p7b (pkcs 7)您可以使用的文件 Export-Certificate 普克利昂 (或通过MMC导出,不带私钥)。

    https://docs.microsoft.com/en-us/powershell/module/pkiclient/export-certificate?view=win10-ps

    导出IIS Express生成的本地主机证书的示例:

    启动MMC.exe。

    然后去:

    文件->添加或删除管理单元->证书->添加->计算机帐户->本地计算机

    展开个人文件夹,您将看到本地主机证书。

    双击,转到“详细信息”并复制证书指纹。

    然后运行命令:

    $cert = (Get-ChildItem -Path cert:\LocalMachine\My\{YourThumbprint})
    Export-Certificate -Cert $cert -FilePath C:\Users\oscar\Desktop\localhost.cer
    

    注意:如果需要当前用户的证书,请替换 LocalMachine 具有 CurrentUser 在上面的命令中。