現象
インストールし、Microsoft Exchange Server 2016 累積的な更新 6 (CU6) にアップグレードした後、Outlook Web App (OWA) または Exchange コントロール パネル (ECP)、次のエラー メッセージが表示されたらをアクセスできません。
:-(問題が発生しました。
その情報を今すぐアクセスできません。後でもう一度やり直してください。 X のクライアント Id:クライアント Id X FEServer: Exch1さらに、次のイベント情報は、メールボックス データベースをホストする Exchange サーバーのアプリケーション ログに記録されます。
ログ名: アプリケーション
MSExchange OAuth のソース: イベント ID: 2004 タスク カテゴリ: 構成 レベル: 警告 キーワード: クラシック ユーザー: N/A Mail.contoso.comのコンピューター: 説明: 拇印が現在のコンピューターにCertificateValueの証明書または証明書に秘密キーがありませんを見つけることができません。発信のトークンに署名する証明書が必要です。ログ名: アプリケーション
Source: ASP.NET 4.0.30319.0 イベント ID: 1309 タスクのカテゴリ: Web イベント レベル: 警告 キーワード: クラシック User: N/A 説明: イベント コード: 番号は 3005 イベント メッセージ: ハンドルされていない例外が発生しました。 イベント ID:イベント Id イベント シーケンス: 2 イベント発生: 1 イベント詳細コード: 0 アプリケーション情報: アプリケーション ドメイン:/LM/W3SVC/2/ルート/owa-2-DomainID 信頼レベル: フル /Owa のアプリケーションの仮想パス。 アプリケーションのパス: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ コンピューター名: Exch1 プロセス情報: プロセス ID: 21508 プロセス名: w3wp.exe アカウント名: サービスの大部分 例外情報: 例外の種類: TargetInvocationException 例外メッセージ: 呼び出しのターゲットによって例外がスローされました。 System.RuntimeMethodHandle.InvokeMethod (対象のオブジェクト、オブジェクトの引数、署名 sig、ブール型のコンス トラクター) で System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (オブジェクト obj、[パラメーターのオブジェクト、オブジェクトの引数) に System.Reflection.RuntimeMethodInfo.Invoke (オブジェクト obj、BindingFlags invokeAttr、バインダー バインダー、オブジェクトのパラメーター、カルチャの CultureInfo) で Owin.Loader.DefaultLoader です <> c__DisplayClass12 < MakeDelegate > b__b (IAppBuilder ビルダー)。 Owin.Loader.DefaultLoader です <> c__DisplayClass1 < LoadImplementation > b__0(IAppBuilder builder)。 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 app) で情報を要求します。 要求 URL: https://mail.contoso.com:URLID/owa/? バッファー オーバーランが発生 = 1 パスを要求する:/owa/ ユーザー ホスト アドレス: UserHostAddressC:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ User: 認証: False 認証の種類: スレッド アカウント名: サービスの大部分 スレッド情報: スレッド ID: 24 スレッド アカウント名: サービスの大部分 偽装: False スタック トレース: System.RuntimeMethodHandle.InvokeMethod (対象のオブジェクト、オブジェクトの引数、署名 sig、ブール型のコンス トラクター) で System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (オブジェクト obj、[パラメーターのオブジェクト、オブジェクトの引数) に System.Reflection.RuntimeMethodInfo.Invoke (オブジェクト obj、BindingFlags invokeAttr、バインダー バインダー、オブジェクトのパラメーター、カルチャの CultureInfo) で Owin.Loader.DefaultLoader です <> c__DisplayClass12 < MakeDelegate > b__b (IAppBuilder ビルダー)。 Owin.Loader.DefaultLoader です <> c__DisplayClass1 < LoadImplementation > b__0(IAppBuilder builder)。 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) で
原因
この問題は、OAuth の署名に使用する Exchange サーバー認証証明書が Exchange サーバーに存在しない場合に発生します。証明書が不足しているかどうかを確認するのには次のコマンドを実行することができます。
Get ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
証明書が存在しない場合は、次のエラー メッセージが表示されます。
サーバー Exch1 の特殊な Rpc エラーが発生した: CertificateValueの拇印を持つ証明書が見つかりませんでした。
+ CategoryInfo: 指定: (:)Get-ExchangeCertificate、InvalidOperationException + FullyQualifiedErrorId: [サーバー Exch1、要求 Id を = =RequestID] [FailureCategory = コマンドレット InvalidOperationException] CEA009BC,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeCertificate解決策
この問題を解決するには、累積的な更新 7 2016 の Exchange Server またはそれ以降のインストール2016 の Exchange Server 用の累積的な更新.
回避策
組織に複数の Exchange サーバーがある場合は、OAuth が他の Exchange サーバー上に存在することを確認するのには Exchange 管理シェルで次のコマンドを実行します。
Get ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
他の Exchange サーバー、証明書をエクスポートし、インポートする Exchange サーバーへの証明書がある場合に問題が発生します。
証明書が組織内のすべての Exchange サーバーに存在ない場合は、この手順を作成し、Exchange サーバーに新しい OAuth 証明書を展開します。
-
OAuth 新しい証明書を作成するには、次のコマンドを実行しています。
2048 の新規 ExchangeCertificateのキー長 PrivateKeyExportable $true - SubjectName"cn = Microsoft Exchange Server の認証証明書"FriendlyNamecontoso.comを Microsoft Exchange Server 認証証明書」のドメイン名""
注: 組織で使用されている SMTP ドメイン (
-
) の使用例で、ドメイン名のパラメーターの値を変更します。
-
次のコマンドを実行して、サーバーの認証に使用する作成した証明書を設定します。
セット AuthConfig NewCertificateThumbprint <ThumbprintFromStep1> NewCertificateEffectiveDate (取得日) セット AuthConfig – PublishCertificate セット AuthConfig ClearPreviousCertificate
-
Microsoft Exchange サービスのホスト サービスを再起動します。
-
か、IIS を再起動するか、OWA と ECP のアプリケーション プールをリサイクルするのには管理者特権モードでは、次のコマンドを実行するには、 IISResetコマンドを実行します。
再起動 WebAppPool MSExchangeOWAAppPool
再起動 WebAppPool MSExchangeECPAppPool注 一部の環境では、OAuth 証明書発行に時間がかかる場合があります。