前两段话为费话,请节约时间的人绕行。
工作中需要用到Exchange ActiveSync证书认证的方式,问了同事们没有一个会做,公司的ActiveSync也只是用到了Basic authentication, 而且都是由国外的同事维护的。没办法只好自己来了,可是不料在国内网站上只找到一些很少的片断,不全面也不系统,对于我这样的小白来说,看了之后只会越来越糊涂。在微软的官网上倒是很全面,但是被分成了多个主题,每个功能和配置点都有很多种情况,对于自己想要做的却很难挑出针对性的内容,微软的这种帮助文档适合对其产品各模块比较熟悉的人,看了之后能自行将之串联起来。我自己配置了一下,发现坑还是挺多的,总是不成功。那怎么办呢?
还得到国外站点。在国外站点找到3篇关于Exchange证书验证配置的文章,照着配置了一遍,结果ipad就可以用证书验证收邮件了。不得不佩服国外人的敬业态度,写得详细,事无巨细,图文并茂,层次分明,值得学习。本来我是想自己写一篇的,但考虑到时间成本问题,既然大牛们已经有现成的,不如发扬拿来主义,真接贴过来,以备不时之需。为了不让搜到这篇文章的人过于鄙视,我就略做整理归纳一下了。
准备知识(不知道的可以百度):
1. 微软Exchange服务器与ActiveSync服务。
2. 微软域(Active Directory)服务。
3. 微软IIS服务。
4. 微软三种验证方式,Basic, Windows Integration, Certificate authentication. 当然还有其他验证方式如kerberos等,不在ActiveSync支持范围。
5. 数字证书架构和证书格式。
6. SSL协议使用Client端证书。
7. 微软证书服务器的搭建。
8. 移动设备ActiveSync客户端,iOS自带的有Exchange和普通邮件客户端,android也有自带的,这就足够了。
知道这些之后就可以在server端配置了。这是我总结的几个主要步骤(没有明确的先后顺序):
1. 首先要有Exchange Server服务器和IIS服务器,相信看这篇文章的人应该都有了,而且一般这种环境都会和windows域集成。
2. 安装微软证书服务器,用于为用户和Exchange server颁发证书。
3. 为Exchange Server申请和颁发证书。
4. 为Exchange Server指派证书。
5. 在AD中开启客户端证书验证方式。
6. 在Exchange Server中配置ActiveSync的验证方式为需要证书。
7. 开启IIS中ActiveSync虚拟目录的Authentication Mapping。
8. 为域用户申请和颁发证书。
下面就是我找到的三篇文章。
http://exchangeserverpro.com/configure-an-ssl-certificate-for-exchange-server-2010/
第一篇主要讲如何为Exchange Server申请证书,该证书是服务器证书,用于客户端与服务端连接时服务器端的验证,这使用的是SSL的协议,有人说不使用SSL协议不能用证书验证方式吗?SSL协议是证书的载体,证书通过SSL的报文来发送的,所以没有SSL也就传输不了证书了。在申请Exchange server证书时有一点一定要注意,就是证书的Subject字段中必须包含有你正在使用的的Server的全域名(如 CN = www.exchange.com)或者通配符域名(CN = *.exchange.com),如果Subject中没有可以在Subject Alternative Name中加入也行, 否则验证会有问题。
第二篇主要讲如何为Exchange ActiveSync服务设置使用证书的验证方式。里面除optional的步骤,其他都是必须的。注意里面的Figure 10中的clientCertificateMappingAuthentication命令可以通过第三篇中的IIS Configuration Editor来配置,效果是一样的。
第三篇中有不少细节配置是前两篇没提到的,或者是没有强调到的,比如User Principal Name必须匹配Subject Name, IIS Admin Service的重启等。
如果我写的有什么不对之处或者您在配置过程中有什么问题,请留言指出。