码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-02-03 19:48:32      阅读:4890      评论:0      收藏:0      [点我收藏+]

标签:ad cs

当你决定在企业中部署PKI的时候,首先需要确认的是你打算如何设计你的CA结构,CA的结构决定了你的内部PKI的核心设计,以及结构中每个CA的用途。每个CA结构通常会有两个或更多的CA,一般情况下,第二台CA和所有的从属CA的部署都是因为某些特殊用途,只有根CA是被强制要求安装的。

注意:CA结构的部署并不强制要求使用PKI和证书,对于较小的和比较简单的环境,你可以在CA结构中只部署一台CA,一般这台CA作为企业根CA。


如果你决定部署一个CA结构,并且你已经有了一台根CA,那你就必须决定给第二和第三层的CA赋予什么样的角色,一般我们不推荐建立超过三层的CA结构,除非公司是一个复杂的分布式的环境。

最常见的CA结构是两层结构,根CA位于顶层,从属CA位于第二层,通常我们会让根CA处于离线状态,然后通过从属CA为所有的客户端颁发和管理证书,但是在某些复杂的场景,你还需要部署其他类型的CA结构。CA结构通常会属于下面几种类型中的某一种:

  1. 带策略CA的CA结构。策略CA是一种从属CA类型,它在CA结构中直接位于根CA下面。策略CA会将证书颁发给直接位于它下方的从属CA,企业中部署策略CA去描述策略和程序,以此来保障PKI的安全,它可以验证证书持有者的身份并强制性的管理证书。策略证书只会将证书颁发给其他CA,接收到证书的CA必须接受并强制执行策略CA所定义的策略。不过策略CA并不强制使用,除非企业有多个不同的部门,行业,或者企业各地分支机构要求有不同的颁发策略和进程。但是如果你的企业要求不同的颁发策略和进程,你就必须在CA结构中加入策略CA用于定义每个唯一的策略。比如,公司可以部署一台策略CA来为内部用户颁发所有的证书,然后部署另一台策略CA为非内部用户颁发所有的证书。

  2. 带Cross-certification信任的CA结构。在这种情况下,当一个CA结构中的一台CA颁发一个cross-certified CA证书到另一个CA结构中的一台CA,这两个独立的CA结构会进行交互操作。执行这个动作时,两个不同的CA结构之间就建立了一个双向信任关系。

  3. 双层CA结构。在双层结构中,至少有一台根CA和一台从属CA,此时从属CA负责策略和颁发证书给证书请求方。


独立CA与企业CA

在Windows2012中,你可以部署两种类型的CA:独立CA和企业CA。这两者最大的不同之处在于活动目录的集成和依赖。独立CA不需要AD域,也不需要依赖于AD域,而企业CA需要有AD域,但是企业CA有很多优势,比如可以进行自动注册。

通过下表中的对比,我们可以看到独立CA与企业CA之间最重要的不同之处。

特性独立CA企业CA
代表的使用方法
独立CA通常用作离线CA,但是它能够作为CA,与网络上的CA一致可用。企业CA通常被用来颁发证书给用户,计算机,服务。并且一般不会作为离线CA使用。
活动目录依赖独立CA不依赖AD域,并且可以在非域环境中部署企业CA要求有AD域,它将AD作为配置信息和注册信息的数据库。企业CA作为证书的发布点来颁发证书给用户和计算机
证书申请方法用户只能手动或者通过Web从独立CA申请证书

用户能够通过以下方式从企业CA申请证书:

1.手动注册

2.Web注册

3.自动注册

4.注册代理

证书颁发方式证书管理员必须手动批准所有的证书申请根据模板中的自主访问控制列表自动的颁发或拒绝证书申请

最常见的是部署结构是将根CA作为独立CA,在它颁发了一个证书给自己和它的从属CA后就设置成离线,这个从属CA通常就部署成企业CA。


部署根CA时的注意事项

在你部署根CA的时候有几个需要关注的地方,首先你要决定是否部署一个离线的根CA,在这个前提下,你还需要决定是部署独立的根CA还是要部署企业根CA。

通常如果我们部署的是单层CA结构,整个CA结构中只有一台CA,那么我们一般会选择将它部署成企业根CA,但是如果我们部署的双层CA结构,一般我们会选择部署一台独立根CA和一台企业从属CA。

接下来我们需要考虑的是操作系统的安装方式,AD CS支持完整安装和核心安装的操作系统,核心安装的操作系统拥有攻击面小和减少管理员操作的优势,因此在企业环境中我们可以考虑部署核心安装的操作系统,当然AD CS也能够支持Minimal Server Interface的操作系统安装方式(精简型)。

在Win2012中我们还可以通过Powershell来部署AD CS角色。一定要记住的是,在部署了CA之后不能去变更该CA的计算机名或者计算机的域成员关系,当然我们的域名也是不能更改的,因此在安装CA时确认好以下的属性是很关键的环节:

注意事项描述
用于生成新秘钥的的加密服务提供器(CSP cryptograhic service provider)

默认的CSP作为微软强加密提供器

名称中带有字符#的提供器是下一代加密提供器

秘钥长度微软强加密提供器的默认秘钥长度是2048个字符,这是推荐的根CA秘钥最小秘钥长度,但是最佳实践推荐使用4096位秘钥。
CA颁发的签名证书所使用的哈希算法默认的哈希算法是安全哈希算法1,如果你公司中没有旧版的操作系统,比如XP,那么你可以选择更新的哈希算法,例如SHA256
CA颁发的证书的有效期在证书模板中会给有效期定义一个默认值,你可以为不同的模板设置不同的有效期
根CA的状态(在线or离线)尽量将根CA配置成离线CA,这样能够增强根证书的安全性,因为它无法通过网络被攻击。

