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返回的结果和日志,检查其中涉及的域名是否已变更为新的域名。


相关文章:
Exchange 2013升级以及域名绑定等若干问题
环境简介Exchange 2013服务器位于ad域中,系统为Windows server 2012 R2,其内部域名为:mail.ad.com一. Exchange客户端无法在浏览器中正常运行在域中部署Exchange服务器后,除了可以通过outlook、foxmail等邮件客户端来使用邮箱功能…...
linux安装jenkins
1. 官网寻找安装方式 进入到jenkins官网,找到对应的下载页面:https://www.jenkins.io/download/ 根据自己系统还有想要使用的版本,进行选择即可。这里我们使用CentOS作为示例,版本选择长期支持版(LTS) 2.…...
【MySQL】MySQL表的增删改查(CRUD)
✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗 目 录🔓一. CRUD🔒二. 新增(Creat…...
GCC for openEuler 数据库性能优化实践
GCC for openEuler是基于开源GCC开发的编译器工具链(包含编译器,汇编器,链接器),在openEuler社区开源发布,并通过鲲鹏社区免费提供二进制包,支持aarch64处理器架构。 关键特性 支持鲲鹏微架构芯…...
【C++】类和对象(第二篇)
文章目录1. 类的6个默认成员函数2. 构造函数2.1 构造函数的引出2.2 构造函数的特性3. 析构函数3.1 析构函数的引出3.2 析构函数的特性4. 拷贝构造函数4.1 概念4.2 特性5.赋值运算符重载5.1 运算符重载概念注意练习5.2 赋值重载实现赋值重载的特性6. const成员函数7. 取地址及co…...
MySQL数据库(数据库约束)
目录 数据库约束 数据库约束的类型: null约束 : unique约束(唯一约束): default约束(默认值约束): primary key约束(主键约束): for…...
Hive的安装与配置
一、配置Hadoop环境先看看伪分布式下的集群环境有没有错误的情况:输入命令:start-all.sh jps查看伪分布式的所有进程是否完善二、解压并配置HiveHive压缩包→ https://pan.baidu.com/s/1eOF_ICZV8rV-CEh3nX-7Xw 提取码: m31e 复制这段内容后打开百度网盘…...
关于医院医用医疗隔离电源系统应用案例的分析探讨
【摘要】:介绍该三级医院采用安科瑞医用隔离电源柜,使用落地式安装方式,从而实现将TN系统转化为IT系统,同时监测系统绝缘情况。 【关键词】医用隔离电源柜;IT系统;绝缘情况;中西医结合医院&…...
【LeetCode】剑指 Offer 07. 重建二叉树 p62 -- Java Version
题目链接:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/ 1. 题目介绍(07. 重建二叉树) 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的…...
ERROR 1114 (HY000): The table ‘tt2‘ is full
insert 操作时提示is full 问题原因 rootlocalhost 11:55:41 [t]>show table status from t like ‘tt2’ \G ; *************************** 1. row *************************** Name: tt2 Engine: MEMORY Version: 10 Row_format: Fixed Rows: 7056 Avg_row_length: 944…...
考了PMP证后工资大概是多少 ?(含pmp资料)
这个岗位的不同还有每个公司的薪资也是不一样的,具体的数字肯定是没有的,但大概的比例还是有的,据PMI调查,在获得PMP证书的人当中,在PMP认证一年后,年薪有所增长的比例为66%,上涨幅度主要集中在…...
基于国产龙芯 CPU 的气井工业网关研究与设计(一)
当前,我国气田的自动化控制程度还未完全普及,并且与世界已普及的气井站的自 动化程度也存在一定的差距。而在天然气资源相对丰富的国家,开采过程中设备研发资 金投入较大,研发周期较长,更新了一代又一代的自动化开采系…...
40/365 javascript 数据类型
1.数据类型 number类型:整数,小数都属于这一类,不具体区分 字符串:hello, "hello" 布尔类型:true,false 逻辑运算符: && || ! 比较运算符: : 类型不一致&#x…...
后勤管理系统—服务台管理功能
数图互通是一家IT类技术型软件科技公司,专业的不动产、工作场所、空间、固定资产、设备家具、设施运维及可持续性管理解决方案软件供应商。 一、后勤管理系统服务台管理功能包含: 1、专业自动化、集中管理的自助服务助理,随时响应服务请求。…...
Spring Boot 是什么,应该如何学习,有哪些优缺点
1、Spring Boot 是什么? Spring Boot是一个基于Spring框架的开源项目,它简化了Spring应用程序的开发过程,提供了一种快速、便捷、可扩展的方式来构建Spring应用程序。 Spring Boot通过自动化配置机制简化了Spring应用程序的配置过程&#x…...
使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)
这里写自定义目录标题项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参项目介绍 你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含&am…...
C++ 浅谈之 AVL 树和红黑树
C 浅谈之 AVL 树和红黑树 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 C 浅谈系列,收录在专栏 C 语言中 😜😜😜 本系列阿呆将记录一些 C 语言重要的语法特性 dz…...
【Kotlin】Kotlin函数那么多,你会几个?
目录标准函数letrunwithapplyalsotakeIftakeUnlessrepeat小结作用域函数的区别作用域函数使用场景简化函数尾递归函数(tailrec)扩展函数高阶函数内联函数(inline)inlinenoinlinecrossinline匿名函数标准函数 Kotlin标准库包含几个…...
饲养员喂养动物-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)
【案例4-2】饲养员喂养动物 记得 关注,收藏,评论哦,作者将持续更新。。。。 【案例目标】 案例描述 饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声。例如&…...
数据分析:消费者数据分析
数据分析:消费者数据分析 作者:AOAIYI 创作不易,如果觉得文章不错或能帮助到你学习,记得点赞收藏评论一下哦 文章目录数据分析:消费者数据分析一、前言二、数据准备三、数据预处理四、个体消费者分析五、用户消费行为总…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
