从cmd导入.cer证书

时间:2019-03-29 08:29:13

标签: certificate certutil certreq

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

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

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

此外,在使用certutil导入证书后,在mmc中我发现友好名称被重置(显示为None)。

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

certutil -repairstore my >cert_thumbprint<

更新

我尝试使用certreq -accept -machine website_aps_production.cer导入证书,但这引发了错误:无法为受信任的根颁发机构构建证书链。 0x800b010a ,并且控制台中还显示其他警告。无法安装证书颁发机构颁发的证书。请与您的管理员联系。

1 个答案:

答案 0 :(得分:2)

作为一种解决方法,我设法使用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"