我有一个独特的情况,我需要在 IE 浏览器和 IIS 6 之间通过 HTTPS 实现客户端证书身份验证。浏览器和 IIS 被防火墙隔开,只允许浏览器在 SSL 端口上连接到 IIS。
我们在与 IIS 相同的网络上有一个内部证书服务器。我已经为 IIS 生成了一个 SSL 服务器证书并已安装。我将 IIS 配置为仅允许 SSL,需要客户端证书。
这里的限制是浏览器机器在断开的网络上,所以我不能像往常一样访问 CA 的http://caserver/CertSrv URL 并请求客户端证书。
我想如果有一种方法可以针对根 CA 的公钥生成 CSR,我可以将其复制到 CA 服务器以生成客户端证书。但是,在 IE 或证书 MMC 中似乎没有任何规定可以做到这一点。证书 MMC 似乎需要直接连接到 CA。
以前有没有人解决过这个问题?
仅供参考,所有引用的服务器都运行 Windows Server 2003。
更新:感谢 Jonas Oberschweiber 和 Mark Sutton 指出 CertReq.exe 命令行工具。使用它,我生成了一个 CSR,因此生成了一个成功安装的客户端证书。但是,在访问有问题的 IIS 服务器时,IE 显然没有发送此客户端证书;它仍然会生成 403.7“禁止:需要 SSL 客户端证书”。我怀疑原因是客户端证书的主题字段与运行 IE 的帐户的用户 ID 不匹配,因此可能没有发送不匹配的客户端证书。主题与我用来提交 CSR 并在防火墙另一端生成客户端证书的用户相匹配。
主题字段重要吗?我还需要做些什么来让 IE 发送这个证书吗?