大家好,由于最近在做一个项目,所以有几天没有跟大家一起分享关于Exchange的内容了,今天就来给大家讲一个之前与到的故障问题及解决办法,希望能够帮助到大家今后的TroubleShooting。
首先,我先还原一下当时的一个场景。有一家公司,目前使用的是Exchange 2013的邮件系统,并且使用的是TMG2010在做邮件发布。最近该公司购买了通配符证书,想再TMG上更改通配符证书,但是无论如何更改与配置,Exchange的发布一直有问题。查阅了很多资料,发现很多达人说是TMG和通配符证书存在一定的兼容性问题,在有些应用的发布上有BUG。当然了,这个问题不是今天我们主要讨论的问题点,anyway这个问题是今后必须要解决的,到时候我也会写博客与大家一起分享。
下面就着重说说今天的主题:修改OWA验证方式及分配证书服务
当时我们为了做一些相关的测试,也通过一些KB的指导,我们准备将公司的证书,从现有的私有证书替换为通配符证书,并修改OWA的验证方式(默认:ECP的验证方式与OWA一样),希望通过“基本身份验证”的方式,直接通过弹出窗口的形式进行验证,尝试OWA和ECP的登录操作。因为目前该企业使用的是“基于表单的身份验证”,且已经制定了“登录域”,这样配置的好处就是用户在登录OWA\ECP的时候,只需要属于域账号和密码就可以直接进行身份验证,就省去了输入域名的烦恼,这个相信大家应该都知道吧,就不用多说了。
问题重现:
接下来我们就模拟问题发生的状况,首先替换公网通配符证书
选择服务,来将Exchange的各项服务分配到这个通配符证书上
根据企业现有的Exchange环境和角色,勾选服务。
注:我们这里勾选了 IIS,这个就是问题点。
然后切换到OWA的身份验证方式对话框,选择“使用一个或多个标准身份验证方法”中的“基本身份验证”
此时系统会提示叫通过 IISreset /noforce重启IIS,再进行尝试。
注:如果不想发生下面的错误,免得自己给自己找麻烦,这里千万不要关闭已经打开了的ECP!!!!
上面红色的字体已经提示了大家,不要关闭已经打开了的ECP,悲剧的是,我已经关闭了…….
为什么不能关闭ECP呢?我们 接下来看看症状:
在重启了IIS后,我首先在外网重新打开ECP界面,
Duang!!!!! 不仅自动给我跳转到了一个OWA/?BO=1的界面,还给我报错!!
然后切换到内网进行ECP尝试登陆
再次 Duang!!!! 界面可以显示,不过始终提示账号密码不正确!!
此时OWA界面也是如此,且outlook也已和Exchange Server断开了链接。
真是晴天霹雳啊 ! RollBack吧,ECP又打不开!没办法,只有想到了命令行。
首先我们来分析一下,外网和内网用户IE显示的内容不一样。
先看外网:很明显,外网的报错信息很有可能是和公网通配符证书在TMG做发布的时候出现了问题,导致直接无法访问到有效的页面(当然了,这个问题我还没解决,如果看到这篇文章的达人们能知道,也请指教,谢谢!)
再看内网:内网报错提示账号密码错误,这个问题基本上就是和IIS的验证方式上出现了问题。
那么接下来我们各个击破,尝试解决这个问题。
解决办法:
1. 首先我们必须先替换回原有证书
使用管理员权限登录到Exchange Server,并打开EMS
输入 Get-ExchangeCertificate 来查看现在Exchange服务器内所有的证书,争取找到原有的证书,并记下前面的证书指纹
如果证书过多,找不到的话,还可以使用 Get-ExchangeCertificate |FL 来进行详细查找,着重通过下图标注出的“证书名”、“分配服务”来进行区分,并记下“证书指纹”
找到原有证书后,再使用以下命令来分配服务给证书
Enable-ExchangeCertificate -Thumbprint 9E1D0173FA5F35081DFEFBF25D1409ED542XXXXX -Services POP,IMAP,SMTP,IIS
更多命令请参考 https://technet.microsoft.com/zh-CN/library/aa997231(v=exchg.150).aspx
此时,我们可以欣喜的看到,外网用户的outlook客户端已经能够成功连接上Exchange了
证书问题替换回来了,我们再来尝试解决IIS的验证方式。
此时,在外网和内网同时访问ECP,发现能够正常打开界面了,但是验证方式变成了弹出式窗口的验证方式,且输入账号密码后,依然无法正常进行验证登录
首先想在服务器的IIS验证方式上做修改,打开IIS,找到默认站点下面的OWA的“身份验证”(ECP是follow OWA的验证方式的,所以只需要修改OWA)
启用“基本身份验证”,并“编辑”默认域名,这样也可以达到不输入域名直接登录OWA\ECP的功能
这样设置之后,再次尝试,不幸的是,还是依旧弹出身份验证框,并最终失败
最后只有尝试命令行的形式来解决问题
此时,我们再看看我们原有设置的截图
通过下图我们可以看到,我们要降OWA的身份验证方式修改回“基于表单的身份验证”
接下来使用下述命令来查看OWA虚拟目录的相关设置
Get-OWAVirtualDirectory -identity "jh-hq-mail01\owa (default web site)" |FL
详细命令请参考 https://technet.microsoft.com/zh-cn/library/aa998588(v=exchg.150).aspx
找到FormsAuthentication这个属性,对应的就是“基于表单身份验证”这个项,
使用下述命令,将其值修改为True
set-OwaVirtualDirectory -Identity "jh-hq-mail01\owa (default web site)" -FormsAuthentication $true
我们再来通过Get-OWAVirtualDirectory -identity "jh-hq-mail01\owa (default web site)" |FL命令检查
发现FormsAuthentication已经被修改为了True
此时我们再重启IIS,之后再进行测试,问题得到了最终解决,能够成功登陆OWA和ECP
联系客服