我在 Hyper-V 虚拟机上有一个 Windows Server 2012 R2 Enterprise Root Certification Authority,由于目前未知的原因,无法再启动。
我不知道虚拟机是否会重新上线,但我知道的是,我有它的虚拟磁盘,它似乎没有损坏;我可以将它安装在另一个系统上并访问其所有内容。
我想在新的虚拟机上重建 CA,并且我很熟悉这个过程,因为之前已经执行过大量的 CA 迁移;我知道在哪里可以找到证书颁发机构数据库(C:\Windows\system32\certlog
),以及如何将其复制到新建的 CA。
我不知道的是,CA 的根证书存储在哪里?我需要它的私钥来重建 CA,但我不知道在故障 CA 的虚拟磁盘上哪里可以找到它。
答案1
您无法从离线机器恢复 CA 密钥。有两个原因:
- 密钥的引用有些复杂,因此很难找到实际的私钥文件名。 在您的例子中,私钥文件位于:
%ALLUSERSPROFILE%\Application Data\Microsoft\Crypto\Keys
- 即使您成功识别文件名,您也无法将文件复制到另一台计算机并恢复密钥对,因为本地的私钥受到 DPAPI 保护,您将无法在另一台计算机上解密加密密钥。
如果您至少可以在安全模式下运行计算机(或使用命令提示符的保存模式),您可以轻松识别文件名并尝试将密钥导出到 PFX。