Очереди сообщений не удалось проверить цифровую подпись сообщения, отправленного в очередь.

Microsoft.MSMQ.10.0.Rule.Alert.Event2196 (Rule)

Очереди сообщений не удалось проверить цифровую подпись сообщения, отправленного в очередь. Сообщение отклонено. Подтверждение о неполучении будет отправлено по запросу отправителя.

Knowledge Base article:

Сводка

Очереди сообщений не удалось проверить цифровую подпись сообщения, отправленного в очередь. Сообщение отклонено. Подтверждение о неполучении будет отправлено по запросу отправителя

Причины

Не удалось проверить подпись сообщения. Это может указывать на следующие проблемы.

Решения

Убедитесь, что приложение очереди сообщений использует надежную хэш-функцию и имеет действительный сертификат пользователя

Разрешите проблемы из-за ненадежной хэш-функции

По умолчанию очередь сообщений версии 4.0 не поддерживает некоторые менее надежные алгоритмы безопасности, доступные в предыдущих версиях очереди сообщений. Поддержку менее надежных алгоритмов безопасности можно включить с помощью записи реестра. Дополнительные сведения об алгоритмах безопасности, которые поддерживаются в очереди сообщений версии 4.0, см. в "PROPID_M_HASH_ALG" ( http://go.microsoft.com/fwlink/?LinkId=91702).

Очередь сообщений исторически предлагала четыре алгоритма хэширования для подписи сообщения: MD2, MD4, MD5 и SHA1. В предыдущих версиях очереди сообщений по умолчанию для большинства сообщений был установлен алгоритм MD5, а для протокола HTTP и многоадресного обмена сообщениями — алгоритм SHA1, введенный в очереди сообщений версии 3.0. Теперь по умолчанию для всех типов сообщений установлен алгоритм SHA1, поскольку алгоритмы MD2, MD4 и MD5 не рекомендуются как ненадежные. Кроме того, по умолчанию очередь сообщений версии 4.0 не будет ни принимать сообщения, подписанные с помощью ненадежных алгоритмов, ни создавать их.

В очереди сообщений версии 4.0 можно включить менее надежные алгоритмы для приложений очереди сообщений, которым они нужны, добавив раздел реестра (не значение) HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\Security\WeakHashAlgorithms. Если этот раздел реестра отсутствует (по умолчанию), то все менее надежные алгоритмы отключены. Если этот раздел реестра присутствует, то все менее надежные алгоритмы включены. Чтобы включить только определенные ненадежные алгоритмы, необходимо добавить раздел реестра и указать значения тех менее надежных алгоритмов, которые должны оставаться отключенными.

Внимание! Неправильное редактирование реестра может значительно повредить систему. Перед внесением изменений в реестр следует сделать резервную копию всех ценных данных.

Для выполнения таких процедур нужно быть членом группы "Администраторы" или обладать соответствующими делегированными полномочиями.

Чтобы сохранить отключенными определенные ненадежные алгоритмы проверки подлинности:

Если приложение службы очереди сообщений запущено на Windows 7 и выбирает менее безопасный алгоритм проверки подлинности, служба очереди сообщений переопределит этот выбор и по умолчанию будет использовать SHA1 вместо слабого алгоритма. Если в очереди сообщений версии 4.0 необходимо создать сообщения с помощью слабых алгоритмов, воспользуйтесь разделом реестра, который выключит обновление и заставит очередь сообщений версии 4.0 учитывать алгоритм, запрашиваемый кодом. Создайте значение реестра DWORD под названием WeakHashAlgUpgrade в разделе HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\security и установите для него значение 0, а затем перезапустите службу MSMQ.

Дополнительные сведения содержатся в перечисленных ниже статьях.

Решение проблемы недопустимого сертификата пользователя

Чтобы решить проблему недопустимого сертификата пользователя, выполните следующие действия.

Исправление поврежденного сообщения

Если сообщение повредилось во время передачи, может возникнуть проблемы с уровнем ниже очереди сообщений.

Дополнительно

Если эта ошибка продолжает возникать, запишите все сведения из сообщения о событии и обратитесь в службу поддержки пользователей Майкрософт. Сведения о том, как связаться со службой поддержки пользователей Майкрософт, см. в разделе "Поддержка предприятий" ( http://go.microsoft.com/fwlink/?LinkId=52267).

Дополнительные сведения см. в событии с ИД 2196 ( http://technet.microsoft.com/ru-ru/library/dd337461(WS.10).aspx)

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
CategorySecurityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Очереди сообщений не удалось проверить цифровую подпись сообщения, отправленного в очередь.
Описание события: {0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.MSMQ.10.0.Rule.Alert.Event2196" Enabled="false" Target="Microsoft.MSMQ.10.0.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>SecurityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2196</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.MSMQ.10.0.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.10.0.Rule.Alert.Event2196.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>