【问题标题】:Importing .cer certificate from cmd从 cmd 导入 .cer 证书
【发布时间】:2019-03-29 08:29:12
【问题描述】:

使用certutil 实用程序导入.cer 证书无法将其与其私钥匹配,尽管证书签名请求是在同一台计算机上创建的。

我正在使用certreq 生成用于获取此证书的.csr 文件,并且在.inf 中我有Exportable = True 标志。 通过 mmc 向导手动进行导入有效,但从管理控制台运行以下命令时无效。

certutil -addstore -f "My" "website_aps_production.cer"

此外,在使用 certutil 导入证书后,在 mmc 中查看我注意到友好名称已重置(显示为无)。

从cmd导入证书后,我已经尝试过repairstore机制,但没有帮助。

certutil -repairstore my >cert_thumbprint<

更新

我尝试使用certreq -accept -machine website_aps_production.cer 导入证书,但这会引发错误:无法将证书链构建到受信任的根权限。 0x800b010a 并且控制台中出现附加警告无法安装证书颁发机构颁发的证书。请联系您的管理员。

【问题讨论】:

    标签: certificate certutil certreq


    【解决方案1】:

    作为一种解决方法,我设法使用 PowerShell 自动执行证书导入过程。

    Set-Location -Path cert:\LocalMachine\My
    
    Import-Certificate -Filepath "C:\website_aps_production.cer"
    

    这样,证书会被导入本地计算机的存储中,并与其对应的私钥匹配,可以进一步导出。

    然而,更方便的解决方案是使用 openSSL 创建所有内容,而根本不使用证书存储。这样,私钥独立于证书导出。

    openssl req -nodes -newkey rsa:2048 -keyout pvkey.key -out csr.csr -subj "/C=test/ST=test/L=test/O=test/OU=test/CN=test" -config "C:\openssl.cnf"
    

    【讨论】:

      猜你喜欢
      • 2021-11-26
      • 2014-06-05
      • 2011-05-18
      • 2013-09-10
      • 2017-10-25
      • 1970-01-01
      • 2017-08-07
      • 2017-11-22
      • 2011-06-11
      相关资源
      最近更新 更多