我是 MS CA 新手,最近在虚拟机上安装了 MS CA 设置。我使用了提供的 Web 服务“http://test.server.name.tld/certsrv“来申请证书。我批准了我的测试证书并返回到 Web 服务以检索我已批准的证书。我注意到我没有与我请求的测试证书相对应的私钥,并且我尝试打开并在服务器上的文件系统中搜索证书的私钥,但一无所获。
这是我的问题:
- 当您使用 Web 服务请求新证书时,MS CA 是否会为您生成私钥。
- 如果 MS CA 确实为您生成了私钥,那么它位于哪里,我如何检索它?
答案1
不,MS CA(即 Microsoft Windows Server 中的证书颁发机构服务器软件)当然不会为您生成私钥!那将是一个糟糕的安全设计!
MS CA 使用特殊的 HTML 标签(最初是 MS 专有的,但现在已得到广泛支持)来告诉客户端 Web 浏览器生成密钥对并仅将公钥发送到 MS CA。MS CA 使用该公钥以及服务器已经知道的有关您在 URL 上登录 MS CA 的 Web UI 时使用的帐户的身份信息/certsrv
,为您生成公钥证书,并使该新证书(以及信任链中的 CA 证书)可供下载。
当您的浏览器看到特殊的 HTML 标签并生成密钥对时,它会将私钥存储在客户端计算机上的本地某个位置。对于 Windows 上的 MSIE,该位置位于“Microsoft 证书存储区”(将“存储区”一词读作“存储”,而不是“零售店”:)。对于 Mac 上的 Safari,该位置位于 Mac 钥匙串中。其他浏览器可能会选择使用其主机操作系统的内置功能来安全存储私钥,或者它们可能会实现自己的方式以安全存储私钥。
下载新颁发的证书后,您可能需要将其安装到浏览器生成匹配私钥时放置私钥的同一安全存储区域中。因此,在 Mac 上,您需要将该证书导入 Keychain。我相信 Windows 版 MSIE 具有 ActiveX 控件或其他浏览器插件或内置功能,可自动下载公钥证书并将其安装到客户端计算机上的 Microsoft 证书存储中。
[读者须知:我已经多年没有在基于 Windows 的系统上操作过这些东西了(比如 Windows XP 和 Windows Server 2003 时代),所以这些信息可能已经过时了。希望有更新的关于这在基于 Windows 的系统中如何运作的知识的人可以纠正我。]