Exchange Server 2016 CU6 をインストールすると、OWA または ECP にアクセスできない

適用先
Exchange Server 2016 Standard Edition Exchange Server 2016 Enterprise Edition

現象

Microsoft Exchange Server 2016 累積更新プログラム 6 (CU6) をインストールしてアップグレードすると、Outlook Web App (OWA) または Exchange コントロール パネル (ECP) にアクセスできなくなり、次のエラー メッセージが表示されます。

注

:-(問題が発生しました
今のところその情報を入手することはできません。 後でもう一度試してください。
X-ClientId: ClientID
X-FEServer: Exch1

さらに、メールボックス データベースをホストする Exchange サーバーのアプリケーション ログには、次のイベント情報が記録されます。

注

ログ名: アプリケーション
ソース: MSExchange OAuth
イベント ID: 2004
タスク カテゴリ: 構成
レベル: 警告
キーワード:クラシック
ユーザー: N/A
コンピューター: mail.contoso.com
説明:
サムプリント CertificateValue を持つ証明書が現在のコンピューターに見つからないか、証明書に秘密キーがありません。 証明書は、送信トークンに署名するために必要です。

注

  • ログ名: アプリケーション
    ソース: ASP.NET 4.0.30319.0
    イベント ID: 1309
    タスクのカテゴリ: Web イベント
    レベル: 警告
    キーワード:クラシック
    ユーザー: N/A
    説明:
    イベント コード: 3005
    イベント メッセージ: 未処理の例外が発生しました。
    イベント ID: EventID
    イベント シーケンス: 2
    イベントの発生: 1
    イベント詳細コード: 0
     
    アプリケーション情報:
        アプリケーション ドメイン: /LM/W3SVC/2/ROOT/owa-2-DomainID
        信頼レベル: 完全
        アプリケーション仮想パス: /owa
        アプリケーション パス: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\
        マシン名: Exch1
     
    プロセス情報:
        プロセス ID: 21508
        プロセス名: w3wp.exe
        アカウント名: NT AUTHORITY\SYSTEM
     
    例外情報:
        例外の種類: TargetInvocationException
        例外メッセージ: 呼び出しのターゲットによって例外がスローされました。
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       場所 Owin.Loader.DefaultLoader.<>c__DisplayClass12.<MakeDelegate>b__b(IAppBuilder ビルダー)
       場所 Owin.Loader.DefaultLoader.<>c__DisplayClass1.<LoadImplementation>b__0(IAppBuilder ビルダー)
       at Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action'1 startup)
       at Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action'1 startup)
       at Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint()
       at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func'1 valueFactory)
       at Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context)
       at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
       at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
       at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
       at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)
  • 暗号化証明書がありません
       at Microsoft.Exchange.Security.Authentication.Utility.GetCertificates()
       at Microsoft.Exchange.Clients.Owa2.Server.Core.notifications.SignalR.SignalRStartup.Configuration(IAppBuilder app)

要求情報:
    要求 URL: https:// mail.contoso.com:URLID/owa/?bO=1
    要求パス: /owa/
    ユーザー ホスト アドレス: UserHostAddressC:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\
    ユーザー:
    認証済みである: False
    認証の種類:
    スレッド アカウント名: NT AUTHORITY\SYSTEM
 
スレッド情報:
    スレッドID: 24
    スレッド アカウント名: NT AUTHORITY\SYSTEM
    偽装している: False
    スタック トレース: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   場所 Owin.Loader.DefaultLoader.<>c__DisplayClass12.<MakeDelegate>b__b(IAppBuilder ビルダー)
   場所 Owin.Loader.DefaultLoader.<>c__DisplayClass1.<LoadImplementation>b__0(IAppBuilder ビルダー)
   at Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action'1 startup)
   at Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action'1 startup)
   at Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint()
   at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func'1 valueFactory)
   at Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context)
   at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
   at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
   at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
   at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

原因

この問題は、OAuth 署名に使用される Exchange サーバー認証証明書が Exchange サーバーに存在しない場合に発生します。 次のコマンドを実行して、証明書がないかどうかチェックできます。

Get-ExchangeCertificate (Get-AuthConfig)。CurrentCertificateThumbprint

証明書が存在しない場合は、次のエラー メッセージが表示されます。

注

サーバー Exch1 で特殊な Rpc エラーが発生しています: 拇印 の CertificateValue を持つ証明書が見つかりませんでした。
+ CategoryInfo : NotSpecified: (:) [Get-ExchangeCertificate], InvalidOperationException
+ FullyQualifiedErrorId : [Server=Exch1,RequestId=RequestID] [FailureCategory=Cmdlet-InvalidOperationException] CEA009BC,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeCertificate

解決策

この問題を解決するには、Exchange Server 2016 用の累積的な更新プログラム 7 または Exchange Server 2016 用のそれ以降の累積的な更新プログラムをインストールします。

回避策

organization に複数の Exchange サーバーがある場合は、Exchange 管理シェルで次のコマンドを実行して、OAuth 証明書が他の Exchange サーバーに存在するかどうかを確認します。

Get-ExchangeCertificate (Get-AuthConfig)。CurrentCertificateThumbprint

証明書が他の Exchange サーバーに存在する場合は、 証明書をエクスポート してから、問題のある Exchange サーバーにインポート します。

証明書が organization 内のすべての Exchange サーバーに存在しない場合は、次の手順に従って新しい OAuth 証明書を作成し、Exchange サーバーに展開します。

  1. 次のコマンドを実行して、新しい OAuth 証明書を作成します。
    New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName "contoso.com"
    注釈例 (contoso.com) の DomainName パラメーターの値を、organizationで使用されている SMTP ドメインに変更します。
  2. 以下のコマンドを実行して、作成した証明書をサーバー認証に使用するように設定します。
    Set-AuthConfig -NewCertificateThumbprint <ThumbprintFromStep1> -NewCertificateEffectiveDate (Get-Date)
    Set-AuthConfig –PublishCertificate
    Set-AuthConfig -ClearPreviousCertificate
  3. Microsoft Exchange Service Host サービスを再起動します。
  4. IISReset コマンドを実行して IIS を再起動するか、次のコマンドを (管理者特権モードで) 実行して OWA および ECP APP プールをリサイクルします。
    Restart-WebAppPool MSExchangeOWAAppPool
    Restart-WebAppPool MSExchangeECPAppPool

    注釈 環境によっては、OAuth 証明書が発行されるまでに 1 時間かかる場合があります。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。