用组策略实现用户证书的自动注册申请
在前面的博文中,我们已经在邮件加密,安全
Web
站点,
TLS
通讯,智能卡等诸多的应用领域中接触到了证书,证书在安全领域的重要性已是不言而喻。如果我们在内网搭建了
CA
服务器,用户应该如何获取证书呢?用户申请证 书一般有两种方式,如下图所示,用户既可以通过
MMC
控制台也可以利用浏览器进行证书的注册申请。但这两种证书申请方式对普通用户来说都有一定的技术难度,如果管理员代为用户申请证书,在 用户众多的环境下又不太现实。那我们在大型企业中应该如何处理用户证书的注册申请呢?
我们可以通过组策略结合
CA
服务器来完成证书的自动注册申请,利用这种方式,我们可以对整个域的用户或某个组织的用户,只要用户在开机后以域用户身份登录,就可以 自动完成证书的注册申请。怎么样,听起来是否很不错?下面我们通过一个实验来说明如何实现这个构想,拓扑如下图所示,
Florence
是域控制器和
CA
服务器,
Perth
和
Istanbul
是用户
User1
和
User2
使用的工作站。
一
创建企业根
CA
要实现用户证书的自动注册,需要有企业级
CA
的支持,因为只有这种类型的
CA
服务器才能和组策略结合使用。由于我们创建的
CA
服务器是域中的第一个证书服务器,因此服务器类型应该选择企业根。
在域控制器
Florence
上打开控制面板-添加或删除程序-添加
/
或删除
Windows
组件,如下图所示,勾选“证书服务”。
证书服务器的类型应该选择“企业根
CA
”。
为
CA
命名为
ITETCA
,有效期限
5
年。
证书数据库的存储路径取默认值即可。
如下图所示,我们成功地完成了企业根
CA
的安装,结束了实验的第一步。
二
创建证书模板
有了
CA
服务器,我们接下来要创 建一个支持用户自动注册的证书模板。具体步骤如下,我们在
Florence
上运行
MMC
,添加“证书模板”管理单元。如下图所示,右键点击“用户”模板,选择“复制模板”。
之所以选择复制出一个新模板,而不是直接在用 户模板上进行操作,是因为不希望影响其他应用程序对用户模板的使用。
如下图所示,在复制出的新模板的常规标签处,我们为此模板命名为“用户自动注册模板”,注意,模板名称一旦确定就无法更改。同时确保勾 选“在
Active Directory
中颁发证书”。
切换到证书模板的“处理请求”标签,如下图所示,确保选择“注册证书使用者时无需用户输入”。
切换到证书模板的“安全”标签,我们在此可以分配证书模板的权限,如果我们希望哪些用户可以利用这个证书模板进行证书的自动注册,一定 要为这些用户赋予“读取”,“注册”和“自动注册”的权限。在本次实验中,我们希望域内所有的用户都可以实现证书的自动注册,因此如下图所示,我们为
Domain Users
组的成员赋予了上述三项权限。
三
使用自动注册的证书模板
创建了支持自动注册的证书模板,我们就要在证书服务器中使用这种证书模板。在
Florence
的管理工具中打开“证书颁发机构”,如下图所示,右键点击证书模板,选择新建“要颁发的证书模板”。
选择我们新创建的“用户自动注册模板”。
如下图所示,现在证书服务器已经使用了支持用户自动注册的证书模板,证书服务器已经可以支持用户自动进行证书的注册申请了。
四
配置组策略
证书服务器已经可以支持用户证书的自动注册申请,接下来我们需要在组策略中进行配置,允许用户自动进行证书的注册申请。由于我们希望域 内所有用户都能实现证书的自动注册,因此我们需要在域级别进行组策略设置。在
Florence
上打开
Active Directory
用户和计算机,如下图所示,在
CATEST.COM
域的属性中切换到“组策略”标签,由于我们只是进行实验,因此选择编辑默认的域用户策略即可。
如下图所示,在组策略编辑器中定位到
用户配置-
Windows
设置-安全设置-公钥策略,编辑右侧面板中的 “自动注册设置”。确保选择“自动注册证书”,如有必要,也可选择“续订过期证书,更新未决证书并删除吊销的证书”和“更新使用证书模板的证书”。这样一 来,用户不但可以完成证书的自动注册申请,还可以完成证书的自动更新,续订以及吊销。
组策略设置完毕后,我们可以在工作站上使用
Gpupdate / Force
来加速组策略的生效。
五
用户测试
万事俱备,只欠东风,下面我们就在
Perth
上进行证书的自动注册测试,如下图所示,域用户
User1
在工作站
Perth
上登录。
User1
登录后我满怀信心地用
MMC
打开用户证书的管理单元查看成果,咦,怎么回事?如下图所示,
User1
没有申请到证书!重新启动
Perth
,让
User1
重新登录也无济于事。利用别的用户申请也是无功而返,问题出在哪里呢?
打开
Florence
上的证书颁发机构,如下图所示,在失败的申请中我们发现了问题所在,证书模板要求用户属性中提供电子邮件地址,但我们没有为用户填写电 子邮件地址,域内也没有部署
Exchange
服务器,因此用户提供的属性不能满足证书模板的注册需求,这才导致申请被拒绝。
打开用户自动注册证书模板查看,如下图所示,果然证书模板要求用户注册证书时提供电子邮件地址。
找到了问题的原因,接下来就容易处理了,我们既可以取消证书模板对邮件地址的要求,也可以如下图所示,在
User1
的属性中填写电子邮件地址。
我们填写了 User1 的邮件地址后,让 User1 再次在 Perth 上注销登录,哈哈,如下图所示,这次终于成功了, User1 完成了用户证书的自动注册申请。