由證書頒發機構 (CA) 所頒發的每一張證書都具備有效期限,默認狀況下,咱們從企業根CA申請到的證書,有效期限都是2年,好比下圖這張爲Exchange申請的證書,到了2014年10月就須要續訂安全
那麼證書的有效期須要在哪些地方進行修改呢?首先咱們來看一下證書模板,經過CA服務器上的證書頒發機構打開證書模板服務器
在申請Exchange證書時,一般用到的證書模板是【Web 服務器】證書模板,打開它的屬性ide
在默認常規選項卡中能夠看到經過此證書模板申請到的證書,有效期爲2年,可是現再不能直接修改編碼
除了證書模板,另一個重要的地方就是註冊表,從註冊表中展開到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\ContosoCA(ContosoCA是我CA頒發機構的名稱),在右側找到【ValidityPeriodUnits】,看到其值爲【2】,這個值和證書模板上的有效期關係緊密,只有當【ValidityPeriodUnits】的值改動後,證書模板有效期的改動才能生效,打個比方,我現再建立一個證書模板,將它有效期修改成100年,可是你會發現客戶端經過此模板申請到的證書有效期仍是2年,只有當【ValidityPeriodUnits】的值修改成100後,而且重啓了證書服務,證書模板上修改後的有效期纔會生效blog
現再咱們知道了證書模板和ValidityPeriodUnits值決定了證書的有效期,那麼申請一張有效期爲100年的證書,將證書模板中的有效期和註冊表中的ValidityPeriodUnits值都修改成100就能夠了嗎?固然是不行的,這裏有一個很是重要的規則,就是證書的有效期必定不能大於證書頒發機構(CA)的有效期,CA也永遠不會頒發超出本身證書有效期時間的證書。默認安裝的CA,其有效期爲5年,若是你在安裝時沒注意,能夠在安裝後經過CA根證書查看到(以下圖),也就是說,在這種狀況下,咱們只能申請到最大有效期限爲5年證書部署
那要申請一張有效期爲100年的證書該如何作呢?get
首先,在規劃部署CA的時候,就應該將有效期調整爲100年qt
部署完CA後,打開註冊表,展開到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\contoso-CQDC01-CAit
將【ValidityPeriodUnits】的值修改成【100】io
重啓AD證書服務後,註冊表的更改纔會生效
而後從CA中打開證書模板,因爲默認的【Web 服務器】模板是沒法修改的,咱們須要建立一個新模板,這裏在【Web 服務器】模板上單擊右鍵,選擇【複製模板】
選擇【Windows Server 2003 Enterprise】
在【常規】選項卡中,首先指定模板的顯示名稱以及有效期,這裏把有效期設置爲100年
而後切換到【請求處理】選項卡,勾選【容許導出私鑰】
接下來切換到【使用者名稱】選項卡,選擇證書使用者名稱的生成方式,這裏選擇【在請求中提供】
最後切換到【安全】,爲Administrator用戶分配【註冊】權限
模板建立完成後,須要將它發佈,在證書模板節點上單擊右鍵,指向【新建】,而後選擇【要頒發的證書模板】
選擇咱們剛剛建立的模板【Exchange Server】
經發布後的模板才能夠從證書Web註冊頁面中進行選擇
經過管理員帳戶進入證書Web註冊站點,在base64編碼提交頁,選擇咱們建立的【Exchange Server】證書模板
最後咱們來打開申請到的證書,看看有效期,以下圖,2012-2112,這樣一來就避免了作證書續訂