Exchange 2013升级以及域名绑定等若干问题

环境简介

Exchange 2013服务器位于ad域中,系统为Windows server 2012 R2,其内部域名为:

mail.ad.com

一. Exchange客户端无法在浏览器中正常运行

在域中部署Exchange服务器后,除了可以通过outlook、foxmail等邮件客户端来使用邮箱功能,也可以直接通过浏览器来访问。

对于普通邮件收发,访问地址为owa:

https://mail.ad.com/owa

对于邮箱后台管理,访问地址为ecp:

https://mail.ad.com/ecp

以我的经验,曾经部署过几次Exchange服务器,都遇到同样的问题。那就是Exchange服务器刚部署完毕的时候,一切正常,但在没有变更过Exchange服务器配置的情况下,经过若干时间后,通过浏览器访问Exchange将会出现异常,表现为:

a. ecp可以通过浏览器正常访问;

b. owa无法通过浏览器正常访问,owa页面能够正常显示登录界面,但是在执行登录动作之后,浏览器一直处于loading状态,或者空白页、或者404,不同浏览器表现会有差异。

并且这一表现不是绝对的,owa在IE浏览器、以及某些版本的Firefox浏览器中运行正常,在Edge、Chrome等大多数浏览器中会出现上面描述的问题,但在极低的概率下也能正常运行。

c. outlook、foxmail等使用邮箱功能正常。

由于公司成员都是通过outlook、foxmail等邮件客户端来访问exchange,因此这一问题被我忽略。

如今,有了通过浏览器访问exchange的需求,便需要查一下究竟。在不能正常访问exchange的浏览器中,通过浏览器的开发者工具查看控制台,会看到如下报错:

GET /owa/auth/errorfe.aspxowaError=ClientError;exMsg=Sys.InvalidOperationException: You are trying to getan instance of the UserConfiguration object before it is loaded from theserver!

1. 问题原因

Exchange与大多数较新的浏览器不兼容,只能运行于IE等老旧的浏览器中。

https://cloudblue.freshdesk.com/support/solutions/articles/44001884197-exchange-2013-error-404-after-successful-login-into-owa-

2. 解决办法

安装必要的Exchange更新。

3. Exchange的内部版本号

Exchange Server 内部版本号和发行日期可在以下地址查询:

https://learn.microsoft.com/zh-cn/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019

3.1 查看Exchange版本

若要查看您正在运行的 Exchange 2013 版本的内部版本号,请在 Exchange 命令行管理程序中运行以下命令:

Get-ExchangeServer | flname,edition,admindisplayversion

例如,我直接部署的Exchange服务器,通过命令输出对比微软官方的版本列表,其版本为:

Exchange Server 2013 CU3

2013 年 11 月 25 日

15.0.775.38

15.00.0775.038

而较新的Exchange 2013版本则为:

Exchange Server 2013 CU23

2019 年 6 月 18 日

15.0.1497.2

15.00.1497.002

显然,有必要升级一下Exchange服务器了。

4. Exchange升级步骤

4.1. 下载Exchange Server 2013 CU23累计升级安装包

下载地址即在微软提供的Exchange Server内部版本号和发行日期列表中:

https://www.microsoft.com/en-us/download/details.aspx?id=58392

4.2. 运行CU23升级安装包

在Exchange服务器上直接运行CU23升级安装包,安装程序会首先检查服务器是否满足安装的先决条件,当然通常都是不满足的了,这时就根据提示一一操作以使得服务器满足升级包的安装条件,以下步骤就是通常需要做的。

a. 安装Windows Server 2012 R2 Update(KB2919355)

下载地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=42334

版本:

2919355

包含以下文件:

clearcompressionflag.exe

Windows8.1-KB2919355-x64.msu

Windows8.1-KB2932046-x64.msu

Windows8.1-KB2934018-x64.msu

Windows8.1-KB2937592-x64.msu

Windows8.1-KB2938439-x64.msu

Windows8.1-KB2959977-x64.msu

你没有看错,这些补丁包的名称的确写的是Windows8.1。

这些 KB 必须按以下顺序安装:clearcompressionflag.exe、KB2919355、KB2932046、KB2959977、KB2937592、KB2938439、KB2934018。

在安装最重要的KB2919355补丁包时,你可能会安装失败,收到提示:

该补丁包不适用于当前系统。

这是因为KB2919442 是Windows Server 2012 R2 更新的先决条件,需要先安装KB2919442,然后才能安装KB2919355。

