先日公開された「ルート証明書の更新」に関するWindows Updateを適用するとTLSによる暗号化通信が失敗することがある。当方の環境ではLync Server 2013、Exchange 2010 UM、EAP-TLSを使う無線LAN(NPSベース)で不具合が発生した。Exchange UMではボイスメールは録音されるが、メールボックスに配信されないという不具合である。その際のイベントログは次の通り。
イベントID 1423
ソース MSExchange Unified Messaging
ユニファイド メッセージング サーバーで、ヘッダー ファイル “C:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\voicemail\c644bcd4-5568-4297-aa87-7a99d3bbf57e.txt” のメッセージの処理中にエラーが発生しました。 エラーの詳細: “Microsoft.Exchange.Net.ExSmtpClient.TlsApiFailureException: TLS API のエラーが発生しました。 エラー = 0x80090301
Server stack trace: 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.SmtpSslHelper.Encrypt(Byte[] bytesToEncrypt, Int32 offset, Int32 numberOfBytesToEncrypt) 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.SmtpSslHelper.Encrypt(Byte[] bytesToEncrypt) 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpSslStream.Write(Byte[] buffer, Int32 offset, Int32 size) 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpTalk.Command(SmtpChunk[] chunks, SmtpCommandType command, Int32 expectedCode) 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpTalk.Ehlo() 場所 Microsoft.Exchange.Net.ExSmtpClient.SmtpClient.Submit(Boolean disableDelayedAck) 場所 Microsoft.Exchange.UM.UMCore.SmtpSubmissionHelper.SubmitMessage(MessageItem message, String senderAddress, String recipientAddress, OutboundConversionOptions submissionConversionOptions, InternalExchangeServer smtpServer) 場所 Microsoft.Exchange.UM.UMCore.SmtpSubmissionHelper.SubmitMessage(MessageItem message, String senderAddress, String recipientAddress, OutboundConversionOptions submissionConversionOptions, String requestId) 場所 Microsoft.Exchange.UM.UMCore.SmtpSubmitStage.InternalDoSynchronousWork() 場所 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 場所 System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
Exception rethrown at [0]: 場所 System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase) 場所 System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData) 場所 Microsoft.Exchange.UM.UMCore.SynchronousPipelineStageBase.SynchronousWorkDelegate.EndInvoke(IAsyncResult result) 場所 Microsoft.Exchange.UM.UMCore.SynchronousPipelineStageBase.EndSynchronousWork(IAsyncResult r)”
その他の関連ログ
ソース Schannel
イベントID 36885
クライアントの認証を求めるとき、このサーバーは信頼された証明機関の一覧をクライアントに送ります。クライアントはこの一覧を使って、サーバーによって信頼されているクライアント証明書を選択します。現在、このサーバーによって信頼されている証明機関が多いため、一覧が大きくなりすぎています。そのため、この一覧は切り埋められました。このコンピューターの管理者はクライアントの認証のために信頼された証明機関を確認し、信頼される必要がないものを削除する必要があります。
関連するKB2464556を参照すると、不要なルート証明書を削除しろという記載があるが現実的なアプローチではないため、ためしに以下のレジストリキーを登録することで不具合が解消された。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] “SendTrustedIssuerList”=dword:00000000
出典:
http://support.microsoft.com/kb/2464556