有没有办法使用命令行将证书添加到本地计算机的受信任根证书颁发机构?我尝试使用 certmgr.exe,它显示成功,但当我检查根 CA 时,我没有在那里看到我的证书。
我遵循了这里的指南:
http://msdn.microsoft.com/en-us/library/ms172241.aspx
基本上尝试这个命令:
certmgr.exe -add -c mycertificate.cer -s -r localMachine root
该命令有效并在命令行上显示成功,但我无法通过 mmc 在实际的受信任根存储中看到证书,自签名证书的程序是否不同?我已经设置了一个 IIS 服务器,并将 SSL 绑定到此证书,该证书最初放在“我的”存储中。但我通过自动脚本执行所有操作,所以我想知道如何使用 cmd 行选项将此证书添加到受信任的根 CA??
答案1
您是否尝试过手动操作(双击 CER 文件)?如果手动操作也不起作用,则可能是遇到了Vista 错误。
从命令行(cmd.exe)安装根 CA 证书
(这需要 Windows SDK。Visual Studio 将为您安装它并将其添加到%PATH%
。)
certmgr /add /c mycertificate.cer /s /r localMachine root
请注意,不会报告任何错误;该命令将始终返回成功(即使使用不存在的证书文件!)。如果certmgr.msc
运行此命令后证书未显示在证书管理器 () 中,请使用以下手动步骤重复该过程以检查证书文件中是否存在任何错误。
安装根 CA 证书的手动步骤
- 双击该
.cer
文件。 - 在证书对话框中,单击安装证书开始证书导入向导。
- 在欢迎页面,点击下一个。
- 在证书存储页面,选择将所有证书放入以下存储中并点击浏览。
- 在里面选择证书存储对话框中,选择显示实体店。
- 双击受信任的根证书颁发机构, 选择本地计算机,然后点击好的。
- 在证书存储页面,点击下一个。
- 在摘要页面上,查看详细信息并单击结束。
从 PowerShell 安装根 CA 证书
请参阅下面@harrymc 的精彩回答。
答案2
PowerShell 命令 进口证书 可以用来导入证书:
Import-Certificate -FilePath "C:\path\Cert.Cer" -CertStoreLocation cert:\CurrentUser\Root
要通过命令提示符(或批处理)运行它,您可以按如下方式运行它:
powershell "Import-Certificate -FilePath ^"C:\path\Cert.Cer^" -CertStoreLocation cert:\CurrentUser\Root"
请注意上面转义字符的使用^
。
要列出所有可用的证书存储,请启动 PowerShell 会话并输入:
dir cert:\\LocalMachine\
答案3
Powershell“导入证书-文件路径‘C:\path\Cert.Cer’-CertStoreLocation Cert:\LocalMachine\Root”
对于 cmd,路径位置需要有 ' 而不是 "