KB2919442下载地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=42162

先安装之,再重新执行KB2919355的安装,补丁安装过程中需要多次重启。

b. 安装Microsoft .NET Framework4.7.2

下载地址:

https://support.microsoft.com/zh-cn/topic/%E9%80%82%E7%94%A8%E4%BA%8E-net-framework%E7%9A%84-microsoft-windows-4-7-2-%E8%84%B1%E6%9C%BA%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F-05a72734-2127-a15d-50cf-daf56d5faec2

c. 安装Visual C++ RedistributablePackages for Visual Studio 2013

下载地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=40784

d. 在满足安装CU23的所有先决条件后,重新运行CU23安装程序

二. Exchange更新后ECP和OWA无法正常使用

在完成Exchange升级后,重新在浏览器中访问ECP和OWA,GG~

OWA登录后一直loading的问题确实没有了,但是现在变成了HTTP 500错误,更要命的是,ECP也不能访问了,同样是HTTP 500错误。

1. 问题原因和解决办法

在Exchange升级之后,一些服务器配置可能会过时,不再正确,这就需要手动更新校正这些配置文件。Exchange已经提供了PowerShell脚本修复工具:

UpdateConfigFiles.ps1

UpdateCAS.ps1

这两个脚本位于Exchange Server的安装目录之下:

C:\Program Files\Microsoft\ExchangeServer\V15\Bin\

在Exchange服务器上,以管理员身份运行Exchange Management Shell工具,cd到Exchange Server的BIN目录,并执行修复脚本:

cd “C:\Program Files\Microsoft\ExchangeServer\V15\Bin\”

.\UpdateConfigFiles.ps1

.\UpdateCAS.ps1

然后重启Exchange服务器即可。

三. Exchange变更域名

在过去,Exchange一直使用内部域名:

mail.ad.com

来提供服务,其SSL证书也是自签名证书,需要手动信任。接下来我们的需求是将其域名改为外部经过工信部备案的域名:

mail.outer.com

并且使用匹配该域名的权威SSL证书,以使得Exchange更好地满足疫情期间居家办公的需求。

操作步骤比较多,后文将详细介绍。

1. 申请权威ssl证书

在域名对应的外网nginx服务器上,为该域名申请证书,这很容易办到。例如,我们利用acme.sh等工具,可以申请到zeroSSL等免费ssl证书。申请到的证书两个部分,即公钥证书以及私钥,对应两个文件,如:

证书:mail.outer.com.fullchain.cer

私钥:mail.outer.com.key

2. 转换证书格式

在外网申请到的证书格式为cer,仅包含公钥,私钥独立保存为单独的key文件,而Exchange和iis服务器接受的ssl证书要求将证书公钥和私钥打包为单独一个文件。这里通过openssl工具将cer证书与key文件合并为一个pfx文件,命令如下:

openssl pkcs12 -export -out C:\mail.pfx -inkey C:\mail.key -in C:\mail.cer

在导出pfx文件时需要设置一个导出密码,以为该文件提供基本的保护,后续在使用该pfx文件时,将需要提供该密码。

3. 导入证书

在获得证书的pfx文件后,接下来便是导入证书。

根据操作顺序,在导入证书的操作上,有两种方式:

a.先为exchange导入证书,再为iis服务器导入证书,在此操作顺序下,可将证书文件以smb共享文件的方式,直接在Exchange的管理后台ecp中执行导入。

b.先为iis配置证书绑定,再为exchange配置证书,在此操作顺序下,需先将证书导入服务器的证书管理单元,再供后续使用。

下文将对两种证书导入方式分别介绍。

3.1. 通过证书管理单元导入证书

Exchange依靠iis来提供web服务,iis服务器控制界面无法直接为iis服务器导入证书,因为iis服务器控制界面只提供了在本机选择证书的功能。因此,我们首先需要在iis所在服务器的证书控制单元上导入证书,具体即是在iis所在服务器上执行以下操作。

注意:在证书控制单元也可以直接导入cer证书,但是由于cer证书不包含私钥,因此无法提供给iis使用。

a. 打开Windows服务器控制台

开始 > 运行 > 输入mmc,打开Windows服务器控制台(MMC,MicrosoftManagement Console)。

b. 在控制台添加证书管理单元

如果控制台中不包含证书管理单元,则在控制台的顶部菜单栏,选择文件 > 添加/删除管理单元,为本地计算机添加证书管理单元。

在证书管理单元对话框,选择计算机账户,单击下一步。

