论文部分内容阅读
证书对于保护系统安全是很重要的,利用证书服务,可以在客户端和服务器通讯时,对传输的数据进行加密,对用户身份进行认证,这样才可以充分保证其安全性,在Windows Server中,已经提供了完善的证书管理机制。用户可以通过证书管理中心(certification authority,CA)机构,来申请和获得数字证书。因此,对于管理员来说,充分了解和掌握CA运行机制,对于提高网络运行效能是极为重要的。本文从配置和管理独立企业CA,实现层次化的CA架构,以及对CA进行迁移等方面,深入浅出地介绍了相关的操作方法和技巧。
一、快速部署企业CA
这里以部署企业CA为例,在域中某台Windows Server 2012服务器上打开服务器管理器,点击“安装角色和功能”项,在角色列表中选择“Active Directory证书服务”项,在下一步窗口中的“角色服务”列表中选择“证书颁发机构”和“证书颁发机构Web注册”项即可。点击安装按钮,点击“配置目标服务器上的Active Directory证书服务”链接,在AD CS窗口中点击下一步按钮,选择上述两个角色服务项,在指定CA的设置类型窗口中选择“企业CA”项。之后选择“根CA”项,在指定私钥类型窗口中选择“创建新的私钥”项,这是因为若要生成证书并将其颁发给客户端,CA必须具有自己的私钥。接下来根据需要修改CA的名称,其余选项采取默认值,点击配置按钮,执行配置操作。
二、使用证书实现安全访问
当客户端登录到域环境之后,运行“mmc”程序,在控制台中点击“文件→添加/删除管理单元”项,在打开窗口中选择“证书”项,点击添加按钮。在左侧选择“证书-当前用户→受信任的根证书颁发机构”项,在右侧可以看到上述企业CA名称。使用证书,可以实现安全认证和数据的加密传输。例如,可以用来保证用户安全地访问目标网站。在域中某Web服务器上打开IIS管理器,在左侧选择服务器名称,在中部的“IIS”栏中双击“服务器证书”项,在弹出界面右侧点击“创建域证书”链接,在向导界面(图1)中输入证书的通用名称(要和域名保持一致)、组织、组织单元、城市/地点、省/市/自治区、国家/地区等信息。
点击下一步按钮,在联机证书颁发机构窗口中点击“选择”按钮,选择上述CA证书服务器,点击确定按钮完成选择操作,在“好记名称”栏中为本证书指定一个易于记忆的名称,点击完成按钮,就完成了证书的创建操作。该证书是由域的证书颁发机构颁发的。当创建了所需的证书后,在IIS管理器中选择目标站点,在右侧点击“绑定”项,在打开窗口(图2)中点击“添加”按钮,在“类型”列表中选择“https”项,在“SSL证书”列表中选择上述对应的证书,就可以为该网站绑定证书。
三、部署层次化CA证书结构
对于规模较小的企业来说,配置单一的CA服务器是可以满足实际需要的。但是,对于大中型企业来说,部署层次化的CA基础结构很有意义。当独立CA服务器为从属CA主机颁发证书之后,该独立CA就可以离线。如果有恶意用户试图部署从属CA的话,因为没有独立CA的支持,那么在企业的PKI结构中该从属CA是无法被信任的。这样,可以有力地保证企业PKI结构的安全性。
例如,在企业网中存在一台域控,并将其配置为企业从属CA,将一台独立服务器(名称为“Server1”)配置为独立根CA,该服务器为企业从属CA颁发证书并进行验证。这里使用的都是Windows Server 2012 R2系统,Server1服务器处于工作组环境,使用本地管理员账户进行登录。在服务器管理器中点击“添加角色和功能”项,在角色列表中选择“Active Directory证书服务”项,点击下一步按钮,在角色服务列表中选择“证书颁发机构”和“证书颁发机构Web注册”项。点击安装按钮,安装所需的组件。
四、指定CA服务类型
在向导界面中点击“配置目标服务器上的Active Directory证书服务”链接,在ADCS配置窗口中点击下一步按钮,选择“证书颁发机构”和“证书颁发机构Web注册”项,在指定CA类型窗口(图3)中选择“根CA”项,之后选择“创建新的私钥”并保持默认加密算法,在指定CA名称窗口中设置此CA的公用名称(例如“ROOTCA-CA”等)。其余设置保持默认,点击配置按钮,将该机配置为独立根CA。打开证书颁发机构管理控制台,来配置CDP和AIA,CDP是证书吊销列表分发点,AIA是授权信息访问点。
五、添加CRL分发点路径
在左侧选择根CA名称,在其属性窗口中的“扩展”面板中选择“CRL分发点”项,在列表中选择以“http://”开头的路径项目,点击“添加”按钮,在添加位置窗口(图4)中的“位置”栏中输入“http://dcserver.xxx.com/certfile/”,其中的“dcserver.xxx.com”为DC的域名,“certfile”为存储证书数据的文件夹。
在“变量”列表中依次选择“<CaName>”“<CRLNameSuffix>”“<DeltaCRLAllowed>”项,分别点击“插入”按钮,将其插入到上述位置字符串中。在“位置”栏尾部中输入“.crl”,点击确定按钮,创建自定义CRL分发点路径。选中该路径,选择“包含在CRL中,客户端用它来寻找增量CRL的位置”“包含在颁发的证书的CDP扩展中”项,点击应用按钮,在弹出提示窗口中点击“否”按钮,暂不重启AD证书服务。
六、导出CA根证书
在“选择扩展”列表中选择“授权信息访问(AIA)”项,在列表中选择以“http://”开头的路径项目,在“位置”栏中输入从属CA路径,即“http://dcserver.xxx.com/certfile/<ServerDNSName>_<CaName><CertificateName>.crt”,点击确定按钮保存配置,选择“包含在颁发的证书中的AIA扩展中”,并根据提示重启AD证书服务。在证书颁发机构管理控制台左侧选择“吊销的证书”项,在其右键菜单上点击“所有任务→发布”项,选择“新的CRL”项。点击确定按钮,将证书吊销列表发布出来。在根CA属性窗口中的“常规”面板中显示“证书#0”的证书,点击“查看证书”按鈕,在打开窗口中的“详细信息”面板中可以查看其各项信息,点击“复制到文件”按钮,将根CA证书导出(例如名为“rootca.cer”)。 七、让域中主机自动信任根证书
打开“C:\Windows\System32\certsrv\certenroll”目录,将其中的“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件复制出来,将上述文件复制到DC域控的C盘根目录下。以域管理员身份登录DC,在组策略管理器左侧选择“林→域→域名→组策略对象→Default Domain Policy”项,在其右键菜单上点击“编辑”项,选择“计算机配置→Windows设置→安全设置→公钥策略→受信任的根证书颁发机构”项,在其右键菜单上点击“导入”项,在向导界面中选择上述“rootca.cer”文件,将其导入进来。这样,只要是加入到域中的主机,会自动信任该根CA证书。
八、部署从属CA服务器
在CMD窗口中執行“gpupdate/force”命令,来刷新组策略。之后在DC上部署从属CA,在服务器管理器中点击“添加角色和功能”项,在角色列表中选择“Active Directory证书服务”,在角色服务列表中选择“证书颁发机构”和“证书颁发机构Web注册”项。点击安装按钮,安装所需的组件。在向导界面中点击“配置目标服务器上的Active Directory证书服务”链接,在AD CS配置窗口中点击下一步按钮,选择“证书颁发机构”和“证书颁发机构Web注册”项,后者主要用于用户手工申请证书之用。
在下一步窗口中选择“企业CA”项,可以为加入域的计算机自动颁发证书。在指定CA类型窗口中选择“从属CA”项,点击下一步按钮,选择“创建新的私钥”项,在从属CA申请证书窗口中选择“将证书申请保存到目标计算机上的文件”项,设置合适的文件名(例如“xxx.req”)。其余设置保持默认,点击“配置”按钮,执行所需的配置操作。打开“C:\inetpub\wwwroot”目录,在其中创建名为“certfile”的文件夹,这和上面的设置是对应的,将上述“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件复制到该文件夹中。这样,客户端才可以特定的HTTP路径定位到证书吊销分发点。
九、提交证书申请
打开浏览器,访问上述独立根CA证书申请地址,例如“http://xxx.xxx.xxx.xxx/certsrv”。其中的“xxx.xxx.xxx.xxx”为上述独立CA的IP。在打开页面中点击“申请证书”链接,点击“高级证书申请”,点击“使用base64编码的CMC或PCKS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请”链接,将上述证书申请文件的内容粘贴进来,点击“提交”按钮,执行提交操作。之后登录到上述独立根CA主机,在证书颁发机构左侧选择“挂起的申请”项,在右侧可以看到上述证书申请项目。
在该项的右键菜单上点击“所有任务→颁发”项,执行证书颁发操作。在左侧选择“颁发的证书”项,在右侧选择颁发的证书项目,在其右键菜单上点击“打开”项,在其属性窗口中的“详细信息”面板中点击“复制到文件”按钮,在向导界面(图5)中选择“加密消息语法标准-PKCS#7证书”和“如果可能,则包含证书路径中的所有证书”项,这是一个包含根CA和从属CA的证书链文件。之后将其导出为独立的文件,例如“czs7b”。登录到DC上,打开证书颁发机构控制台,在左侧的主机名的右键菜单上点击“所有任务→安装CA证书”项,选择上述“czs7b”文件,点击打开按钮,执行证书安装操作。稍后点击工具栏上的启动按钮,启动AD证书服务。
十、配置证书自动申请机制
在组策略管理器中选择“林→域→域名→组策略对象→Default Domain Policy”项,在其右键菜单上点击“编辑”项,选择“计算机配置→策略”及“Windows设置→安全设置→公钥策略→自动证书申请设置”项,在其右键菜单上点击“新建→自动证书申请”项,在向导界面(图6)中的“证书模版”列表中选择“计算机”项,点击完成按钮,完成所需操作。这样,加入域的计算机就会自动获得证书。在CMD窗口中执行“gpupdate/force”命令,来刷新组策略。
当客户机加入域后,可以自动获得证书,在其MMC控制台上点击菜单“文件→添加/删除管理单元”项,添加证书管理单元。在左侧选择“证书→个人→证书”项,可以看到自动获取的证书。选择“受信任的根证书颁发机构→证书”项,可以看到根CA证书。选择“中间证书颁发机构→证书”项,显示从属CA信任根CA信息。
十一、CA证书颁发机构的迁移策略
对于基于微软活动目录架构的网络来说,证书服务是极为重要的。利用证书机制,可以充分保证网络连接和通讯的安全性。随着技术的发展,很多企业都会面临网络升级的需求。例如,将域架构从Windows Server 2003升级到Windows Server 2008,从Windows Server 2008升级到Windows Server 2012等。在升级预控的同时,也必然涉及到对CA证书颁发机构的升级。如何才能迅速准确地升级CA证书颁发机构,是管理员必须熟悉和了解的事情。
十二、准备迁移所需的网络环境
这里就以从Windows Server 2008 R2的CA迁移到Windows Server 2012 R2为例,来说明具体的实现方法。在名为“caserver1”的Windows Server 2008主机上安装了CA证书颁发机构,其IP为192.168.1.20,迁移的目标是一台Windows Server 2012 R2的CA服务器,其名称为“caserver2”,IP为192.168.1.30。实现CA的迁移,需要使用到OCSP服务器,其安装的是Windows Server 2008 R2,IP为192.168.1.10。OCSP即联机证书校验组件,其主要作用是检测在CA迁移过程中是否存在问题,检测相关的证书是否正常,以及检测当前的CA是否工作正常。当然,这里主要谈论的是企业CA的迁移,上述服务器都需要加入到域环境,假设域名为“xxx.com”。 十三、配置OCSP服务器
这里先谈谈OCSP服务器的配置,OCSP服务是指通过证书颁发机构提供的接口,来校验证书的状态和有效性。也就是说,OCSP联机响应程序可以让客户端在复杂的网络环境中,通过访问证书吊销列表,来检测CA以及相关证书是否有效。在Windows Server 2008之前的版本中,是不存在该服务组件的。在域控上打开证书颁发机构窗口,在左侧的“证书模板”项的右键菜单上点击“管理”项,在证书模板列表中选择“OCSP响应签名”项,在其属性窗口中的“安全”面板中点击“添加”按钮,在选择用户、计算机、服务账户和组窗口中点击“对象类型”按钮,在对象类型列表中确保选中“计算机”项。之后输入OCSP服务器的名称,将其导入进来。在“安全”面板(图7)中的“组或用户名”列表中選择该机,在权限列表中赋予其注册的权限。
在证书颁发机构窗口左侧选择“证书模板”项,在其右键菜单上点击“新建→要颁发的证书模板”项,在启用证书模板窗口中选择“OCSP响应签名”项,点击确定按钮,执行模板的颁发操作。在左侧选择证书颁发机构名称,在其属性窗口中打开“扩展”面板,在“选择扩展”列表中选择“颁发机构信息访问(AIA)项”,点击“添加”按钮,在添加位置窗口(图8)中的“位置”栏中输入“http://ocspsrv.xxx.com/ocsp”,其中的“ocspsrv”是OCSP服务器的名称。点击确定按钮,在列表中选择该网址,选择“包含在颁发的证书的AIA扩展中”和“包括在联机证书状态协议(OCSP)扩展中”项,点击应用按钮,会自动重启Active Directory证书服务。
准备好以上条件后,在OCSP服务器上打开CMD窗口,执行“gpupdate/force”命令,来刷新组策略,使上述证书模板生效。打开服务器管理器,在左侧的“角色”项的右键菜单上点击“添加角色”项,在向导界面中选择“Active Directory证书服务”项,点击下一步按钮,在角色服务列表中只选择“联机响应程序”项,点击安装按钮,安装该服务组件。打开联机响应程序控制台,在左侧选择“吊销配置”项,在其右键菜单上点击“添加吊销配置”项,在向导界面(图9)中输入其名称(例如“dxpz”),点击下一步按钮,选择“选择现有企业CA的证书”项,在下一步窗口中选择“浏览Active Directory中发布的CA证书”项,点击浏览按钮,选择当前的CA。点击下一步按钮,在“证书模板”列表中显示“OCSPResponseSigning”,表示其已经获取预设的证书。点击完成按钮,退出该向导界面。
十四、测试OCSP服务状态
为了测试OCSP服务运行是否正常。可以在客户机上登录到域环境,运行“mmc”程序,在控制台中点击菜单“文件→添加/删除管理单元”项,在列表中选择“证书”项,点击添加按钮,将其导入进来。在控制台左侧选择“证书→个人”项,在其右键菜单上点击“所有任务→申请新证书”项,在向导界面中选择“Active Directory注册策略”项,根据需要注册一张证书。在该证书的右键菜单上点击“所有任务→导出”项,在向导界面中选择“不要导出私钥”项,点击一步按钮,设置导出文件路径,得到后缀为“.cer”的文件,假设其名为“zhengshu.cer”。
在CMD窗口中执行“certutil.exe-urle:\zhengshu.cer”命令,在URL检索工具窗口(图10)的“检索”栏中选择“OCSP(来自AIA)”项,点击“检索”按钮,显示预设的OCSP服务位置信息。稍后会显示“已验证”项,说明该证书已经验证通过,处于正常状态。在“caerver”主机上打开证书颁发机构窗口,在左侧选
择“颁发的证书”项,在右侧可以看到该证书信息。在该证书的右键菜单上点击“所有任务→吊销证书”项,将其吊销,在左侧选择“吊销的证书”项,可以看到该证书处于吊销状态。
为了及时通知客户端,在“吊销的证书”项的右键菜单上点击“所有任务→发布”项,在发布CRL窗口中选择“仅增量”项,点击确定按钮,将吊销信息发布。之后在OCSP服务器上打开联机响应程序,在左侧选择“联机响应程序:服务器名”项,在其属性窗口(图11)中的“Web代理服务器”面板中将“缓存条目数”栏的值设置为0,禁用其缓存功能。不过最好的方法是在左侧选择“数组配置”项,在其右键菜单上点击“刷新吊销数据”项,执行对应的刷新操作。这样,当在客户端再次执行以上操作时,就会发现该证书的状态已经变成了“已吊销”。
十五、导出CA相关数据
谈到证书颁发机构的迁移,必然涉及到很多与之相关的数据的迁移,例如CA数据库就是必须迁移的对象,在其中包含了证书的颁发信息等。此外,诸如CA的加密私钥、和CA相关的注册表信息、CA模板信息、CA策略配置等,都是需要迁移的对象。CA迁移的原理其实很简单,例如在本例中就是将WindowsServer2008R2的CA数据导出来,之后再导入到WindowsServer2012版本的CA服务器上。因此,这对于之前的CA信息没有任何影响。为了便于存储迁移的数据,我们在CAserver1服务器上创建一个名为“CAData”的文件夹。
在该机上打开CMD窗口,执行“certutil.exe–catemplates>e:\cadata\camoban.txt”命令,将CA模板信息导出来,保存在“camoban.txt”文件中。执行“certutil.exe-getregca\csp\*>e:\cadata\certcsp.txt”命令,将CA的签名算法和CSP信息导出到“certcsp.txt”文件中。为了配合迁移操作,应该增大CRL证书吊销列表的发布周期。在证书颁发机构窗口左侧选择CA服务器名,在其属性窗口中的“CRL发布参数”面板中对“CRL发布间隔”和“发布增量”的值进行调整,默认为每隔一周发布一次吊销列表,每隔一天发布增量CRL。 这里将其设置为较长的周期,例如将其分别调整为两周和两天等。这是因为在迁移过程中,如果执行了发布CRL操作,但是在导出和迁移时没有包含发布的CRL信息,就会造成证书管理上的漏洞。因此延长了CRL发布周期,在迁移过程中可以尽可能地避免发生新的CRL发布情况,保证CRL证书吊销列表完整地进行迁移。执行“net restart certsrv”命令,重启ActiveDirectory证书服务,使更改的配置生效。
十六、备份CA数据库
当备份CA数据库操作时,必须执行“netstopcertsrv”命令,停止AD证书服务。其作用是防止在迁移期间,如果CA继续对外发布证书,就会造成迁移后丢失这些证书的问题。备份的方法有两种,可以执行“certutil.exe-backupDBe:\cadata”“certutil.exe-backupkeye:\cadata”命令,来备份CA数据库和私钥信息,也可以在证书颁发机构窗口左侧选择CA服务器名,在其右键菜单上点击“所有任务→备份CA”项,在向导界面(图12)中选择“私钥和CA证书”“证书数据库和证书数据库日志”项,点击浏览按钮,选择备份信息存储路径,例如“e:\cadata”。
点击下一步按钮输入私钥密码,来保护私钥和CA证书文件。点击完成按钮,执行备份操作。运行“regedit.exe”程序,在注册表编辑器中打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration”分支,在其右键菜单上点击“导出”项,将其导出为“capeizh.reg”文件,保存到上述路径中。如果对CA进行一些额外的配置,就会在“C:\Windows”目录下产生名为“capolicy.inf”的文件,将其复制到上述路径中。打开“E:\CAdata”文件夹,可以看到所有用于迁移CA的文件。
十七、将CA迁移到新的服务器上
登录到名为“caserver2”的CA服务器上,将上述“CAdata”文件夹复制过来。注意,在该机上安装了ActiveDirectory证书服务后,在对其进行配置时,在向导界面中的“指定私钥类型”窗口中选择“使用现有私钥”和“选择一个证书并使用其关联私钥”项,点击下一步按钮,点击导入按钮,在打开窗口中点击浏览按钮,选择“CAdata”文件夹中的名称与原CA服务器名相同,后缀为“.p12”的文件,输入私钥密码将其导入,其余的配置保持不变。因为其使用了之前的私钥,所以有关数据导入、为客户端提供服务等操作,和之前的CA服务器是一致的。
打开证书颁发机构窗口,在左侧选择CA服务器名,在其右键菜单上点击“所有任务→还原CA”项,在弹出警告窗口中点击确定按钮,暂停AD证书服务。在向导界面中选择“证书数据库和证书数据库日志”项,点击浏览按钮,选择上述“CAdata”文件夹,点击完成按钮,执行CA数据库还原操作。当然,也可以在CMD窗口中执行“certutil.exe-f-restoree:\cadate”命令,来执行还原操作。在左侧点击“证书模板”项,可以看到之前的所有证书模板信息,说明还原成功。
在“E:\CAdata”中双击后缀为“.reg”的文件,将其导入到注册表中。或者在注册表编辑器中点击菜单
“文件→导入”项,选择该文件进行导入。也可以在CMD窗口中执行“regimporte:\cadata\capeizh.reg”,将原CA服务的配置信息导入进来。当然,如果有必要的话,可以将名为“capolicy.inf”的文件复制到“C:\Windows”目录中。此刻执行“net start certsrv”命令,启动AD证书服务,就可以完成基本的证书管理服务了。例如,在域中的客户端上可以顺利申请到证书。打开证书的属性窗口,在“详细信息”面板中选择“CRL分发点”项,可以查看到全新的CA服务器信息,用户感觉和使用之前的CA服务器是一样的。
按照上述方法,对导出的证书进行校验,可以看到校验顺利通过。注意,在校验证书吊销列表时,可能会出现一些问题。其主要原因是后台的OCSP服务器依然连接到原有的CA服务器读取数据。解决的方法是在OCSP服务器上打开联机响应程序,在左侧选择“吊销配置”项,在其属性窗口中的“吊销提供程序”面板中点击“提供程序”按钮,在打开窗口中的“基本CRL”列表中显示其连接的依然是原CA服务器。点击“编辑”按钮,将其修改为新的CA服务器名即可。在左侧选择“数组配置”项,在其右键菜单上点击“刷新吊销数据”项,执行对应的刷新操作。这样,OCSP服务器就会和新的CA服務器互传数据了。
十八、迁移中的一些注意事项
为了让迁移更加彻底,需要对注册表中相关数据进行修改,在注册表编辑器中打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration\xxx”分支,其中的“xxx”为CA服务器名,在其中查找包含源CA服务器名的项目,找到后将其修改为新的CA服务器名。例如将“caserver1”修改为“caserver2”。这样做的好处在于可以正确使用CA变量,例如“CaName”等。
因为CA和活动目录紧密集成,当运行ADSI编辑器,在左侧的“ADSI编辑器”节点的右键菜单上点击“连接到”项,在连接窗口中选择“选择一个已知命名上下文”项。在列表中选择“配置”项,点击确定按钮,在左侧选择“ADSI编辑器→配置→CN=Configuration,DC=xxx,DC=com”“CN=Services→CN=Public Key Services→CN=CDP”分支,在其下可以看到两个“CN=xxx”项目,其中的“xxx”为两个CA服务器的名称,例如“CN=caserver1”“CN=caserver2”。这表示的不是两台主机,而是两个容器。 打开ActiveDirectory站点和服务控制台(图13),点击菜单“查看→显示服务节点”项,在左侧选择“Services→Public Key Services→AIA”项,在右侧选择与CA服务同名的项目,在其属性窗口中“安全”面板中查看组或用户名列表,可以看到原CA服务器拥有访问权限,而新的CA服务器没有访问权限。点击添加按钮,将“caserver2”计算机添加进来。之后针对该服务器分配权限,使其拥有完全控制的权限。
对应的,选择“Services→Public Key Services→CDP→caserver1”项,在其属性窗口中打开“安全”面板,执行同样的操作,为“caserver2”主机配置完全访问的权限。这样,就针对新的CA服务器设置了合适的访问权限。实际上,如果原CA服务器和新CA服务器同名的话,迁移起来就顺畅得多。可以按照上述方法进行迁移,当迁移完毕后,将原CA服务角色删除即可。
但是,如果两者不同名,例如本例中的“caserver1”和“caserver2”,就存在一定的问题。例如,在原CA上发布的证书,在进行校验时,其路径依然指向原CA服务器。打开“caserver2”服务器上的迁移过来的证书,在其属性窗口中的“详细信息”面板中选择“CRL分发点”项,可以看到其URL路径指向的是与“caserver1”相关的路径。但是在“caserver2”上颁发的证书,其CRL路径指向的是其自身。也就是说,在原CA服务器上颁发的证书,虽然其证书信息迁移过来了,但是其校验路径依然未变。
因此在迁移完成后,可以将“caserver1”上的活动目录证书服务删除,但是必须保证和证书LDAP校验模式相关的配置信息依然存在。運行“adsiedit.mac”程序,在ANSI编辑器左侧选择“ADSI编辑器→配置→CN=Configuration,DC=xxx,DC=com→CN=Services→CN=Public Key Services→CN=CDP”分支,在其下必须保证存在以上两个容器。如果将“caserver1”容器删除,那么原CA服务器颁发的证书将无法进行校验。
当CA证书颁发机构迁移后,原CA服务器停止服务,在域中就只有新的CA证书服务器在运行。在该机上打开证书颁发机构窗口,在左侧选择CA服务器名,在其属性窗口中打开“扩展”面板,在“选择扩展”列表中选择“CRL分发点”项,在其下的CRL列表中的“LDAP”路径中进行分析,不难看出其对应的实际上是名为“caserver2”的容器。这样,当在发布吊销列表时,只能将相关证书信息写入到和本机同名的容器中。
根据以上分析,实际上是存在着以“caserver1”和“caserver2”命名的两个容器,但是在吊销证书列表时,只针对其中一个容器写入数据,另外的“caserver2”容器处于闲置无用状态,其不会存储证书列表更新信息。对于在“caserver2”上颁发的新的证书而言,在执行吊销操作时是没有影响的。但是对其迁移过来的原CA服务器颁发的证书进行吊销时,就会出现无法写入“caserver1”容器,而不能进行更新的问题。
当然,如果这类证书已经过期,在续约时可以使用“caserver1”容器,就不存在该问题了。因此,将吊销的证书信息同时写入到上述两个容器中,才可以化解该问题。方法是在上述“扩展”面板中点击添加按钮,在添加位置窗口中的“位置”栏中输入“ldap:///CN=<CATruncatedName><CRLNameSuffix>,CN=caserver1,CN=CDP,CN=PublicKeyServices,CN=Services,CN=<ConfigurationContainer>,CN=<CDPObjectClass>”,将发布路径明确指向原来的容器。点击确定按钮,保存该路径信息。选择该路径项,在窗口底部只选择“发布CRL到此位置”和“将增量CRL发布到此位置”项,点击应用按钮,保存配置信息。这样,当发布吊销证书列表时,就可以将相关的信息同时写入以上两个容器中。
一、快速部署企业CA
这里以部署企业CA为例,在域中某台Windows Server 2012服务器上打开服务器管理器,点击“安装角色和功能”项,在角色列表中选择“Active Directory证书服务”项,在下一步窗口中的“角色服务”列表中选择“证书颁发机构”和“证书颁发机构Web注册”项即可。点击安装按钮,点击“配置目标服务器上的Active Directory证书服务”链接,在AD CS窗口中点击下一步按钮,选择上述两个角色服务项,在指定CA的设置类型窗口中选择“企业CA”项。之后选择“根CA”项,在指定私钥类型窗口中选择“创建新的私钥”项,这是因为若要生成证书并将其颁发给客户端,CA必须具有自己的私钥。接下来根据需要修改CA的名称,其余选项采取默认值,点击配置按钮,执行配置操作。
二、使用证书实现安全访问
当客户端登录到域环境之后,运行“mmc”程序,在控制台中点击“文件→添加/删除管理单元”项,在打开窗口中选择“证书”项,点击添加按钮。在左侧选择“证书-当前用户→受信任的根证书颁发机构”项,在右侧可以看到上述企业CA名称。使用证书,可以实现安全认证和数据的加密传输。例如,可以用来保证用户安全地访问目标网站。在域中某Web服务器上打开IIS管理器,在左侧选择服务器名称,在中部的“IIS”栏中双击“服务器证书”项,在弹出界面右侧点击“创建域证书”链接,在向导界面(图1)中输入证书的通用名称(要和域名保持一致)、组织、组织单元、城市/地点、省/市/自治区、国家/地区等信息。
点击下一步按钮,在联机证书颁发机构窗口中点击“选择”按钮,选择上述CA证书服务器,点击确定按钮完成选择操作,在“好记名称”栏中为本证书指定一个易于记忆的名称,点击完成按钮,就完成了证书的创建操作。该证书是由域的证书颁发机构颁发的。当创建了所需的证书后,在IIS管理器中选择目标站点,在右侧点击“绑定”项,在打开窗口(图2)中点击“添加”按钮,在“类型”列表中选择“https”项,在“SSL证书”列表中选择上述对应的证书,就可以为该网站绑定证书。
三、部署层次化CA证书结构
对于规模较小的企业来说,配置单一的CA服务器是可以满足实际需要的。但是,对于大中型企业来说,部署层次化的CA基础结构很有意义。当独立CA服务器为从属CA主机颁发证书之后,该独立CA就可以离线。如果有恶意用户试图部署从属CA的话,因为没有独立CA的支持,那么在企业的PKI结构中该从属CA是无法被信任的。这样,可以有力地保证企业PKI结构的安全性。
例如,在企业网中存在一台域控,并将其配置为企业从属CA,将一台独立服务器(名称为“Server1”)配置为独立根CA,该服务器为企业从属CA颁发证书并进行验证。这里使用的都是Windows Server 2012 R2系统,Server1服务器处于工作组环境,使用本地管理员账户进行登录。在服务器管理器中点击“添加角色和功能”项,在角色列表中选择“Active Directory证书服务”项,点击下一步按钮,在角色服务列表中选择“证书颁发机构”和“证书颁发机构Web注册”项。点击安装按钮,安装所需的组件。
四、指定CA服务类型
在向导界面中点击“配置目标服务器上的Active Directory证书服务”链接,在ADCS配置窗口中点击下一步按钮,选择“证书颁发机构”和“证书颁发机构Web注册”项,在指定CA类型窗口(图3)中选择“根CA”项,之后选择“创建新的私钥”并保持默认加密算法,在指定CA名称窗口中设置此CA的公用名称(例如“ROOTCA-CA”等)。其余设置保持默认,点击配置按钮,将该机配置为独立根CA。打开证书颁发机构管理控制台,来配置CDP和AIA,CDP是证书吊销列表分发点,AIA是授权信息访问点。
五、添加CRL分发点路径
在左侧选择根CA名称,在其属性窗口中的“扩展”面板中选择“CRL分发点”项,在列表中选择以“http://”开头的路径项目,点击“添加”按钮,在添加位置窗口(图4)中的“位置”栏中输入“http://dcserver.xxx.com/certfile/”,其中的“dcserver.xxx.com”为DC的域名,“certfile”为存储证书数据的文件夹。
在“变量”列表中依次选择“<CaName>”“<CRLNameSuffix>”“<DeltaCRLAllowed>”项,分别点击“插入”按钮,将其插入到上述位置字符串中。在“位置”栏尾部中输入“.crl”,点击确定按钮,创建自定义CRL分发点路径。选中该路径,选择“包含在CRL中,客户端用它来寻找增量CRL的位置”“包含在颁发的证书的CDP扩展中”项,点击应用按钮,在弹出提示窗口中点击“否”按钮,暂不重启AD证书服务。
六、导出CA根证书
在“选择扩展”列表中选择“授权信息访问(AIA)”项,在列表中选择以“http://”开头的路径项目,在“位置”栏中输入从属CA路径,即“http://dcserver.xxx.com/certfile/<ServerDNSName>_<CaName><CertificateName>.crt”,点击确定按钮保存配置,选择“包含在颁发的证书中的AIA扩展中”,并根据提示重启AD证书服务。在证书颁发机构管理控制台左侧选择“吊销的证书”项,在其右键菜单上点击“所有任务→发布”项,选择“新的CRL”项。点击确定按钮,将证书吊销列表发布出来。在根CA属性窗口中的“常规”面板中显示“证书#0”的证书,点击“查看证书”按鈕,在打开窗口中的“详细信息”面板中可以查看其各项信息,点击“复制到文件”按钮,将根CA证书导出(例如名为“rootca.cer”)。 七、让域中主机自动信任根证书
打开“C:\Windows\System32\certsrv\certenroll”目录,将其中的“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件复制出来,将上述文件复制到DC域控的C盘根目录下。以域管理员身份登录DC,在组策略管理器左侧选择“林→域→域名→组策略对象→Default Domain Policy”项,在其右键菜单上点击“编辑”项,选择“计算机配置→Windows设置→安全设置→公钥策略→受信任的根证书颁发机构”项,在其右键菜单上点击“导入”项,在向导界面中选择上述“rootca.cer”文件,将其导入进来。这样,只要是加入到域中的主机,会自动信任该根CA证书。
八、部署从属CA服务器
在CMD窗口中執行“gpupdate/force”命令,来刷新组策略。之后在DC上部署从属CA,在服务器管理器中点击“添加角色和功能”项,在角色列表中选择“Active Directory证书服务”,在角色服务列表中选择“证书颁发机构”和“证书颁发机构Web注册”项。点击安装按钮,安装所需的组件。在向导界面中点击“配置目标服务器上的Active Directory证书服务”链接,在AD CS配置窗口中点击下一步按钮,选择“证书颁发机构”和“证书颁发机构Web注册”项,后者主要用于用户手工申请证书之用。
在下一步窗口中选择“企业CA”项,可以为加入域的计算机自动颁发证书。在指定CA类型窗口中选择“从属CA”项,点击下一步按钮,选择“创建新的私钥”项,在从属CA申请证书窗口中选择“将证书申请保存到目标计算机上的文件”项,设置合适的文件名(例如“xxx.req”)。其余设置保持默认,点击“配置”按钮,执行所需的配置操作。打开“C:\inetpub\wwwroot”目录,在其中创建名为“certfile”的文件夹,这和上面的设置是对应的,将上述“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件复制到该文件夹中。这样,客户端才可以特定的HTTP路径定位到证书吊销分发点。
九、提交证书申请
打开浏览器,访问上述独立根CA证书申请地址,例如“http://xxx.xxx.xxx.xxx/certsrv”。其中的“xxx.xxx.xxx.xxx”为上述独立CA的IP。在打开页面中点击“申请证书”链接,点击“高级证书申请”,点击“使用base64编码的CMC或PCKS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请”链接,将上述证书申请文件的内容粘贴进来,点击“提交”按钮,执行提交操作。之后登录到上述独立根CA主机,在证书颁发机构左侧选择“挂起的申请”项,在右侧可以看到上述证书申请项目。
在该项的右键菜单上点击“所有任务→颁发”项,执行证书颁发操作。在左侧选择“颁发的证书”项,在右侧选择颁发的证书项目,在其右键菜单上点击“打开”项,在其属性窗口中的“详细信息”面板中点击“复制到文件”按钮,在向导界面(图5)中选择“加密消息语法标准-PKCS#7证书”和“如果可能,则包含证书路径中的所有证书”项,这是一个包含根CA和从属CA的证书链文件。之后将其导出为独立的文件,例如“czs7b”。登录到DC上,打开证书颁发机构控制台,在左侧的主机名的右键菜单上点击“所有任务→安装CA证书”项,选择上述“czs7b”文件,点击打开按钮,执行证书安装操作。稍后点击工具栏上的启动按钮,启动AD证书服务。
十、配置证书自动申请机制
在组策略管理器中选择“林→域→域名→组策略对象→Default Domain Policy”项,在其右键菜单上点击“编辑”项,选择“计算机配置→策略”及“Windows设置→安全设置→公钥策略→自动证书申请设置”项,在其右键菜单上点击“新建→自动证书申请”项,在向导界面(图6)中的“证书模版”列表中选择“计算机”项,点击完成按钮,完成所需操作。这样,加入域的计算机就会自动获得证书。在CMD窗口中执行“gpupdate/force”命令,来刷新组策略。
当客户机加入域后,可以自动获得证书,在其MMC控制台上点击菜单“文件→添加/删除管理单元”项,添加证书管理单元。在左侧选择“证书→个人→证书”项,可以看到自动获取的证书。选择“受信任的根证书颁发机构→证书”项,可以看到根CA证书。选择“中间证书颁发机构→证书”项,显示从属CA信任根CA信息。
十一、CA证书颁发机构的迁移策略
对于基于微软活动目录架构的网络来说,证书服务是极为重要的。利用证书机制,可以充分保证网络连接和通讯的安全性。随着技术的发展,很多企业都会面临网络升级的需求。例如,将域架构从Windows Server 2003升级到Windows Server 2008,从Windows Server 2008升级到Windows Server 2012等。在升级预控的同时,也必然涉及到对CA证书颁发机构的升级。如何才能迅速准确地升级CA证书颁发机构,是管理员必须熟悉和了解的事情。
十二、准备迁移所需的网络环境
这里就以从Windows Server 2008 R2的CA迁移到Windows Server 2012 R2为例,来说明具体的实现方法。在名为“caserver1”的Windows Server 2008主机上安装了CA证书颁发机构,其IP为192.168.1.20,迁移的目标是一台Windows Server 2012 R2的CA服务器,其名称为“caserver2”,IP为192.168.1.30。实现CA的迁移,需要使用到OCSP服务器,其安装的是Windows Server 2008 R2,IP为192.168.1.10。OCSP即联机证书校验组件,其主要作用是检测在CA迁移过程中是否存在问题,检测相关的证书是否正常,以及检测当前的CA是否工作正常。当然,这里主要谈论的是企业CA的迁移,上述服务器都需要加入到域环境,假设域名为“xxx.com”。 十三、配置OCSP服务器
这里先谈谈OCSP服务器的配置,OCSP服务是指通过证书颁发机构提供的接口,来校验证书的状态和有效性。也就是说,OCSP联机响应程序可以让客户端在复杂的网络环境中,通过访问证书吊销列表,来检测CA以及相关证书是否有效。在Windows Server 2008之前的版本中,是不存在该服务组件的。在域控上打开证书颁发机构窗口,在左侧的“证书模板”项的右键菜单上点击“管理”项,在证书模板列表中选择“OCSP响应签名”项,在其属性窗口中的“安全”面板中点击“添加”按钮,在选择用户、计算机、服务账户和组窗口中点击“对象类型”按钮,在对象类型列表中确保选中“计算机”项。之后输入OCSP服务器的名称,将其导入进来。在“安全”面板(图7)中的“组或用户名”列表中選择该机,在权限列表中赋予其注册的权限。
在证书颁发机构窗口左侧选择“证书模板”项,在其右键菜单上点击“新建→要颁发的证书模板”项,在启用证书模板窗口中选择“OCSP响应签名”项,点击确定按钮,执行模板的颁发操作。在左侧选择证书颁发机构名称,在其属性窗口中打开“扩展”面板,在“选择扩展”列表中选择“颁发机构信息访问(AIA)项”,点击“添加”按钮,在添加位置窗口(图8)中的“位置”栏中输入“http://ocspsrv.xxx.com/ocsp”,其中的“ocspsrv”是OCSP服务器的名称。点击确定按钮,在列表中选择该网址,选择“包含在颁发的证书的AIA扩展中”和“包括在联机证书状态协议(OCSP)扩展中”项,点击应用按钮,会自动重启Active Directory证书服务。
准备好以上条件后,在OCSP服务器上打开CMD窗口,执行“gpupdate/force”命令,来刷新组策略,使上述证书模板生效。打开服务器管理器,在左侧的“角色”项的右键菜单上点击“添加角色”项,在向导界面中选择“Active Directory证书服务”项,点击下一步按钮,在角色服务列表中只选择“联机响应程序”项,点击安装按钮,安装该服务组件。打开联机响应程序控制台,在左侧选择“吊销配置”项,在其右键菜单上点击“添加吊销配置”项,在向导界面(图9)中输入其名称(例如“dxpz”),点击下一步按钮,选择“选择现有企业CA的证书”项,在下一步窗口中选择“浏览Active Directory中发布的CA证书”项,点击浏览按钮,选择当前的CA。点击下一步按钮,在“证书模板”列表中显示“OCSPResponseSigning”,表示其已经获取预设的证书。点击完成按钮,退出该向导界面。
十四、测试OCSP服务状态
为了测试OCSP服务运行是否正常。可以在客户机上登录到域环境,运行“mmc”程序,在控制台中点击菜单“文件→添加/删除管理单元”项,在列表中选择“证书”项,点击添加按钮,将其导入进来。在控制台左侧选择“证书→个人”项,在其右键菜单上点击“所有任务→申请新证书”项,在向导界面中选择“Active Directory注册策略”项,根据需要注册一张证书。在该证书的右键菜单上点击“所有任务→导出”项,在向导界面中选择“不要导出私钥”项,点击一步按钮,设置导出文件路径,得到后缀为“.cer”的文件,假设其名为“zhengshu.cer”。
在CMD窗口中执行“certutil.exe-urle:\zhengshu.cer”命令,在URL检索工具窗口(图10)的“检索”栏中选择“OCSP(来自AIA)”项,点击“检索”按钮,显示预设的OCSP服务位置信息。稍后会显示“已验证”项,说明该证书已经验证通过,处于正常状态。在“caerver”主机上打开证书颁发机构窗口,在左侧选
择“颁发的证书”项,在右侧可以看到该证书信息。在该证书的右键菜单上点击“所有任务→吊销证书”项,将其吊销,在左侧选择“吊销的证书”项,可以看到该证书处于吊销状态。
为了及时通知客户端,在“吊销的证书”项的右键菜单上点击“所有任务→发布”项,在发布CRL窗口中选择“仅增量”项,点击确定按钮,将吊销信息发布。之后在OCSP服务器上打开联机响应程序,在左侧选择“联机响应程序:服务器名”项,在其属性窗口(图11)中的“Web代理服务器”面板中将“缓存条目数”栏的值设置为0,禁用其缓存功能。不过最好的方法是在左侧选择“数组配置”项,在其右键菜单上点击“刷新吊销数据”项,执行对应的刷新操作。这样,当在客户端再次执行以上操作时,就会发现该证书的状态已经变成了“已吊销”。
十五、导出CA相关数据
谈到证书颁发机构的迁移,必然涉及到很多与之相关的数据的迁移,例如CA数据库就是必须迁移的对象,在其中包含了证书的颁发信息等。此外,诸如CA的加密私钥、和CA相关的注册表信息、CA模板信息、CA策略配置等,都是需要迁移的对象。CA迁移的原理其实很简单,例如在本例中就是将WindowsServer2008R2的CA数据导出来,之后再导入到WindowsServer2012版本的CA服务器上。因此,这对于之前的CA信息没有任何影响。为了便于存储迁移的数据,我们在CAserver1服务器上创建一个名为“CAData”的文件夹。
在该机上打开CMD窗口,执行“certutil.exe–catemplates>e:\cadata\camoban.txt”命令,将CA模板信息导出来,保存在“camoban.txt”文件中。执行“certutil.exe-getregca\csp\*>e:\cadata\certcsp.txt”命令,将CA的签名算法和CSP信息导出到“certcsp.txt”文件中。为了配合迁移操作,应该增大CRL证书吊销列表的发布周期。在证书颁发机构窗口左侧选择CA服务器名,在其属性窗口中的“CRL发布参数”面板中对“CRL发布间隔”和“发布增量”的值进行调整,默认为每隔一周发布一次吊销列表,每隔一天发布增量CRL。 这里将其设置为较长的周期,例如将其分别调整为两周和两天等。这是因为在迁移过程中,如果执行了发布CRL操作,但是在导出和迁移时没有包含发布的CRL信息,就会造成证书管理上的漏洞。因此延长了CRL发布周期,在迁移过程中可以尽可能地避免发生新的CRL发布情况,保证CRL证书吊销列表完整地进行迁移。执行“net restart certsrv”命令,重启ActiveDirectory证书服务,使更改的配置生效。
十六、备份CA数据库
当备份CA数据库操作时,必须执行“netstopcertsrv”命令,停止AD证书服务。其作用是防止在迁移期间,如果CA继续对外发布证书,就会造成迁移后丢失这些证书的问题。备份的方法有两种,可以执行“certutil.exe-backupDBe:\cadata”“certutil.exe-backupkeye:\cadata”命令,来备份CA数据库和私钥信息,也可以在证书颁发机构窗口左侧选择CA服务器名,在其右键菜单上点击“所有任务→备份CA”项,在向导界面(图12)中选择“私钥和CA证书”“证书数据库和证书数据库日志”项,点击浏览按钮,选择备份信息存储路径,例如“e:\cadata”。
点击下一步按钮输入私钥密码,来保护私钥和CA证书文件。点击完成按钮,执行备份操作。运行“regedit.exe”程序,在注册表编辑器中打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration”分支,在其右键菜单上点击“导出”项,将其导出为“capeizh.reg”文件,保存到上述路径中。如果对CA进行一些额外的配置,就会在“C:\Windows”目录下产生名为“capolicy.inf”的文件,将其复制到上述路径中。打开“E:\CAdata”文件夹,可以看到所有用于迁移CA的文件。
十七、将CA迁移到新的服务器上
登录到名为“caserver2”的CA服务器上,将上述“CAdata”文件夹复制过来。注意,在该机上安装了ActiveDirectory证书服务后,在对其进行配置时,在向导界面中的“指定私钥类型”窗口中选择“使用现有私钥”和“选择一个证书并使用其关联私钥”项,点击下一步按钮,点击导入按钮,在打开窗口中点击浏览按钮,选择“CAdata”文件夹中的名称与原CA服务器名相同,后缀为“.p12”的文件,输入私钥密码将其导入,其余的配置保持不变。因为其使用了之前的私钥,所以有关数据导入、为客户端提供服务等操作,和之前的CA服务器是一致的。
打开证书颁发机构窗口,在左侧选择CA服务器名,在其右键菜单上点击“所有任务→还原CA”项,在弹出警告窗口中点击确定按钮,暂停AD证书服务。在向导界面中选择“证书数据库和证书数据库日志”项,点击浏览按钮,选择上述“CAdata”文件夹,点击完成按钮,执行CA数据库还原操作。当然,也可以在CMD窗口中执行“certutil.exe-f-restoree:\cadate”命令,来执行还原操作。在左侧点击“证书模板”项,可以看到之前的所有证书模板信息,说明还原成功。
在“E:\CAdata”中双击后缀为“.reg”的文件,将其导入到注册表中。或者在注册表编辑器中点击菜单
“文件→导入”项,选择该文件进行导入。也可以在CMD窗口中执行“regimporte:\cadata\capeizh.reg”,将原CA服务的配置信息导入进来。当然,如果有必要的话,可以将名为“capolicy.inf”的文件复制到“C:\Windows”目录中。此刻执行“net start certsrv”命令,启动AD证书服务,就可以完成基本的证书管理服务了。例如,在域中的客户端上可以顺利申请到证书。打开证书的属性窗口,在“详细信息”面板中选择“CRL分发点”项,可以查看到全新的CA服务器信息,用户感觉和使用之前的CA服务器是一样的。
按照上述方法,对导出的证书进行校验,可以看到校验顺利通过。注意,在校验证书吊销列表时,可能会出现一些问题。其主要原因是后台的OCSP服务器依然连接到原有的CA服务器读取数据。解决的方法是在OCSP服务器上打开联机响应程序,在左侧选择“吊销配置”项,在其属性窗口中的“吊销提供程序”面板中点击“提供程序”按钮,在打开窗口中的“基本CRL”列表中显示其连接的依然是原CA服务器。点击“编辑”按钮,将其修改为新的CA服务器名即可。在左侧选择“数组配置”项,在其右键菜单上点击“刷新吊销数据”项,执行对应的刷新操作。这样,OCSP服务器就会和新的CA服務器互传数据了。
十八、迁移中的一些注意事项
为了让迁移更加彻底,需要对注册表中相关数据进行修改,在注册表编辑器中打开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration\xxx”分支,其中的“xxx”为CA服务器名,在其中查找包含源CA服务器名的项目,找到后将其修改为新的CA服务器名。例如将“caserver1”修改为“caserver2”。这样做的好处在于可以正确使用CA变量,例如“CaName”等。
因为CA和活动目录紧密集成,当运行ADSI编辑器,在左侧的“ADSI编辑器”节点的右键菜单上点击“连接到”项,在连接窗口中选择“选择一个已知命名上下文”项。在列表中选择“配置”项,点击确定按钮,在左侧选择“ADSI编辑器→配置→CN=Configuration,DC=xxx,DC=com”“CN=Services→CN=Public Key Services→CN=CDP”分支,在其下可以看到两个“CN=xxx”项目,其中的“xxx”为两个CA服务器的名称,例如“CN=caserver1”“CN=caserver2”。这表示的不是两台主机,而是两个容器。 打开ActiveDirectory站点和服务控制台(图13),点击菜单“查看→显示服务节点”项,在左侧选择“Services→Public Key Services→AIA”项,在右侧选择与CA服务同名的项目,在其属性窗口中“安全”面板中查看组或用户名列表,可以看到原CA服务器拥有访问权限,而新的CA服务器没有访问权限。点击添加按钮,将“caserver2”计算机添加进来。之后针对该服务器分配权限,使其拥有完全控制的权限。
对应的,选择“Services→Public Key Services→CDP→caserver1”项,在其属性窗口中打开“安全”面板,执行同样的操作,为“caserver2”主机配置完全访问的权限。这样,就针对新的CA服务器设置了合适的访问权限。实际上,如果原CA服务器和新CA服务器同名的话,迁移起来就顺畅得多。可以按照上述方法进行迁移,当迁移完毕后,将原CA服务角色删除即可。
但是,如果两者不同名,例如本例中的“caserver1”和“caserver2”,就存在一定的问题。例如,在原CA上发布的证书,在进行校验时,其路径依然指向原CA服务器。打开“caserver2”服务器上的迁移过来的证书,在其属性窗口中的“详细信息”面板中选择“CRL分发点”项,可以看到其URL路径指向的是与“caserver1”相关的路径。但是在“caserver2”上颁发的证书,其CRL路径指向的是其自身。也就是说,在原CA服务器上颁发的证书,虽然其证书信息迁移过来了,但是其校验路径依然未变。
因此在迁移完成后,可以将“caserver1”上的活动目录证书服务删除,但是必须保证和证书LDAP校验模式相关的配置信息依然存在。運行“adsiedit.mac”程序,在ANSI编辑器左侧选择“ADSI编辑器→配置→CN=Configuration,DC=xxx,DC=com→CN=Services→CN=Public Key Services→CN=CDP”分支,在其下必须保证存在以上两个容器。如果将“caserver1”容器删除,那么原CA服务器颁发的证书将无法进行校验。
当CA证书颁发机构迁移后,原CA服务器停止服务,在域中就只有新的CA证书服务器在运行。在该机上打开证书颁发机构窗口,在左侧选择CA服务器名,在其属性窗口中打开“扩展”面板,在“选择扩展”列表中选择“CRL分发点”项,在其下的CRL列表中的“LDAP”路径中进行分析,不难看出其对应的实际上是名为“caserver2”的容器。这样,当在发布吊销列表时,只能将相关证书信息写入到和本机同名的容器中。
根据以上分析,实际上是存在着以“caserver1”和“caserver2”命名的两个容器,但是在吊销证书列表时,只针对其中一个容器写入数据,另外的“caserver2”容器处于闲置无用状态,其不会存储证书列表更新信息。对于在“caserver2”上颁发的新的证书而言,在执行吊销操作时是没有影响的。但是对其迁移过来的原CA服务器颁发的证书进行吊销时,就会出现无法写入“caserver1”容器,而不能进行更新的问题。
当然,如果这类证书已经过期,在续约时可以使用“caserver1”容器,就不存在该问题了。因此,将吊销的证书信息同时写入到上述两个容器中,才可以化解该问题。方法是在上述“扩展”面板中点击添加按钮,在添加位置窗口中的“位置”栏中输入“ldap:///CN=<CATruncatedName><CRLNameSuffix>,CN=caserver1,CN=CDP,CN=PublicKeyServices,CN=Services,CN=<ConfigurationContainer>,CN=<CDPObjectClass>”,将发布路径明确指向原来的容器。点击确定按钮,保存该路径信息。选择该路径项,在窗口底部只选择“发布CRL到此位置”和“将增量CRL发布到此位置”项,点击应用按钮,保存配置信息。这样,当发布吊销证书列表时,就可以将相关的信息同时写入以上两个容器中。