作为确保我们公司安全通信的一部分,我们正在尝试将 Digicert 颁发的 SMIME 证书导出给我们的客户,但在通过 certmgr 控制台导出过程中,我们遇到了一些关于未包含或无法导出私钥的问题。
以下是错误的简要描述以及各种故障排除尝试。
在导出过程中,我注意到选择个人信息交换 - PKCS #12 (.PFX) 选项在证书导出向导上显示为灰色,如 证书导出向导下面的屏幕截图所示
我尝试通过首先检查导入的证书是否存在相应的私钥来解决该问题,但如下面的屏幕截图所示,没有可用的私钥。 Certmgr 证书
我通过执行 certutil -repairstore 我的“serial”命令进一步尝试在证书存储上进行修复工作,以便修复证书损坏的情况,但出现以下错误 certutil Repairstore 错误
正如这篇 Digicert 文章https://knowledge.digicert.com/solution/SO1335.html中所建议的,我尝试通过在文件夹中使用记事本打开密钥容器路径 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 中的每个文件来检查权限对应于各个密钥容器。访问被拒绝,正如您在Machinekeys 权限下方的屏幕截图中看到的消息一样
我检查了 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 文件夹的权限,并在Machinekeys 文件夹的 icacls下得到了以下结果有趣的是,该文件夹的权限类型符合 Microsoft 建议的所需默认权限,如此处记录https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/default-permissions-machinekeys-folders
此时,我有点不确定该采取什么行动。是否有可能在没有附带密钥的情况下导入证书?我不这么认为,因为将相同的证书复制到另一个客户端后导出会产生预期的结果。是否可以想象证书已损坏或密钥容器内的子文件夹的访问继续被拒绝?有趣的是,这种情况似乎相当零星,因为它在不同位置的某些客户端上正常运行。功能组可能是属于特定组的特定用户或客户端,该特定组在客户端、网络或域上本地拥有必要的权限,这可能是合理的吗?我将不胜感激任何提示或建议。
经过仔细检查,我们发现它被标记为不可导出。我已要求重新颁发证书,同时确保密钥可导出。我们将进行相应测试并尽快更新测试结果。同时,我会将其标记为已回答。我很欣赏你的意见。