MSMQ:签名无效 - 如何解决?
MSMQ: The signature is invalid - how to resolve?
我用这个把头撞到墙上,可以做一些灵感。
我有一个 .NET 4.5.2 应用程序,它使用 System.Messaging.MessageQueue 将 MSMQ 消息发送到本地计算机上的事务、经过身份验证的专用队列。
无论是在开发中、测试中还是在 Windows 2008 R2 服务器上,这都非常有效。我正在迁移到 Windows Server 2019,但它不再有效。它也不能在 Windows 10 桌面上运行。
当我尝试向本地(或远程)发送消息时,它无提示地失败并进入事务性死信队列,并出现错误:"The signature is invalid.".
传统的答案是:
- 未安装 MSMQ。 A: 是本地发货,所以不适用
- 证书已过期。 A: 通过MSMQ控制台更新和重新注册证书。
- 关闭身份验证。 A: 有效,但队列不安全,所以不是一个选项
- 启用弱算法支持。 A: 只适用于远程队列的跨操作系统。
在正常运行的 2008 安装中,一条测试消息正确识别了发件人,使用 SHA-512 将身份验证设置为是。
在死信队列上,发件人仍然被正确识别,但它说身份验证是没有和一个未知的散列。然而,它是生成消息的完全相同的测试代码。
我唯一的另一个奇怪之处是,在所有生产计算机中,我无法 "view" 用户证书,原因是:
User certificate cannot be obtained.
Error: There is an internal Active Directory Domain Services error.
虽然这也发生在 2008 盒子上并且工作正常。我也可以在电脑本地按"Register..."查看证书,在AD用户下的mSMQSignCertificates属性里可以看到数据
所以,我完全不知道是什么原因造成的。或者更重要的是,如何进一步推进它。
奇怪确实是问题的一个症状,解决这个问题就解决了。
我不确定为什么是 happened/happening,但似乎 Active Directory 用户对象变得无法读取 MSMQ 的证书。
深入的解决方案在这个博客上:https://www.aligrant.com/web/blog/2019-09-27_msmq_the_signature_is_invalid
总结:清除出现问题的 AD 用户的 mSMQDigests 和 mSMQSignCertificates 条目,并在使用它的每个服务器上重新注册现有证书。
我用这个把头撞到墙上,可以做一些灵感。
我有一个 .NET 4.5.2 应用程序,它使用 System.Messaging.MessageQueue 将 MSMQ 消息发送到本地计算机上的事务、经过身份验证的专用队列。
无论是在开发中、测试中还是在 Windows 2008 R2 服务器上,这都非常有效。我正在迁移到 Windows Server 2019,但它不再有效。它也不能在 Windows 10 桌面上运行。
当我尝试向本地(或远程)发送消息时,它无提示地失败并进入事务性死信队列,并出现错误:"The signature is invalid.".
传统的答案是:
- 未安装 MSMQ。 A: 是本地发货,所以不适用
- 证书已过期。 A: 通过MSMQ控制台更新和重新注册证书。
- 关闭身份验证。 A: 有效,但队列不安全,所以不是一个选项
- 启用弱算法支持。 A: 只适用于远程队列的跨操作系统。
在正常运行的 2008 安装中,一条测试消息正确识别了发件人,使用 SHA-512 将身份验证设置为是。
在死信队列上,发件人仍然被正确识别,但它说身份验证是没有和一个未知的散列。然而,它是生成消息的完全相同的测试代码。
我唯一的另一个奇怪之处是,在所有生产计算机中,我无法 "view" 用户证书,原因是:
User certificate cannot be obtained. Error: There is an internal Active Directory Domain Services error.
虽然这也发生在 2008 盒子上并且工作正常。我也可以在电脑本地按"Register..."查看证书,在AD用户下的mSMQSignCertificates属性里可以看到数据
所以,我完全不知道是什么原因造成的。或者更重要的是,如何进一步推进它。
奇怪确实是问题的一个症状,解决这个问题就解决了。
我不确定为什么是 happened/happening,但似乎 Active Directory 用户对象变得无法读取 MSMQ 的证书。
深入的解决方案在这个博客上:https://www.aligrant.com/web/blog/2019-09-27_msmq_the_signature_is_invalid
总结:清除出现问题的 AD 用户的 mSMQDigests 和 mSMQSignCertificates 条目,并在使用它的每个服务器上重新注册现有证书。