前几天我遇到了一个有趣的问题。基本上,我的客户端站点的一个管理员需要为他正在上线的OCS池提供服务器身份验证证书。当然,考虑到这是OCS,证书需要一堆主题替代名称(SANs)。所以,我告诉他提交一份CSR,我会让他批准的。
然而,只有一个问题。当他提交请求时,Windows CA呕吐声明:
"被策略模块0x80094800拒绝,请求的是证书服务策略不支持的证书模板:网络服务器/ MyCustomWebServer”
呃……不用说,我觉得很奇怪。但是,如果您在错误消息中注意到,从CSR引用的模板是默认的网络服务器证书模板。所以…显然,创建硬编码OCS证书向导的人使用的是默认的WebServer证书模板。而且,由于它被硬编码为使用默认的证书模板,所以我们不能使用向导来生成请求。给你看看…在此客户机上,我们选择不使用任何默认证书模板,而是创建自定义证书模板。
这就给这个人留下了几个选择。第一,使用Web界面添加SANs字体。第二,使用certreq.exe生成san请求。不用说,这两种选项都是确保正确格式化请求的麻烦。
就在那时我有了一个想法。为什么不直接用New-ExchangeCertificatecmdlet在Exchange Server 2007的一个实验室实例上生成证书请求。这不是一个坏主意,但是像所有的EMS cmdlet一样……参数是一个意大利面怪物。幸运的是,有一个酷Web应用程序从Digicert帮助您构建命令字符串的新交换ertificate cmdlet。使用这个web应用程序、my Exchange安装和New-ExchangeCertificate cmdlet,我们完成了整个请求过程。然后,我们将证书+私钥导出到PFX文件中,并将其发送到他的OCS服务器上进行安装。
故事寓意:
- EMS cmdlet可以用于几乎任何事情(不包括修理厨房水槽)。
- 剥猫皮的方法总是不止一种。