在选择计算机对话框,选择本地计算机(运行此控制台的计算机),单击完成。

在添加或删除管理单元对话框,单击确定。

c. 在证书管理单元中导入证书

在控制台左侧导航栏,展开控制台根节点 > 证书(本地计算机) > 个人 > 证书,然后打开右键菜单,选择所有任务 > 导入。

使用证书导入向导:单击下一步。

要导入的文件对话框:单击浏览,选择pfx格式的证书文件,单击下一步。注意,在打开文件时,可能需要将文件过滤类型设置为所有文件(*),然后再选择pfx证书文件。

私钥保护:输入我们在使用openssl转换cer文件为pfx文件时提供的导出密码。

证书存储:选中根据证书类型,自动选择证书存储,单击下一步。

正在完成证书导入向导:单击完成。

收到导入成功提示后,单击确定。

3.2. 通过Exchange ecp导入证书

a. 共享证书文件

将证书文件mail.pfx放置于域中任意共享的smb目录。

b. 在ecp中执行证书导入

以管理员身份登录Exchange ECP,选择:

服务器 > 证书 > … > 导入证书

填写证书的共享路径中

输入证书的保护密码

即可完成证书导入。

3.3.补充说明

结合后文即将介绍的绑定证书的操作来看,在通过证书管理单元导入证书,并为iis配置证书绑定后,exchange ecp可能能够自动识别到新的证书,从而在exchange ecp中,不必再执行证书导入。

同样地,如果已经在exchange ecp中执行了证书导入,并且分配给了iis服务,则证书管理单元的证书导入操作也就可以省略。

以上证书问题需要操作确认,如果以其中一种方式导入的证书,在另一种方式中没有自动识别的话,分别以两种方式执行导入即可。

4. 绑定证书

4.1. Exchange证书服务分配

完成证书导入后,可分别为Exchange服务器,以及为Exchange服务器服务的iis服务器绑定证书。

以管理员身份登录exchange ecp:

服务器 > 证书 > 选中新导入的证书

配置之,如下所示为各项邮箱服务分配此证书。

4.2. 修改Exchange虚拟目录域名

服务器 > 虚拟目录

依此选择各项服务,将各项服务绑定的域名修改为新域名。

4.3. 修改Outlook Anywhere域名

服务器 > 选择对应Exchange服务器 > Outlook Anywhere

修改Outlook Anywhere域名。

4.4. 修改Exchange AutoDiscover域名

Exchange自动发现服务用来实现域中outlook等客户端的自动化配置,但是其域名无法直接在ecp中查看、修改,其配置需借助PowerShell。

a.查看AutoDiscover域名

在Exchange Management Shell 中执行PowerShell命令Set-ClientAccessServer,查看AutoDiscover域名:

Get-ClientAccessServer| Format-List

b. 修改AutoDiscover域名

在Exchange Management Shell 中执行PowerShell命令Set-ClientAccessServer,修改AutoDiscover域名:

Set-ClientAccessServer-Identity mail.ad.com -AutoDiscoverServiceInternalUri "https:

//mail.outer.com/autodiscover/autodiscover.xml"

5. iis证书绑定

通过iis控制界面,为iis服务器上的Exchange站点绑定证书。

iis中为Exchange服务的站点有两个:

DefaultWeb Site

ExchangeBack End

分别为这两个站点的https服务绑定新的证书即可。需要补充说明的是,这两个站点已经默认包含通配符域名的https服务,分别为:

DefaultWeb Site:https://*:443

ExchangeBack End:https://*:444

新的证书绑定到这两个通配符域名即可,不要为这两个站点再绑定新的域名,否则可能造成Exchange不能正常服务。例如,如果另外为Exchange Back End绑定新域名:

https://mail.outer.com:444

则我们在使用ecp和owa时,将会遇到一些异常,例如能够正常登录,但是具体功能性响应错误等,暂时不知道原因。

6. 验证域名变更

6.1. 通过Exchange自动发现服务验证域名调整

自动发现服务能够帮助邮箱客户端识别到Exchange服务器的调整,并更新客户端的配置。

在outlook的任务栏小图标上,按住ctrl健,并右键单击之,可激活隐藏选项:

测试电子邮件自动配置

选择之打开测试窗口,执行自动发现测试,查看Exchange返回的结果和日志,检查其中涉及的域名是否已变更为新的域名。

猜你喜欢

转载自blog.csdn.net/Dancen/article/details/129079434