由证书颁发机构 (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,这样一来就避免了作证书续订