重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我曾经看到过很多的朋友,搭建PoC环境甚至是生产环境时,为了方便申请证书,而在AD CS的服务器上安装基于IIS的证书申请站点。
专注于为中小企业提供网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业河曲免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
虽然现在的IIS比以前的安全多了,可是在AD服务器上安装IIS。。。
首先来说说怎么获取证书吧。
世界发展到今天,不仅是Windows,苹果的Mac和iOS,安卓,都是一样要使用证书的。每个系统,其实都会使用一个安全的方式来保存证书。前文我们说过,证书就是公钥私钥,因此,苹果使用KeyChain、安卓使用KeyStore来保存公钥私钥。
如果您曾经申请过证书,就会记得,首先要生成一个证书请求(CSR),然后把这个证书请求提交给CA,CA经过批准后生成一张证书,然后可以把证书导出为CER文件,在生成证书请求的设备上完成证书申请。
其实在这背后,过程稍微复杂一点。
首先需要生成证书请求的客户端,其实是生成了一公钥私钥(还记得我们说的?公私钥是唯一的、成对匹配的),私钥会被立即保存到严格保护的Key Store存储中,通常除了生成的证书,不允许其他方式访问私钥。
紧接着,客户端将公钥,以及需要的证书信息生成一个CSR文件。请记住,私钥永远不会用于申请证书。
CA获得CSR请求后,可以按照策略,经过管理员批准或者自动允许生成一张证书。这张证书使用CA的证书进行签名,同时至少会包含我们前文说的证书三要素,CA的信息、证书有效期(往往根据证书模板确定)以及颁发给谁(即我们提交CSR时,提供的Subject申请信息,例如服务器的FQDN)。
这个证书在客户端导入后,客户端就能够使用私钥了。
让我们回到最前面的问题,申请证书是否一定要使用基于IIS的certsvc站点呢?
当然不用。
我们可以使用certreq.exe命令行来很好的解决这个问题。
这个工具可以支持命令行方式申请和导入证书。最关键的,这个工具包含在Windows操作系统中。具体命令行可以参考:
http://technet.microsoft.com/library/cc725793.aspx
还有一点特别棒的,可以把一组参数作为一个inf文件,提供给命令行。这样,对于相同要求的证书请求,就不再需要每次输入冗长的命令行参数了。
我基于该命令行,使用脚本写了一个证书生成CSR和导入CER、然后导出PFX的工具。关于这些证书文件的格式,以后再做介绍。
这个工具的第一步,可以生成一个CSR证书请求。
然后,可以把这个证书请求,发给中间管理员进行签名。
签过名的证书请求,发送给Apple用于申请APNS证书。
收到证书后,就可以导入,并且可以将公钥私钥一起导出为PFX文件。
当然,也可以直接提交CSR到自建CA进行证书的颁发。