本着应用隔离的原则,建议把证书服务部署在一台独立的windows server 2012 r2虚拟机之中。证书服务器可以不用考虑高可用,因证书服务宕掉后,除了不能继续颁发证书和不能访问证书吊销信息,并不影响证书的其他验证。
证书服务的安装
证书服务的安装很简单,运行服务器管理器,添加角色与功能,选择”Active Directory证书服务“,
在角色服务中选择”证书颁发机构“与”证书颁发机构WEB注册” (不是证书注册web服务)两项,证书颁发机构WEB注册也就是传统的http://<ca-ip>/certsrv注册方式,虽然大多数情况下可以不用此方式申请证书,但在某些特殊情况还是会用到(比如某些非微软的第三方应用),所以请安装上。
其他步骤选择默认。
安装后的配置
安装完成后,在服务器管理器的右上角会有一个***的三角图标,点击它,
选择要配置的角色服务,就选择安装的两项。
选择企业CA,
选择根CA,对于一般企业来说,就一台根CA足矣,不用搞得太复杂。
在接下来的选项中选择创建新的私钥,加密选项默认,密钥长度至少2048位,其他选项默认。
高级配置
虽然在上面的安装完成后,基本的证书服务就可以用了,但在生产环境中,还建议进行以下配置:
修改服务器级别颁发的证书有效期,如改为10年
创建一个自定义的企业用的证书模板(计算机类)
调整CRL发布期,尽量长(如果安全性要求高,则要调短)
配置HTTP方式访问CRL和AIA,并且内外可访问
创建EFS恢复代理
关于证书续订
修改服务器级别颁发的证书有效期
默认情况下,证书的有效期只有两年,即使你证书模板配置了大于两年也没用,需要在证书服务器上修改下面这个总开关:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<caname>下面的"ValidityPeriodUnits",默认为2,修改成需要的年限,修改后要重启证书服务。
在企业环境中,如果不修改这里,每两年都去续订或更新证书也是件麻烦事(比如邮件系统用的证书),对于安全合规要求不是很高的环境可以调高这里的年限。
创建一个自定义的企业用的证书模板(计算机类)
默认情况下,用户能从MMC中申请“计算机”类型的证书,但此证书所有参数固定,不能添加自定义的域名(CN和SAN),且不能导出私钥,不适合生产环境,需要新建一个适合生产的模板,以便自动申请相关证书,步骤如下:
运行mmc,添加证书模板,然后选中计算机模板,再选复制模板,就会基于计算机模板复制出一个新模板,我们可以基于此模板定义出适合自己的模板,计算机模板既适合服务器身份验证,也适合客户端身份验证,这点与WEB服务器模板有所不同,WEB服务器只适合服务器身份验证,不同用途的模板适合不同的场景,在Exchange和LYNC的部署中,通常只要是计算机类型的证书即可(比如你申请一个用户类型的证书是没有用的)。
然后在复制模板的兼容性标签选默认设置(如果不是选windows server 2003兼容设置,比如更高版本,则不能通过web方式申请),
在常规标签下,有效期设置为10年,续订期也设置长一点,如一年,如果续订期太短,过了续订期就只有新申请证书,而不能利用原有证书,这会导致很多麻烦事(比如去相关应用更换证书)。
在请求处理标签,选择允许导出私钥。
在使用者名称标签,选择在请求中提供,这样你就可以很方便地自定义公用名和使用者备用名称,比如多域名或通配符证书。
最后返回证书颁发机构,右击证书模板,选择新建,选要颁发的证书模板。
然后选择刚才新建的证书模板,这样就可以通过MMC,WEB方式申请此类型的证书了。如果不加到证书颁发机构下的证书模板下,是不能通过MMC/WEB方式申请此类型证书的。
可以找一台加域客户端或服务器进行验证,运行mmc,添加证书(计算机)插件,在个人>证书下右击,选所有任务,选申请新证书。
选择相应证书模板,并点配置设置,
在公用名填入使用者名称,然后备用名称DNS栏填入其他域名或通配符。最后确定申请,正常马上就能看到证书。
调整CRL发布期
右击吊销的证书,在CRL发布间隔填写1年,取消发布增量CRL。这样做的目的不是增强安全性,是减少工作量,毕竟大部分环境还没有很高的CRL要求。
配置HTTP方式访问CRL,并且内外可访问
默认情况下,CRL证书吊销列表通过LDAP方式访问,但此方式域网络之外是无法访问的,为了让内外都能访问,并简化部署,建议把CRL分发点设置成通过HTTP方式访问,并发布到外网,实现内外统一访问。
进入证书颁发机构属性,选择扩展标签,选CRL分发点,首先取消发布到LDAP,这个东西只能内部访问,外部又不能访问,所以取消它,只保留HTTP的方式访问CRL。
然后选中上面的http一行,再点下面的添加,添加如下地址,ca.cme-cq.com为内外网都能访问的域名,指向实际的证书服务器,最后面的jdjt-rootca.crl是证书颁发机构的名字与crl扩展名组合。
确定后如下图勾选。
完成后手动发布一下CRL。
注意这些CRL实际是发布在system32\certsrv\certenroll之下的(关联到了IIS的CertEnroll目录,所以通过HTTP能够访问),红框中的crl为吊销列表。
参照上面CDP同理修改AIA位置,取消LDAP发布,并添加http路径,路径与CRL发布路径仅后面文件名不一样,这里就是前面system32\certsrv\certenroll路径下crt文件名。
接着就是要在内外部DNS服务器上添加ca.cme-cq.com的解析,外部要访问还需要在边缘防火墙进行发布,建议使用TMG(TMG可以部署成旁路),TMG可以通过不同的域名来实现对同一IP和80端口的重复利用。
完成后到客户端申请一个证书,检查CRL分发点位置和颁发机构信息访问两个设置是否如我们配置一样。
并测试是否能够访问。
创建EFS恢复代理
有个别用户会使用EFS加密,但由于不了解相关知识,没有意识到备份自己的证书与私钥,导致重装系统后原来EFS文件再也不能打开(重装系统后私钥和证书都被删除了,虽然公钥在证书颁发机构有,但私钥如前面原理所说,他是只保存在用户电脑上的)。作为一种救援手段,管理员需要提前创建至少一个EFS恢复代理,这样当用户找到你时,你才可以扮演救世主,不然你也只能耸耸肩。其实操作很简单,打开组策略管理,编辑默认的default domain policy,在计算机配置>windows设置>安全设置>公钥策略下,右击加密文件系统,选择创建数据恢复代理程序,就会自动以当前用户创建一个恢复代理,
双击此证书,可以看到证书目的是文件恢复,
切换到详细信息,点复制到文件,把恢复代理证书与私钥备份出来,以备急用。
完成后在用户端刷新组策略,可以见到相关加密文件属性中已经有了恢复代理。
那如果是用户出现问题,怎么恢复呢?
步骤是登录用户桌面,把此pfx证书导入当前用户,此时就能够打开了。
关于证书续订
证书续订需要在续订期之内进行,进入mmc,找到相应证书,选所有任务>高级操作>使用相同的密钥续订此证书