症状
安装和升级到 Microsoft Exchange Server 2016年累积更新 6 (CU6) 后,您无法访问 Outlook Web App (OWA) 或 Exchange 控件面板 (ECP),并且您会收到以下错误消息:
:-(出现了错误
我们不能现在该信息。请稍后再试。 X-客户机 Id:客户机 Id X-FEServer: Exch1此外,Exchange 服务器承载的邮箱数据库的应用程序日志中记录以下事件信息:
登录名: 应用程序
来源: MSExchange OAuth 事件 ID:2004 任务类别: 配置 级别: 警告 关键词: 经典 用户: 不适用 计算机: mail.contoso.com 说明: 找不到指纹CertificateValue当前计算机中的证书没有私钥。需要证书进行签名的传出的标记。登录名: 应用程序
Source: ASP.NET 4.0.30319.0 事件 ID: 1309年 任务类别: Web 事件 级别: 警告 关键词: 经典 User: N/A 说明: 事件代码: 3005 事件消息: 未经处理的异常。 事件 ID: EventID 事件序列: 2 事件发生: 1 事件详细信息代码: 0 应用程序信息: 应用程序域: / LM/W3SVC/2/根/owa-2-DomainID 信任级别: 完全 应用程序虚拟路径: /owa 应用程序路径: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ 计算机名称: Exch1 进程信息: 进程 ID: 21508 过程名称: w3wp.exe 帐户名称: NT AUTHORITY\SYSTEM 异常信息: 异常类型: 这样 异常消息: 调用的目标会引发异常。 在 System.RuntimeMethodHandle.InvokeMethod 对象目标、 对象 [] 参数、 签名 sig (布尔值的构造函数) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (obj 对象、 对象 [] 参数对象 [] 参数) 在 System.Reflection.RuntimeMethodInfo.Invoke (对象 obj、 BindingFlags 目的、 活页夹联编程序、 对象 [] 参数的 CultureInfo 区域性) 在 < MakeDelegate > b__b (IAppBuilder 构建器) Owin.Loader.DefaultLoader.<> c__DisplayClass12。 在 < LoadImplementation > b__0(IAppBuilder builder) Owin.Loader.DefaultLoader.<> c__DisplayClass1。 在 Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize (操作"1 启动) 在 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build (操作"1 启动) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() 在 System.Threading.LazyInitializer.EnsureInitializedCore[T] (T 和目标,布尔值初始化对象 & syncLock,Func'1 valueFactory) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init (HttpApplication 上下文) 在 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext、 HttpContext 上下文、 MethodInfo [] 处理程序) 在 System.Web.HttpApplication.InitSpecial (HttpApplicationState 状态 MethodInfo [] 处理程序、 IntPtr appContext、 HttpContext 上下文) 在 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext,HttpContext 上下文) 在 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext)加密证书不存在
在 Microsoft.Exchange.Security.Authentication.Utility.GetCertificates() 在 Microsoft.Exchange.Clients.Owa2.Server.Core.notifications.SignalR.SignalRStartup.Configuration (IAppBuilder 应用程序)请求的信息: 请求的 URL: https://mail.contoso.com:URLID/owa/? bO = 1 请求路径: /owa/ 用户主机地址: UserHostAddressC:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ User: 进行身份验证: 假 身份验证类型: 线程帐户名: NT AUTHORITY\SYSTEM 线程信息: 线程 ID: 24 线程帐户名: NT AUTHORITY\SYSTEM 正在模拟: 假 堆栈跟踪: 在 System.RuntimeMethodHandle.InvokeMethod 对象目标、 对象 [] 参数、 签名 sig (布尔值的构造函数) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (obj 对象、 对象 [] 参数对象 [] 参数) 在 System.Reflection.RuntimeMethodInfo.Invoke (对象 obj、 BindingFlags 目的、 活页夹联编程序、 对象 [] 参数的 CultureInfo 区域性) 在 < MakeDelegate > b__b (IAppBuilder 构建器) Owin.Loader.DefaultLoader.<> c__DisplayClass12。 在 < LoadImplementation > b__0(IAppBuilder builder) Owin.Loader.DefaultLoader.<> c__DisplayClass1。 在 Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize (操作"1 启动) 在 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build (操作"1 启动) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() 在 System.Threading.LazyInitializer.EnsureInitializedCore[T] (T 和目标,布尔值初始化对象 & syncLock,Func'1 valueFactory) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init (HttpApplication 上下文) 在 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext、 HttpContext 上下文、 MethodInfo [] 处理程序) 在 System.Web.HttpApplication.InitSpecial (HttpApplicationState 状态 MethodInfo [] 处理程序、 IntPtr appContext、 HttpContext 上下文) 在 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext,HttpContext 上下文) 在 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext)
原因
如果 Exchange 服务器身份验证证书用于 OAuth 签名缺少从 Exchange 服务器,将出现此问题。您可以运行下面的命令以检查是否缺少证书:
获得 ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
如果该证书丢失,您将收到以下错误消息:
在 Exch1 服务器上发生的特殊的 Rpc 错误: 找不到指纹CertificateValue证书。
+ CategoryInfo: NotSpecified: (::)[Get-ExchangeCertificate] 能反转 + FullyQualifiedErrorId: [服务器 = Exch1,了申请 Id =了申请 Id] [FailureCategory = Cmdlet 能反转] CEA009BC,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeCertificate解决方案
若要解决此问题,请安装累积更新 7 Exchange Server 2016年或更高版本的 Exchange Server 2016 年累积更新.
解决方法
如果组织中有多个 Exchange 服务器,请在 Exchange 管理外壳程序以确认 OAuth 证书是否存在其他 Exchange 服务器上运行以下命令:
获得 ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
如果其他 Exchange 服务器导出证书,然后将其导入 Exchange 服务器上有证书,会出现问题。
如果证书不在组织中存在的所有 Exchange 服务器上,请按照这些步骤来创建和部署到 Exchange 服务器的新的 OAuth 证书:
-
通过运行以下命令创建一个新的 OAuth 证书:
新 ExchangeCertificate KeySize 2048-PrivateKeyExportable $true-SubjectName"cn = Microsoft Exchange Server 身份验证证书"友好的"Microsoft Exchange Server 身份验证证书"域名称"contoso.com"
注意:更改为您的组织中使用的 SMTP 域的示例 (contoso.com) 中的域名参数的值。
-
设置创建的证书以用于服务器身份验证,通过运行以下命令:
组-AuthConfig-NewCertificateThumbprint <ThumbprintFromStep1> NewCertificateEffectiveDate (获取日期) 组-AuthConfig -PublishCertificate 一组 AuthConfig ClearPreviousCertificate
-
重新启动 Microsoft Exchange 服务主机服务。
-
无论是运行IISReset命令重新启动 IIS 或运行以下命令 (在提升模式下) 回收 OWA 和 ECP 的应用程序池:
重新启动 WebAppPool MSExchangeOWAAppPool
重新启动 WebAppPool MSExchangeECPAppPool注意:在某些环境中,可能要花一小时的 OAuth 证书发布时间。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
参考资料
了解 Microsoft 用于描述软件更新的术语。