Microsoft 证书服务

很多高级安全技术归根结底都要使用到 PKI,而认证机构(CA) 和数字证书又是 PKI 中的两个关键部分,所以要想应用这些高级安全技术,就需要建立一套基于 PKI 的 CA ,以便进行数字证书的发放、验证、吊销等功能。

最近较为详细的试用了 Windows Server 自带的证书服务,发现 Microsoft 可能对 Windows 中的证书服务没有足够的重视,以至从 NT 4 开始,证书服务提供的功能基本没有增强:简单的证书申请页面、简陋的服务器管理界面(MMC),证书申请的Web界面还是基于 ASP ,要在 IIS 6上设置允许 ASP 执行 ……

一般来说,建立 CA 时,要采用层次架构,我们经常在通过 SSL 访问 Internet 上的一些服务器时,查看其数字证书,都可以发现 CA 的层次结构:首先是根证书服务器(Root CA),它只面向其它子 CA 发放证书,而不向用户发放用于应用程序的各种证书。象 Verisign ,一般都在根 CA 下分好几个子 CA ,每个子 CA 面向不同的用户或应用类型,发放指定功能类型的证书。

Microsoft 证书服务在安装时就需要指定 CA Server 的类型(企业根 CA、企业从属 CA、独立根 CA、独立从属 CA 等),一旦指定后,就不能更改,这倒也合情合理,但只能安装证书服务的一个实例,这样就无法在一台机器上建立 CA 的层次结构了(虽然 Microsoft 曾声称它们的 CA 可以实现 40 级的结构,可这是以 40 台服务器为代价的……),希望 Microsoft 以后能象 SQL Server 一样,在一台 CA 上实现多个实例,这样建立根 CA 后,可根据需要再建立几个子 CA ,如果以后在一台机器性能不能满足要求的话,就可以平滑地移植到其它服务器上。

另外,证书服务器的申请界面(ASP)比较简陋,且在用户申请证书后,管理员不能及时得到通知,此外现有的证书页面中不能包含一些描述信息,如用户说明此证书的用途、用户的联系方式、期限要求等,这些信息才是证书服务器管理员最需要了解的信息,而现有的 MMC 管理界面中提供的有用信息很少。

以上几个缺陷倒也简单,借着还有点 ASP 的知识,自力更生,给每个页面包含(Include)了页首(Header)和页尾(Footer)文件,并设置了CSS ,让界面看上去更舒服,而且也与企业内部网上的其它 Web 应用在 UI 上保持一致。同时,修改几个提交页面,使得用户在向证书服务提交申请的同时,向指定的管理员邮箱发送通知邮件,这样管理员就能及时到证书服务管理界面中进行相关后续操作(如有人对此代码感兴趣,可以在 Comment 中索取)。

据有人说,OpenCA 具有在一台机器上实现多级 CA 的功能,等过后试试,比较烦人的是,还需要安装一台 Linux 虚拟机。

“Microsoft 证书服务”的30个回复

  1. 马老师你好!请问CA颁发的Email 安全证书能到不同机器上用吗?好像换了一台机器后,原来导出的证书安装后就不能在个人那里找到了,请问有什么解决办法?

  2. 马老师,我也希望得到一份修改过的asp程序,同时还有个问题咨询你,我把证书服务器和网页服务器分开,就不能正常认证了,现象是在选择证书的窗口不现在已经安装到ie的证书文件,所以无法认证

评论已关闭。