Windows AD证书服务系列---部署CA(2)


AD CS中基于角色的管理使得管理员可以将用户和群组委派给预先设定好权限的内建CA角色。每个角色能够执行某个或某类已设定好的任务,下表中标识出了基于角色管理的角色和群组的详细信息:

角色/组 用途 信息
CA管理员 管理CA 在CA控制台指派
证书管理员 颁发和管理证书 在CA控制台指派
备份操作员 备份和还原文件及目录 操作系统角色
审计员 管理审计和安全性方面的事件日志 操作系统角色
注册者 读取和注册 有权限申请证书

基于角色的管理结合了操作系统角色和AD CS角色,为CA提供了一个完整的,分段式的管理解决方案。你不再需要将本地管理员权限指派给多个IT人员去管理CA,你只需要指派角色来达到满足任务的最小权限,从而提高了企业的安全性。

基于角色的管理还减少了管理员在为其他管理者授权时的工作量,因为所有的授权过程只需要将用户加入到对应的组或者角色即可。


管理CA安全性

为了管理和配置CA的基于角色管理,并在管理CA的安全性,你可以在certsrv.msc命令打开的管理控制台中选择证书授权机构的属性,并通过其中的安全性列表进行管理。下列类型是我们可以在CA对象层次设置的安全性权限:

  1. 读取。指派此权限的安全性主体能够在AD域中找到CA,如果部署的是独立CA,该安全性主体则能够通过Web控制台或服务访问这台CA。

  2. 颁发和管理证书。指派此权限的安全性主体能够对挂起状态的证书请求进行批准和拒绝,同时他们还拥有吊销和颁发证书、指定吊销理由、取消吊销状态的权限,以及读取所有颁发的证书并将这些证书导出到文件的权限。

  3. 管理CA。指派此权限的安全性主体可以管理和配置CA级别的选项,但是他们不能管理证书,只能够管理CA。

  4. 请求证书。指派此权限的安全性主体能够对这台CA发出证书请求,但是这并不意味着他们能够注册证书,是否能够注册到证书,是在证书模板级别上指定的。

权限类型可以参考下图:

Windows AD证书服务系列---部署CA(2)

可以看到administrators群组拥有颁发和管理证书以及管理CA的权限。

结合CA对象的访问控制列表上定义的安全性权限,你还可以运用CA属性窗口中的证书管理器选项,在你配置安全性主体时限定它们只可以在特定的证书模板上颁发和管理证书。例如如果你想给用户Bob仅指派权限去颁发和管理用户证书,你需要将Bob加入到ACL中,并将颁发和管理证书权限指派给Bob,但是你需要通过证书管理器选项去限制Bob的权限只能应用在用户证书模板,因为你不想Bob能够颁发和管理所有证书,如下图所示:

Windows AD证书服务系列---部署CA(2)

Windows AD证书服务系列---部署CA(2)


配置CA策略和退出模块

CA结构更高级的部署是将CA与另一个PKI相关的服务集成在一起,这要求在CA上配置和管理策略退出模块。无论是独立CA还是企业CA,任何一台CA都拥有策略和退出模块,每台CA使用默认的策略和退出模块,一般我们不需要对这些模块进行配置。如果想管理策略和退出模块,我们可以通过CA管理员控制台来实现,不过遇到比较复杂的配置,我们还是需要使用certutil命令来进行配置。


什么是策略模块?

策略模块决定了在CA收到证书请求后执行的动作,你可以配置一个默认策略,让每个请求处于挂起状态直到管理员对这些请求进行批准或者拒绝。如果某个证书模板的设置是允许策略模块颁发证书,那么默认的策略模块就可以用来颁发证书。不过你也可以安装一个自定义的策略模块,当CA收到证书请求时执行其他的任务。例如如果你在内部PKI中安装了Microsoft Forefront Identity Manager 2010 Certificate Management(FIM CM 2010),FIM CM 2010策略模块会将请求转发到FIM CM 2010,在经过FIM上的流程处理后,会执行证书的颁发或者将请求拒绝。FIM CM 2010策略模块还可以为通过了证书请求的客户端指定一个签名证书thumbprint,每个被FIM CM 2010策略模块使用指定thumbprint签名了的请求,在被颁发前都会被传递到FIM流程。这只是自定义策略模块的一个例子,其他的第三方应用可能使用自己定义的策略模块。


什么是退出模块?

与策略模块不同的是,退出模块使用在证书颁发之后,它决定证书颁发后所执行的动作。最常见的动作就是发送一个邮件或者发布一个证书给一个文件系统,即使每台CA使用的是默认退出模块这些动作也是可以被执行的。

同样你也可以自己定义一个退出模块,我们借用策略模块的例子,如果你在公司部署了FIM CM 2010,并在CA上部署一个自定义的退出模块,在这个退出模块中指定将每台正在运行SQL服务器角色计算机的被颁发证书数据进行转发,如果你写入关于此类证书的信息,FIM CM可以在不直接干涉到CA数据库的情况下,查看和监视被颁发的证书。

一台CA可以同时使用多个退出模块,策略模块则不行,CA一次只能应用一个活动的策略模块。

如果你想每次在给一个特定地址发送邮件时都颁发一个证书,你必须通过certutil来配置这些设定,因为这些设定在CA管理控制台是无法配置的。首先,你必须指定用来发送邮件的SMTP服务器,我们可以使用以下命令来实现:

