劉景云
證書對(duì)于保護(hù)系統(tǒng)安全是很重要的,利用證書服務(wù),可以在客戶端和服務(wù)器通訊時(shí),對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,對(duì)用戶身份進(jìn)行認(rèn)證,這樣才可以充分保證其安全性,在Windows Server中,已經(jīng)提供了完善的證書管理機(jī)制。用戶可以通過證書管理中心(certification authority,CA)機(jī)構(gòu),來申請(qǐng)和獲得數(shù)字證書。因此,對(duì)于管理員來說,充分了解和掌握CA運(yùn)行機(jī)制,對(duì)于提高網(wǎng)絡(luò)運(yùn)行效能是極為重要的。本文從配置和管理獨(dú)立企業(yè)CA,實(shí)現(xiàn)層次化的CA架構(gòu),以及對(duì)CA進(jìn)行遷移等方面,深入淺出地介紹了相關(guān)的操作方法和技巧。
一、快速部署企業(yè)CA
這里以部署企業(yè)CA為例,在域中某臺(tái)Windows Server 2012服務(wù)器上打開服務(wù)器管理器,點(diǎn)擊“安裝角色和功能”項(xiàng),在角色列表中選擇“Active Directory證書服務(wù)”項(xiàng),在下一步窗口中的“角色服務(wù)”列表中選擇“證書頒發(fā)機(jī)構(gòu)”和“證書頒發(fā)機(jī)構(gòu)Web注冊(cè)”項(xiàng)即可。點(diǎn)擊安裝按鈕,點(diǎn)擊“配置目標(biāo)服務(wù)器上的Active Directory證書服務(wù)”鏈接,在AD CS窗口中點(diǎn)擊下一步按鈕,選擇上述兩個(gè)角色服務(wù)項(xiàng),在指定CA的設(shè)置類型窗口中選擇“企業(yè)CA”項(xiàng)。之后選擇“根CA”項(xiàng),在指定私鑰類型窗口中選擇“創(chuàng)建新的私鑰”項(xiàng),這是因?yàn)槿粢勺C書并將其頒發(fā)給客戶端,CA必須具有自己的私鑰。接下來根據(jù)需要修改CA的名稱,其余選項(xiàng)采取默認(rèn)值,點(diǎn)擊配置按鈕,執(zhí)行配置操作。
二、使用證書實(shí)現(xiàn)安全訪問
當(dāng)客戶端登錄到域環(huán)境之后,運(yùn)行“mmc”程序,在控制臺(tái)中點(diǎn)擊“文件→添加/刪除管理單元”項(xiàng),在打開窗口中選擇“證書”項(xiàng),點(diǎn)擊添加按鈕。在左側(cè)選擇“證書-當(dāng)前用戶→受信任的根證書頒發(fā)機(jī)構(gòu)”項(xiàng),在右側(cè)可以看到上述企業(yè)CA名稱。使用證書,可以實(shí)現(xiàn)安全認(rèn)證和數(shù)據(jù)的加密傳輸。例如,可以用來保證用戶安全地訪問目標(biāo)網(wǎng)站。在域中某Web服務(wù)器上打開IIS管理器,在左側(cè)選擇服務(wù)器名稱,在中部的“IIS”欄中雙擊“服務(wù)器證書”項(xiàng),在彈出界面右側(cè)點(diǎn)擊“創(chuàng)建域證書”鏈接,在向?qū)Ы缑妫▓D1)中輸入證書的通用名稱(要和域名保持一致)、組織、組織單元、城市/地點(diǎn)、省/市/自治區(qū)、國(guó)家/地區(qū)等信息。
點(diǎn)擊下一步按鈕,在聯(lián)機(jī)證書頒發(fā)機(jī)構(gòu)窗口中點(diǎn)擊“選擇”按鈕,選擇上述CA證書服務(wù)器,點(diǎn)擊確定按鈕完成選擇操作,在“好記名稱”欄中為本證書指定一個(gè)易于記憶的名稱,點(diǎn)擊完成按鈕,就完成了證書的創(chuàng)建操作。該證書是由域的證書頒發(fā)機(jī)構(gòu)頒發(fā)的。當(dāng)創(chuàng)建了所需的證書后,在IIS管理器中選擇目標(biāo)站點(diǎn),在右側(cè)點(diǎn)擊“綁定”項(xiàng),在打開窗口(圖2)中點(diǎn)擊“添加”按鈕,在“類型”列表中選擇“https”項(xiàng),在“SSL證書”列表中選擇上述對(duì)應(yīng)的證書,就可以為該網(wǎng)站綁定證書。
三、部署層次化CA證書結(jié)構(gòu)
對(duì)于規(guī)模較小的企業(yè)來說,配置單一的CA服務(wù)器是可以滿足實(shí)際需要的。但是,對(duì)于大中型企業(yè)來說,部署層次化的CA基礎(chǔ)結(jié)構(gòu)很有意義。當(dāng)獨(dú)立CA服務(wù)器為從屬CA主機(jī)頒發(fā)證書之后,該獨(dú)立CA就可以離線。如果有惡意用戶試圖部署從屬CA的話,因?yàn)闆]有獨(dú)立CA的支持,那么在企業(yè)的PKI結(jié)構(gòu)中該從屬CA是無法被信任的。這樣,可以有力地保證企業(yè)PKI結(jié)構(gòu)的安全性。
例如,在企業(yè)網(wǎng)中存在一臺(tái)域控,并將其配置為企業(yè)從屬CA,將一臺(tái)獨(dú)立服務(wù)器(名稱為“Server1”)配置為獨(dú)立根CA,該服務(wù)器為企業(yè)從屬CA頒發(fā)證書并進(jìn)行驗(yàn)證。這里使用的都是Windows Server 2012 R2系統(tǒng),Server1服務(wù)器處于工作組環(huán)境,使用本地管理員賬戶進(jìn)行登錄。在服務(wù)器管理器中點(diǎn)擊“添加角色和功能”項(xiàng),在角色列表中選擇“Active Directory證書服務(wù)”項(xiàng),點(diǎn)擊下一步按鈕,在角色服務(wù)列表中選擇“證書頒發(fā)機(jī)構(gòu)”和“證書頒發(fā)機(jī)構(gòu)Web注冊(cè)”項(xiàng)。點(diǎn)擊安裝按鈕,安裝所需的組件。
四、指定CA服務(wù)類型
在向?qū)Ы缑嬷悬c(diǎn)擊“配置目標(biāo)服務(wù)器上的Active Directory證書服務(wù)”鏈接,在ADCS配置窗口中點(diǎn)擊下一步按鈕,選擇“證書頒發(fā)機(jī)構(gòu)”和“證書頒發(fā)機(jī)構(gòu)Web注冊(cè)”項(xiàng),在指定CA類型窗口(圖3)中選擇“根CA”項(xiàng),之后選擇“創(chuàng)建新的私鑰”并保持默認(rèn)加密算法,在指定CA名稱窗口中設(shè)置此CA的公用名稱(例如“ROOTCA-CA”等)。其余設(shè)置保持默認(rèn),點(diǎn)擊配置按鈕,將該機(jī)配置為獨(dú)立根CA。打開證書頒發(fā)機(jī)構(gòu)管理控制臺(tái),來配置CDP和AIA,CDP是證書吊銷列表分發(fā)點(diǎn),AIA是授權(quán)信息訪問點(diǎn)。
五、添加CRL分發(fā)點(diǎn)路徑
在左側(cè)選擇根CA名稱,在其屬性窗口中的“擴(kuò)展”面板中選擇“CRL分發(fā)點(diǎn)”項(xiàng),在列表中選擇以“http://”開頭的路徑項(xiàng)目,點(diǎn)擊“添加”按鈕,在添加位置窗口(圖4)中的“位置”欄中輸入“http://dcserver.xxx.com/certfile/”,其中的“dcserver.xxx.com”為DC的域名,“certfile”為存儲(chǔ)證書數(shù)據(jù)的文件夾。
在“變量”列表中依次選擇“
六、導(dǎo)出CA根證書
在“選擇擴(kuò)展”列表中選擇“授權(quán)信息訪問(AIA)”項(xiàng),在列表中選擇以“http://”開頭的路徑項(xiàng)目,在“位置”欄中輸入從屬CA路徑,即“http://dcserver.xxx.com/certfile/
七、讓域中主機(jī)自動(dòng)信任根證書
打開“C:\Windows\System32\certsrv\certenroll”目錄,將其中的“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件復(fù)制出來,將上述文件復(fù)制到DC域控的C盤根目錄下。以域管理員身份登錄DC,在組策略管理器左側(cè)選擇“林→域→域名→組策略對(duì)象→Default Domain Policy”項(xiàng),在其右鍵菜單上點(diǎn)擊“編輯”項(xiàng),選擇“計(jì)算機(jī)配置→Windows設(shè)置→安全設(shè)置→公鑰策略→受信任的根證書頒發(fā)機(jī)構(gòu)”項(xiàng),在其右鍵菜單上點(diǎn)擊“導(dǎo)入”項(xiàng),在向?qū)Ы缑嬷羞x擇上述“rootca.cer”文件,將其導(dǎo)入進(jìn)來。這樣,只要是加入到域中的主機(jī),會(huì)自動(dòng)信任該根CA證書。
八、部署從屬CA服務(wù)器
在CMD窗口中執(zhí)行“gpupdate/force”命令,來刷新組策略。之后在DC上部署從屬CA,在服務(wù)器管理器中點(diǎn)擊“添加角色和功能”項(xiàng),在角色列表中選擇“Active Directory證書服務(wù)”,在角色服務(wù)列表中選擇“證書頒發(fā)機(jī)構(gòu)”和“證書頒發(fā)機(jī)構(gòu)Web注冊(cè)”項(xiàng)。點(diǎn)擊安裝按鈕,安裝所需的組件。在向?qū)Ы缑嬷悬c(diǎn)擊“配置目標(biāo)服務(wù)器上的Active Directory證書服務(wù)”鏈接,在AD CS配置窗口中點(diǎn)擊下一步按鈕,選擇“證書頒發(fā)機(jī)構(gòu)”和“證書頒發(fā)機(jī)構(gòu)Web注冊(cè)”項(xiàng),后者主要用于用戶手工申請(qǐng)證書之用。
在下一步窗口中選擇“企業(yè)CA”項(xiàng),可以為加入域的計(jì)算機(jī)自動(dòng)頒發(fā)證書。在指定CA類型窗口中選擇“從屬CA”項(xiàng),點(diǎn)擊下一步按鈕,選擇“創(chuàng)建新的私鑰”項(xiàng),在從屬CA申請(qǐng)證書窗口中選擇“將證書申請(qǐng)保存到目標(biāo)計(jì)算機(jī)上的文件”項(xiàng),設(shè)置合適的文件名(例如“xxx.req”)。其余設(shè)置保持默認(rèn),點(diǎn)擊“配置”按鈕,執(zhí)行所需的配置操作。打開“C:\inetpub\wwwroot”目錄,在其中創(chuàng)建名為“certfile”的文件夾,這和上面的設(shè)置是對(duì)應(yīng)的,將上述“rootCA_ROOTCA-CA.crt”和“ROOTCA-CA.crl”文件復(fù)制到該文件夾中。這樣,客戶端才可以特定的HTTP路徑定位到證書吊銷分發(fā)點(diǎn)。
九、提交證書申請(qǐng)
打開瀏覽器,訪問上述獨(dú)立根CA證書申請(qǐng)地址,例如“http://xxx.xxx.xxx.xxx/certsrv”。其中的“xxx.xxx.xxx.xxx”為上述獨(dú)立CA的IP。在打開頁面中點(diǎn)擊“申請(qǐng)證書”鏈接,點(diǎn)擊“高級(jí)證書申請(qǐng)”,點(diǎn)擊“使用base64編碼的CMC或PCKS#10文件提交一個(gè)證書申請(qǐng),或使用base64編碼的PKCS#7文件續(xù)訂證書申請(qǐng)”鏈接,將上述證書申請(qǐng)文件的內(nèi)容粘貼進(jìn)來,點(diǎn)擊“提交”按鈕,執(zhí)行提交操作。之后登錄到上述獨(dú)立根CA主機(jī),在證書頒發(fā)機(jī)構(gòu)左側(cè)選擇“掛起的申請(qǐng)”項(xiàng),在右側(cè)可以看到上述證書申請(qǐng)項(xiàng)目。
在該項(xiàng)的右鍵菜單上點(diǎn)擊“所有任務(wù)→頒發(fā)”項(xiàng),執(zhí)行證書頒發(fā)操作。在左側(cè)選擇“頒發(fā)的證書”項(xiàng),在右側(cè)選擇頒發(fā)的證書項(xiàng)目,在其右鍵菜單上點(diǎn)擊“打開”項(xiàng),在其屬性窗口中的“詳細(xì)信息”面板中點(diǎn)擊“復(fù)制到文件”按鈕,在向?qū)Ы缑妫▓D5)中選擇“加密消息語法標(biāo)準(zhǔn)-PKCS#7證書”和“如果可能,則包含證書路徑中的所有證書”項(xiàng),這是一個(gè)包含根CA和從屬CA的證書鏈文件。之后將其導(dǎo)出為獨(dú)立的文件,例如“czs7b”。登錄到DC上,打開證書頒發(fā)機(jī)構(gòu)控制臺(tái),在左側(cè)的主機(jī)名的右鍵菜單上點(diǎn)擊“所有任務(wù)→安裝CA證書”項(xiàng),選擇上述“czs7b”文件,點(diǎn)擊打開按鈕,執(zhí)行證書安裝操作。稍后點(diǎn)擊工具欄上的啟動(dòng)按鈕,啟動(dòng)AD證書服務(wù)。
十、配置證書自動(dòng)申請(qǐng)機(jī)制
在組策略管理器中選擇“林→域→域名→組策略對(duì)象→Default Domain Policy”項(xiàng),在其右鍵菜單上點(diǎn)擊“編輯”項(xiàng),選擇“計(jì)算機(jī)配置→策略”及“Windows設(shè)置→安全設(shè)置→公鑰策略→自動(dòng)證書申請(qǐng)?jiān)O(shè)置”項(xiàng),在其右鍵菜單上點(diǎn)擊“新建→自動(dòng)證書申請(qǐng)”項(xiàng),在向?qū)Ы缑妫▓D6)中的“證書模版”列表中選擇“計(jì)算機(jī)”項(xiàng),點(diǎn)擊完成按鈕,完成所需操作。這樣,加入域的計(jì)算機(jī)就會(huì)自動(dòng)獲得證書。在CMD窗口中執(zhí)行“gpupdate/force”命令,來刷新組策略。
當(dāng)客戶機(jī)加入域后,可以自動(dòng)獲得證書,在其MMC控制臺(tái)上點(diǎn)擊菜單“文件→添加/刪除管理單元”項(xiàng),添加證書管理單元。在左側(cè)選擇“證書→個(gè)人→證書”項(xiàng),可以看到自動(dòng)獲取的證書。選擇“受信任的根證書頒發(fā)機(jī)構(gòu)→證書”項(xiàng),可以看到根CA證書。選擇“中間證書頒發(fā)機(jī)構(gòu)→證書”項(xiàng),顯示從屬CA信任根CA信息。
十一、CA證書頒發(fā)機(jī)構(gòu)的遷移策略
對(duì)于基于微軟活動(dòng)目錄架構(gòu)的網(wǎng)絡(luò)來說,證書服務(wù)是極為重要的。利用證書機(jī)制,可以充分保證網(wǎng)絡(luò)連接和通訊的安全性。隨著技術(shù)的發(fā)展,很多企業(yè)都會(huì)面臨網(wǎng)絡(luò)升級(jí)的需求。例如,將域架構(gòu)從Windows Server 2003升級(jí)到Windows Server 2008,從Windows Server 2008升級(jí)到Windows Server 2012等。在升級(jí)預(yù)控的同時(shí),也必然涉及到對(duì)CA證書頒發(fā)機(jī)構(gòu)的升級(jí)。如何才能迅速準(zhǔn)確地升級(jí)CA證書頒發(fā)機(jī)構(gòu),是管理員必須熟悉和了解的事情。
十二、準(zhǔn)備遷移所需的網(wǎng)絡(luò)環(huán)境
這里就以從Windows Server 2008 R2的CA遷移到Windows Server 2012 R2為例,來說明具體的實(shí)現(xiàn)方法。在名為“caserver1”的Windows Server 2008主機(jī)上安裝了CA證書頒發(fā)機(jī)構(gòu),其IP為192.168.1.20,遷移的目標(biāo)是一臺(tái)Windows Server 2012 R2的CA服務(wù)器,其名稱為“caserver2”,IP為192.168.1.30。實(shí)現(xiàn)CA的遷移,需要使用到OCSP服務(wù)器,其安裝的是Windows Server 2008 R2,IP為192.168.1.10。OCSP即聯(lián)機(jī)證書校驗(yàn)組件,其主要作用是檢測(cè)在CA遷移過程中是否存在問題,檢測(cè)相關(guān)的證書是否正常,以及檢測(cè)當(dāng)前的CA是否工作正常。當(dāng)然,這里主要談?wù)摰氖瞧髽I(yè)CA的遷移,上述服務(wù)器都需要加入到域環(huán)境,假設(shè)域名為“xxx.com”。
十三、配置OCSP服務(wù)器
這里先談?wù)凮CSP服務(wù)器的配置,OCSP服務(wù)是指通過證書頒發(fā)機(jī)構(gòu)提供的接口,來校驗(yàn)證書的狀態(tài)和有效性。也就是說,OCSP聯(lián)機(jī)響應(yīng)程序可以讓客戶端在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,通過訪問證書吊銷列表,來檢測(cè)CA以及相關(guān)證書是否有效。在Windows Server 2008之前的版本中,是不存在該服務(wù)組件的。在域控上打開證書頒發(fā)機(jī)構(gòu)窗口,在左側(cè)的“證書模板”項(xiàng)的右鍵菜單上點(diǎn)擊“管理”項(xiàng),在證書模板列表中選擇“OCSP響應(yīng)簽名”項(xiàng),在其屬性窗口中的“安全”面板中點(diǎn)擊“添加”按鈕,在選擇用戶、計(jì)算機(jī)、服務(wù)賬戶和組窗口中點(diǎn)擊“對(duì)象類型”按鈕,在對(duì)象類型列表中確保選中“計(jì)算機(jī)”項(xiàng)。之后輸入OCSP服務(wù)器的名稱,將其導(dǎo)入進(jìn)來。在“安全”面板(圖7)中的“組或用戶名”列表中選擇該機(jī),在權(quán)限列表中賦予其注冊(cè)的權(quán)限。
在證書頒發(fā)機(jī)構(gòu)窗口左側(cè)選擇“證書模板”項(xiàng),在其右鍵菜單上點(diǎn)擊“新建→要頒發(fā)的證書模板”項(xiàng),在啟用證書模板窗口中選擇“OCSP響應(yīng)簽名”項(xiàng),點(diǎn)擊確定按鈕,執(zhí)行模板的頒發(fā)操作。在左側(cè)選擇證書頒發(fā)機(jī)構(gòu)名稱,在其屬性窗口中打開“擴(kuò)展”面板,在“選擇擴(kuò)展”列表中選擇“頒發(fā)機(jī)構(gòu)信息訪問(AIA)項(xiàng)”,點(diǎn)擊“添加”按鈕,在添加位置窗口(圖8)中的“位置”欄中輸入“http://ocspsrv.xxx.com/ocsp”,其中的“ocspsrv”是OCSP服務(wù)器的名稱。點(diǎn)擊確定按鈕,在列表中選擇該網(wǎng)址,選擇“包含在頒發(fā)的證書的AIA擴(kuò)展中”和“包括在聯(lián)機(jī)證書狀態(tài)協(xié)議(OCSP)擴(kuò)展中”項(xiàng),點(diǎn)擊應(yīng)用按鈕,會(huì)自動(dòng)重啟Active Directory證書服務(wù)。
準(zhǔn)備好以上條件后,在OCSP服務(wù)器上打開CMD窗口,執(zhí)行“gpupdate/force”命令,來刷新組策略,使上述證書模板生效。打開服務(wù)器管理器,在左側(cè)的“角色”項(xiàng)的右鍵菜單上點(diǎn)擊“添加角色”項(xiàng),在向?qū)Ы缑嬷羞x擇“Active Directory證書服務(wù)”項(xiàng),點(diǎn)擊下一步按鈕,在角色服務(wù)列表中只選擇“聯(lián)機(jī)響應(yīng)程序”項(xiàng),點(diǎn)擊安裝按鈕,安裝該服務(wù)組件。打開聯(lián)機(jī)響應(yīng)程序控制臺(tái),在左側(cè)選擇“吊銷配置”項(xiàng),在其右鍵菜單上點(diǎn)擊“添加吊銷配置”項(xiàng),在向?qū)Ы缑妫▓D9)中輸入其名稱(例如“dxpz”),點(diǎn)擊下一步按鈕,選擇“選擇現(xiàn)有企業(yè)CA的證書”項(xiàng),在下一步窗口中選擇“瀏覽Active Directory中發(fā)布的CA證書”項(xiàng),點(diǎn)擊瀏覽按鈕,選擇當(dāng)前的CA。點(diǎn)擊下一步按鈕,在“證書模板”列表中顯示“OCSPResponseSigning”,表示其已經(jīng)獲取預(yù)設(shè)的證書。點(diǎn)擊完成按鈕,退出該向?qū)Ы缑妗?/p>
十四、測(cè)試OCSP服務(wù)狀態(tài)
為了測(cè)試OCSP服務(wù)運(yùn)行是否正常??梢栽诳蛻魴C(jī)上登錄到域環(huán)境,運(yùn)行“mmc”程序,在控制臺(tái)中點(diǎn)擊菜單“文件→添加/刪除管理單元”項(xiàng),在列表中選擇“證書”項(xiàng),點(diǎn)擊添加按鈕,將其導(dǎo)入進(jìn)來。在控制臺(tái)左側(cè)選擇“證書→個(gè)人”項(xiàng),在其右鍵菜單上點(diǎn)擊“所有任務(wù)→申請(qǐng)新證書”項(xiàng),在向?qū)Ы缑嬷羞x擇“Active Directory注冊(cè)策略”項(xiàng),根據(jù)需要注冊(cè)一張證書。在該證書的右鍵菜單上點(diǎn)擊“所有任務(wù)→導(dǎo)出”項(xiàng),在向?qū)Ы缑嬷羞x擇“不要導(dǎo)出私鑰”項(xiàng),點(diǎn)擊一步按鈕,設(shè)置導(dǎo)出文件路徑,得到后綴為“.cer”的文件,假設(shè)其名為“zhengshu.cer”。
在CMD窗口中執(zhí)行“certutil.exe-urle:\zhengshu.cer”命令,在URL檢索工具窗口(圖10)的“檢索”欄中選擇“OCSP(來自AIA)”項(xiàng),點(diǎn)擊“檢索”按鈕,顯示預(yù)設(shè)的OCSP服務(wù)位置信息。稍后會(huì)顯示“已驗(yàn)證”項(xiàng),說明該證書已經(jīng)驗(yàn)證通過,處于正常狀態(tài)。在“caerver”主機(jī)上打開證書頒發(fā)機(jī)構(gòu)窗口,在左側(cè)選
擇“頒發(fā)的證書”項(xiàng),在右側(cè)可以看到該證書信息。在該證書的右鍵菜單上點(diǎn)擊“所有任務(wù)→吊銷證書”項(xiàng),將其吊銷,在左側(cè)選擇“吊銷的證書”項(xiàng),可以看到該證書處于吊銷狀態(tài)。
為了及時(shí)通知客戶端,在“吊銷的證書”項(xiàng)的右鍵菜單上點(diǎn)擊“所有任務(wù)→發(fā)布”項(xiàng),在發(fā)布CRL窗口中選擇“僅增量”項(xiàng),點(diǎn)擊確定按鈕,將吊銷信息發(fā)布。之后在OCSP服務(wù)器上打開聯(lián)機(jī)響應(yīng)程序,在左側(cè)選擇“聯(lián)機(jī)響應(yīng)程序:服務(wù)器名”項(xiàng),在其屬性窗口(圖11)中的“Web代理服務(wù)器”面板中將“緩存條目數(shù)”欄的值設(shè)置為0,禁用其緩存功能。不過最好的方法是在左側(cè)選擇“數(shù)組配置”項(xiàng),在其右鍵菜單上點(diǎn)擊“刷新吊銷數(shù)據(jù)”項(xiàng),執(zhí)行對(duì)應(yīng)的刷新操作。這樣,當(dāng)在客戶端再次執(zhí)行以上操作時(shí),就會(huì)發(fā)現(xiàn)該證書的狀態(tài)已經(jīng)變成了“已吊銷”。
十五、導(dǎo)出CA相關(guān)數(shù)據(jù)
談到證書頒發(fā)機(jī)構(gòu)的遷移,必然涉及到很多與之相關(guān)的數(shù)據(jù)的遷移,例如CA數(shù)據(jù)庫就是必須遷移的對(duì)象,在其中包含了證書的頒發(fā)信息等。此外,諸如CA的加密私鑰、和CA相關(guān)的注冊(cè)表信息、CA模板信息、CA策略配置等,都是需要遷移的對(duì)象。CA遷移的原理其實(shí)很簡(jiǎn)單,例如在本例中就是將WindowsServer2008R2的CA數(shù)據(jù)導(dǎo)出來,之后再導(dǎo)入到WindowsServer2012版本的CA服務(wù)器上。因此,這對(duì)于之前的CA信息沒有任何影響。為了便于存儲(chǔ)遷移的數(shù)據(jù),我們?cè)贑Aserver1服務(wù)器上創(chuàng)建一個(gè)名為“CAData”的文件夾。
在該機(jī)上打開CMD窗口,執(zhí)行“certutil.exe–catemplates>e:\cadata\camoban.txt”命令,將CA模板信息導(dǎo)出來,保存在“camoban.txt”文件中。執(zhí)行“certutil.exe-getregca\csp\*>e:\cadata\certcsp.txt”命令,將CA的簽名算法和CSP信息導(dǎo)出到“certcsp.txt”文件中。為了配合遷移操作,應(yīng)該增大CRL證書吊銷列表的發(fā)布周期。在證書頒發(fā)機(jī)構(gòu)窗口左側(cè)選擇CA服務(wù)器名,在其屬性窗口中的“CRL發(fā)布參數(shù)”面板中對(duì)“CRL發(fā)布間隔”和“發(fā)布增量”的值進(jìn)行調(diào)整,默認(rèn)為每隔一周發(fā)布一次吊銷列表,每隔一天發(fā)布增量CRL。
這里將其設(shè)置為較長(zhǎng)的周期,例如將其分別調(diào)整為兩周和兩天等。這是因?yàn)樵谶w移過程中,如果執(zhí)行了發(fā)布CRL操作,但是在導(dǎo)出和遷移時(shí)沒有包含發(fā)布的CRL信息,就會(huì)造成證書管理上的漏洞。因此延長(zhǎng)了CRL發(fā)布周期,在遷移過程中可以盡可能地避免發(fā)生新的CRL發(fā)布情況,保證CRL證書吊銷列表完整地進(jìn)行遷移。執(zhí)行“net restart certsrv”命令,重啟ActiveDirectory證書服務(wù),使更改的配置生效。
十六、備份CA數(shù)據(jù)庫
當(dāng)備份CA數(shù)據(jù)庫操作時(shí),必須執(zhí)行“netstopcertsrv”命令,停止AD證書服務(wù)。其作用是防止在遷移期間,如果CA繼續(xù)對(duì)外發(fā)布證書,就會(huì)造成遷移后丟失這些證書的問題。備份的方法有兩種,可以執(zhí)行“certutil.exe-backupDBe:\cadata”“certutil.exe-backupkeye:\cadata”命令,來備份CA數(shù)據(jù)庫和私鑰信息,也可以在證書頒發(fā)機(jī)構(gòu)窗口左側(cè)選擇CA服務(wù)器名,在其右鍵菜單上點(diǎn)擊“所有任務(wù)→備份CA”項(xiàng),在向?qū)Ы缑妫▓D12)中選擇“私鑰和CA證書”“證書數(shù)據(jù)庫和證書數(shù)據(jù)庫日志”項(xiàng),點(diǎn)擊瀏覽按鈕,選擇備份信息存儲(chǔ)路徑,例如“e:\cadata”。
點(diǎn)擊下一步按鈕輸入私鑰密碼,來保護(hù)私鑰和CA證書文件。點(diǎn)擊完成按鈕,執(zhí)行備份操作。運(yùn)行“regedit.exe”程序,在注冊(cè)表編輯器中打開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration”分支,在其右鍵菜單上點(diǎn)擊“導(dǎo)出”項(xiàng),將其導(dǎo)出為“capeizh.reg”文件,保存到上述路徑中。如果對(duì)CA進(jìn)行一些額外的配置,就會(huì)在“C:\Windows”目錄下產(chǎn)生名為“capolicy.inf”的文件,將其復(fù)制到上述路徑中。打開“E:\CAdata”文件夾,可以看到所有用于遷移CA的文件。
十七、將CA遷移到新的服務(wù)器上
登錄到名為“caserver2”的CA服務(wù)器上,將上述“CAdata”文件夾復(fù)制過來。注意,在該機(jī)上安裝了ActiveDirectory證書服務(wù)后,在對(duì)其進(jìn)行配置時(shí),在向?qū)Ы缑嬷械摹爸付ㄋ借€類型”窗口中選擇“使用現(xiàn)有私鑰”和“選擇一個(gè)證書并使用其關(guān)聯(lián)私鑰”項(xiàng),點(diǎn)擊下一步按鈕,點(diǎn)擊導(dǎo)入按鈕,在打開窗口中點(diǎn)擊瀏覽按鈕,選擇“CAdata”文件夾中的名稱與原CA服務(wù)器名相同,后綴為“.p12”的文件,輸入私鑰密碼將其導(dǎo)入,其余的配置保持不變。因?yàn)槠涫褂昧酥暗乃借€,所以有關(guān)數(shù)據(jù)導(dǎo)入、為客戶端提供服務(wù)等操作,和之前的CA服務(wù)器是一致的。
打開證書頒發(fā)機(jī)構(gòu)窗口,在左側(cè)選擇CA服務(wù)器名,在其右鍵菜單上點(diǎn)擊“所有任務(wù)→還原CA”項(xiàng),在彈出警告窗口中點(diǎn)擊確定按鈕,暫停AD證書服務(wù)。在向?qū)Ы缑嬷羞x擇“證書數(shù)據(jù)庫和證書數(shù)據(jù)庫日志”項(xiàng),點(diǎn)擊瀏覽按鈕,選擇上述“CAdata”文件夾,點(diǎn)擊完成按鈕,執(zhí)行CA數(shù)據(jù)庫還原操作。當(dāng)然,也可以在CMD窗口中執(zhí)行“certutil.exe-f-restoree:\cadate”命令,來執(zhí)行還原操作。在左側(cè)點(diǎn)擊“證書模板”項(xiàng),可以看到之前的所有證書模板信息,說明還原成功。
在“E:\CAdata”中雙擊后綴為“.reg”的文件,將其導(dǎo)入到注冊(cè)表中。或者在注冊(cè)表編輯器中點(diǎn)擊菜單
“文件→導(dǎo)入”項(xiàng),選擇該文件進(jìn)行導(dǎo)入。也可以在CMD窗口中執(zhí)行“regimporte:\cadata\capeizh.reg”,將原CA服務(wù)的配置信息導(dǎo)入進(jìn)來。當(dāng)然,如果有必要的話,可以將名為“capolicy.inf”的文件復(fù)制到“C:\Windows”目錄中。此刻執(zhí)行“net start certsrv”命令,啟動(dòng)AD證書服務(wù),就可以完成基本的證書管理服務(wù)了。例如,在域中的客戶端上可以順利申請(qǐng)到證書。打開證書的屬性窗口,在“詳細(xì)信息”面板中選擇“CRL分發(fā)點(diǎn)”項(xiàng),可以查看到全新的CA服務(wù)器信息,用戶感覺和使用之前的CA服務(wù)器是一樣的。
按照上述方法,對(duì)導(dǎo)出的證書進(jìn)行校驗(yàn),可以看到校驗(yàn)順利通過。注意,在校驗(yàn)證書吊銷列表時(shí),可能會(huì)出現(xiàn)一些問題。其主要原因是后臺(tái)的OCSP服務(wù)器依然連接到原有的CA服務(wù)器讀取數(shù)據(jù)。解決的方法是在OCSP服務(wù)器上打開聯(lián)機(jī)響應(yīng)程序,在左側(cè)選擇“吊銷配置”項(xiàng),在其屬性窗口中的“吊銷提供程序”面板中點(diǎn)擊“提供程序”按鈕,在打開窗口中的“基本CRL”列表中顯示其連接的依然是原CA服務(wù)器。點(diǎn)擊“編輯”按鈕,將其修改為新的CA服務(wù)器名即可。在左側(cè)選擇“數(shù)組配置”項(xiàng),在其右鍵菜單上點(diǎn)擊“刷新吊銷數(shù)據(jù)”項(xiàng),執(zhí)行對(duì)應(yīng)的刷新操作。這樣,OCSP服務(wù)器就會(huì)和新的CA服務(wù)器互傳數(shù)據(jù)了。
十八、遷移中的一些注意事項(xiàng)
為了讓遷移更加徹底,需要對(duì)注冊(cè)表中相關(guān)數(shù)據(jù)進(jìn)行修改,在注冊(cè)表編輯器中打開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Certsvc\Configuration\xxx”分支,其中的“xxx”為CA服務(wù)器名,在其中查找包含源CA服務(wù)器名的項(xiàng)目,找到后將其修改為新的CA服務(wù)器名。例如將“caserver1”修改為“caserver2”。這樣做的好處在于可以正確使用CA變量,例如“CaName”等。
因?yàn)镃A和活動(dòng)目錄緊密集成,當(dāng)運(yùn)行ADSI編輯器,在左側(cè)的“ADSI編輯器”節(jié)點(diǎn)的右鍵菜單上點(diǎn)擊“連接到”項(xiàng),在連接窗口中選擇“選擇一個(gè)已知命名上下文”項(xiàng)。在列表中選擇“配置”項(xiàng),點(diǎn)擊確定按鈕,在左側(cè)選擇“ADSI編輯器→配置→CN=Configuration,DC=xxx,DC=com”“CN=Services→CN=Public Key Services→CN=CDP”分支,在其下可以看到兩個(gè)“CN=xxx”項(xiàng)目,其中的“xxx”為兩個(gè)CA服務(wù)器的名稱,例如“CN=caserver1”“CN=caserver2”。這表示的不是兩臺(tái)主機(jī),而是兩個(gè)容器。
打開ActiveDirectory站點(diǎn)和服務(wù)控制臺(tái)(圖13),點(diǎn)擊菜單“查看→顯示服務(wù)節(jié)點(diǎn)”項(xiàng),在左側(cè)選擇“Services→Public Key Services→AIA”項(xiàng),在右側(cè)選擇與CA服務(wù)同名的項(xiàng)目,在其屬性窗口中“安全”面板中查看組或用戶名列表,可以看到原CA服務(wù)器擁有訪問權(quán)限,而新的CA服務(wù)器沒有訪問權(quán)限。點(diǎn)擊添加按鈕,將“caserver2”計(jì)算機(jī)添加進(jìn)來。之后針對(duì)該服務(wù)器分配權(quán)限,使其擁有完全控制的權(quán)限。
對(duì)應(yīng)的,選擇“Services→Public Key Services→CDP→caserver1”項(xiàng),在其屬性窗口中打開“安全”面板,執(zhí)行同樣的操作,為“caserver2”主機(jī)配置完全訪問的權(quán)限。這樣,就針對(duì)新的CA服務(wù)器設(shè)置了合適的訪問權(quán)限。實(shí)際上,如果原CA服務(wù)器和新CA服務(wù)器同名的話,遷移起來就順暢得多。可以按照上述方法進(jìn)行遷移,當(dāng)遷移完畢后,將原CA服務(wù)角色刪除即可。
但是,如果兩者不同名,例如本例中的“caserver1”和“caserver2”,就存在一定的問題。例如,在原CA上發(fā)布的證書,在進(jìn)行校驗(yàn)時(shí),其路徑依然指向原CA服務(wù)器。打開“caserver2”服務(wù)器上的遷移過來的證書,在其屬性窗口中的“詳細(xì)信息”面板中選擇“CRL分發(fā)點(diǎn)”項(xiàng),可以看到其URL路徑指向的是與“caserver1”相關(guān)的路徑。但是在“caserver2”上頒發(fā)的證書,其CRL路徑指向的是其自身。也就是說,在原CA服務(wù)器上頒發(fā)的證書,雖然其證書信息遷移過來了,但是其校驗(yàn)路徑依然未變。
因此在遷移完成后,可以將“caserver1”上的活動(dòng)目錄證書服務(wù)刪除,但是必須保證和證書LDAP校驗(yàn)?zāi)J较嚓P(guān)的配置信息依然存在。運(yùn)行“adsiedit.mac”程序,在ANSI編輯器左側(cè)選擇“ADSI編輯器→配置→CN=Configuration,DC=xxx,DC=com→CN=Services→CN=Public Key Services→CN=CDP”分支,在其下必須保證存在以上兩個(gè)容器。如果將“caserver1”容器刪除,那么原CA服務(wù)器頒發(fā)的證書將無法進(jìn)行校驗(yàn)。
當(dāng)CA證書頒發(fā)機(jī)構(gòu)遷移后,原CA服務(wù)器停止服務(wù),在域中就只有新的CA證書服務(wù)器在運(yùn)行。在該機(jī)上打開證書頒發(fā)機(jī)構(gòu)窗口,在左側(cè)選擇CA服務(wù)器名,在其屬性窗口中打開“擴(kuò)展”面板,在“選擇擴(kuò)展”列表中選擇“CRL分發(fā)點(diǎn)”項(xiàng),在其下的CRL列表中的“LDAP”路徑中進(jìn)行分析,不難看出其對(duì)應(yīng)的實(shí)際上是名為“caserver2”的容器。這樣,當(dāng)在發(fā)布吊銷列表時(shí),只能將相關(guān)證書信息寫入到和本機(jī)同名的容器中。
根據(jù)以上分析,實(shí)際上是存在著以“caserver1”和“caserver2”命名的兩個(gè)容器,但是在吊銷證書列表時(shí),只針對(duì)其中一個(gè)容器寫入數(shù)據(jù),另外的“caserver2”容器處于閑置無用狀態(tài),其不會(huì)存儲(chǔ)證書列表更新信息。對(duì)于在“caserver2”上頒發(fā)的新的證書而言,在執(zhí)行吊銷操作時(shí)是沒有影響的。但是對(duì)其遷移過來的原CA服務(wù)器頒發(fā)的證書進(jìn)行吊銷時(shí),就會(huì)出現(xiàn)無法寫入“caserver1”容器,而不能進(jìn)行更新的問題。
當(dāng)然,如果這類證書已經(jīng)過期,在續(xù)約時(shí)可以使用“caserver1”容器,就不存在該問題了。因此,將吊銷的證書信息同時(shí)寫入到上述兩個(gè)容器中,才可以化解該問題。方法是在上述“擴(kuò)展”面板中點(diǎn)擊添加按鈕,在添加位置窗口中的“位置”欄中輸入“l(fā)dap:///CN=
電腦知識(shí)與技術(shù)·經(jīng)驗(yàn)技巧2019年3期