如果你决定部署一个离线的独立根CA,有几个特别的地方需要考虑到:

  1. 在你从根CA颁发一个从属证书之前,独立根CA将自身作为CDP(吊销发布点)和AIA(授权机构信息访问),因此当你将根CA配置成离线的时候,进行吊销检查会失败,因为此时CDP和AIA已经不可访问,所以在你重新定义CDP和AIA位置的时候,你需要将CRL和AIA信息手动的拷贝到新位置。

  2. 设置有效期,比如为根CA发布的CRL设置一年的有效期,这意味着你必须每隔一年从根CA上发布新的CRL,并且将新的CRL拷贝到客户端能够获得该CRL的位置,如果你没有执行这个动作,在根CA的CRL过期后,对所有证书的吊销检查将会失败。

  3. 使用组策略将根CA证书发布到所有服务器和客户端的"受信任的根证书颁发机构"中。因为独立CA无法和企业CA一样自动的执行,所以你必须在独立CA的环境中手动的去为服务器和客户端安装证书。你还可以使用certutil命令去将根CA证书发布到AD域中。


部署从属CA的注意事项

你可以使用一个从属CA为PKI部署策略限制,并将证书发布到客户端,当你在公司中安装了一台根CA后,你可以安装一台或多台从属CA。

当你使用从属CA来为域中的用户和计算机发布证书的时候,你可以将从属CA配置成企业CA,这样你就能使用AD域中客户端账号的数据来发布和管理证书,并将证书发布到AD域。但是要完成这个动作,你所使用的账号必须是本地管理员组的成员或相同级别的权限,如果想将从属CA配置成企业CA,你的账号需要时域管理员群组的成员或相同级别的权限,从安全性的角度考虑,推荐使用一台离线根CA结合一台企业从属CA使用。

部署从属CA通常是为了实现以下的部分功能:

  1. 使用。你可以为多种用途去颁发证书,例如安全的多用途互联网邮件扩展(S/MIME),EFS,RAS(Remote Access Service).针对这些用途颁发证书的策略可以是不同的,并且能够进行分开的管理这些策略。

  2. 组织划分。你可以使用不同的策略来颁发证书,这取决于该部门或机构在组织中所扮演的角色,你可以创建从属CA去隔离和管理这些策略。

  3. 地理划分。组织可能会有一些机构分布在不同的物理站点,这些站点之间通信的网络带宽有限,那么我们就需要部署单独的从属CA给这些站点或所有站点。

  4. 负载均衡。如果你想通过PKI去发布和管理大量的证书,仅有一台CA的话会使得这台CA的网络负载过大,部署多台从属CA来颁发同类型的证书,可以将网络负载分散到各个CA中。

  5. 备份和容错。部署多台CA提升了CA的可用性,保证了你的网络中始终拥有能够正常运行的CA服务器,从而增加了用户申请证书时收到回应的可能性。


使用CAPolicy.inf文件来安装

如果你想部署一个根CA或者从属CA,在安装过程中使用一些预先定义的值,或者想定义一些额外的参数,我们可以通过使用CAPolicy.inf来达到这些目的。CAPolicy.inf文件是一个纯文本文件,它包含了AD CS角色安装或续订CA证书时的多个配置项目。CAPolicy.inf文件并不要求安装AD CS角色,但是如果没有AD CS,就只会应用默认的设置,而在大多数的情况下,仅仅使用默认的设置是不够的,我们可以通过CAPolicy.inf文件去进行更复杂的部署。

每个CAPolicy.inf文件被划分成几个区域,它有一个简单的结构,具体如下描述:

  1. Section是.inf文件的一个区域,包含了一个逻辑的秘钥组,在.inf文件中Section总是用括弧括起来

  2. 秘钥作为参数出现在"="号的左边

  3. 值作为参数出现在"="号的右边

例如,如果你想在CAPolicy.inf文件中指定一个授权机构信息访问点,你可以使用以下的语法:

[AuthorityInformationAccess]

URL=http://pki.adatum.com/CertData/adatumCA.crt

在上面这个例子中,AuthorityInformationAccess是一个区域,URL是秘钥,http://pki.adatum.com/CertData/adatumCA.crt 是值。

你还可以在CAPolicy.inf文件中指定一些CA服务器设置,例如:

[certsrv_server]

RenewalKeyLength=2048

RenewalValidityPeriod=Years

RenewalValidityPeriodUnits=5

CRLPeriod=Days

CRLPeriodUnits=2

CRLDeltaPeriod=Hours

CRLDeltaPeriodUnits=4

ClockSkewMinutes=True

LoadDefaultTemplates=True

AlternateSignatureAlgorithm=0

ForceUTF8=0

EnableKeyConuting=0


你还可以通过CAPolicy.inf文件在AD CS安装的时候定义以下配置:

  1. 证书实施声明。描述CA用来颁发证书的实施设置,其中包含颁发证书的类型,颁发的信息,证书的续签和恢复,以及其他详细的CA配置。

  2. 对象标识符(OID Object Identifier).标识出一个特定的对象或者属性

  3. CRL公布间隔。定义基础CRL公布的间隔。

  4. CA更新设置。定义以下的更新设置

    a.秘钥大小。定义用于根CA续订时的配对秘钥的长度

    b.证书有效期。定义根CA证书的有效期

    c.CDP和AIA路径。提供这些路径用于根CA安装和续订

一旦你创建了CAPolicy.inf文件,在安装AD CS角色或续订CA证书之前,你必须将它拷贝到服务器的%SystemRoot%文件夹中。

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

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

标签:ad cs

原文地址:http://thefallenheaven.blog.51cto.com/450907/1611149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!