使用.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 ,并且控制台中还显示其他警告。无法安装证书颁发机构颁发的证书。请与您的管理员联系。
答案 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"