certutil -setreg exit\smtp\<SMTP服务器名称>

SMTP服务器名称必须是FQDN。然后你必须指定事件和通知的邮件地址,我们可以通过以下命令实现:

certutil -setreg exit\smtp\CRLIssued\To<E-mailString>

注意:CA的退出模块配置的以事件形式发送邮件,这种邮件是无法进行SMTP验证的,如果你的SMTP服务器要求验证,你必须在CA服务器上执行以下命令:

Certutil -setreg exit\smtp\SMTPAuthenticate 1

Certutil -setsmtpinfo<用户名>

这里的用户名是能够在SMTP服务器上通过验证的用户名,此命令会提示你输入用户密码。

除了在证书颁发的时候发送通知邮件,你还可以设置一个退出模块在以下事件出现时发送通知:

证书请求处于挂起状态

证书请求被拒绝

证书被吊销

CRL被颁发

CA服务启动

CA服务停止

如果你想配置一个退出模块用来发布证书给文件系统,你可以使用CA管理控制台去打开退出模块的属性,然后启用"允许将证书发布到文件系统"的选项并重启CA,如下图所示:

Windows AD证书服务系列---部署CA(2)

从CA中颁发的证书会以.cer格式文件复制到CA服务器的c:\windows\system32\certenroll文件夹中,但是实现这个需要满足一个前提,就是证书的请求者必须在他们的请求中包含certfile:true的属性。


CA的备份和还原

企业中的CA服务器可能运行了很多年,某一天你也许想升级CA服务器的硬件或者操作系统,但是因为CA在整个企业IT环境中非常重要,所以你必须定义一个备份和还原过程。在对CA角色进行迁移的时候,同样也需要对CA进行一个最新的可用备份。

注意:CA和其他的服务不同,它不是简单的在新电脑上安装了就可以继续正常使用的,当你将CA从一台服务器转移到另一台服务器时,保留CA的标识是非常重要的,这样你才可以在新的硬件或系统中使用相同的CA标识进行工作。


CA备份

即使你不打算对CA做迁移,你也应该对CA做一个备份,CA的备份与我们通常所进行的备份时不同的,CA的备份需要通过以下的步骤实现:

  1. 如果你正准备备份一个企业CA,在CA控制台中点击证书模板,然后记录下证书模板中列出的名称。这些模板都是存储在AD域中的,所以你不需要对它们进行备份。你必须要清楚的知道进行迁移的模板有哪些是由CA发布的,因为你必须在迁移之后手动的添加这些模板。

  2. 在CA控制台,右键点击CA名称,选择"所有任务",然后点击"备份CA"打开CA备份向导,在备份向导中,你需要选择备份CA的私钥,CA证书,证书数据库以及证书数据库日志。你还可以指定一个合适的备份内容的存放位置,考虑到安全性因素,最好设定密码对CA私钥进行保护。

  3. 在完成备份之后,你应该打开注册表编辑器,找到并导出以下的注册表的子键:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration

   注意:我们推荐将该注册表键值的导出文件保存到CA备份的文件夹中。

4.  做完上面的操作后,一旦你想将CA迁移到其他的电脑,你需要将CA从旧的服务器上卸载,然后将旧     服务器重命名或断开它的网络连接。


CA还原

CA的还原通常是在必须修复当前CA或需要迁移到其他服务器时进行的。

还原CA需按照以下步骤操作:

  1. 在目标计算机上安装AD CS角色。选择安装独立CA或者企业CA,这取决于你需要迁移的CA的类型。当你见到"指定私钥类型"页面时,点击"使用现有私钥",然后选中"选择一个证书并使用其关联私钥",这样可以让你在新的CA服务器上继续使用原来旧服务器的证书。

  2. 在"现有证书"页面,点击导入,输入备份CA时生成.p12文件的存储路径,接着输入备份时设定的密码,然后点击确认,当你被提示"公钥和私钥秘钥对"时,确保选中了现有秘钥,如果你想使用相同的根CA证书,这个步骤非常关键。

  3. 当你进入到"证书数据库"页面,指定一个和旧服务器相同的存放位置去存放证书数据库和证书数据库日志,这些步骤都完成后,点击"配置",等待安装向导的执行完毕。

  4. 安装完成后,打开AD CS服务的服务插件,还原旧服务器的设置。

  5. 找到备份时导出的注册表文件,然后双击将它导入到注册表中。

  6. 还原了注册表设置后,打开CA管理控制台,右键点击CA名称,点击"所有任务",接着点击"还原CA",这时会出现CA还原向导,在向导中你可以选择"私钥和CA证书"和"证书数据库和证书数据库日志",这里是为了指定你想要还原的对象。下一步就输入一个备份文件夹位置并确认还原的设置没有问题。还原设置中"颁发日志"和"挂起申请"应该是"显示"。

  7. 当还原完成后,选择重启AD CS服务。

  8. 如果你还原的是企业CA,你需要确认之前记录的AD域中保存的证书模板在新的CA上能够看到,并且是可用的。


本文出自 “乾涸的海綿” 博客,请务必保留此出处http://thefallenheaven.blog.51cto.com/450907/1612368

Windows AD证书服务系列---部署CA(2)

上一篇:DotNetBar for Windows Forms 12.1.0.0_冰河之刃重打包版 原创发布


下一篇:c# 发送http请求