尽管证书签名请求是在同一台计算机上创建的,但是导入.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,并且控制台中还有其他警告。无法安装由证书颁发机构颁发的证书。与您的管理员联系。
解决方法是,我设法使用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"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句