C# 使用SSL对等验证与RabbitMQ的客户端通信失败
我在与客户机的RabbitMQ通信时遇到了一个奇怪的情况,下面是详细信息 RabbitMQ在Azure AKS群集上运行(容器化),通过internet公开,使用Azure流量管理器(自定义域)将流量路由到RabbitMQ,将RabbitMQ配置为支持SSL,并将对等验证设置为true,将内部(组织)服务器证书配置为RabbitMQ配置文件 RabbitMQ版本3.7.8 客户端部署在BizTalk-Azure虚拟机上,自定义适配器使用.net生成以支持BizTalk server上的连接配置,客户端证书安装在服务器上,SSL配置使用客户端证书指纹完成。 当BizTalk客户端(写在.net上)尝试与Rabbit主机建立连接时,服务器拒绝连接,并声明连接已被服务器强制关闭,我们在调试日志中看不到太多信息 我们甚至尝试捕获TCPDUMP,但并没有得到多少帮助,因为Rabbit正在容器上运行。 然而,有一个问题是,为了了解客户机和Rabbit服务器周围发生了什么,我构建了一个小型RabbitMQ客户机工具来验证SSL连接,它是在.net上编写的,并且它的工作非常有效 我需要您的帮助,以便从BizTalk server上运行的客户端中找出故障的可能原因C# 使用SSL对等验证与RabbitMQ的客户端通信失败,c#,ssl,rabbitmq,biztalk,azure-aks,C#,Ssl,Rabbitmq,Biztalk,Azure Aks,我在与客户机的RabbitMQ通信时遇到了一个奇怪的情况,下面是详细信息 RabbitMQ在Azure AKS群集上运行(容器化),通过internet公开,使用Azure流量管理器(自定义域)将流量路由到RabbitMQ,将RabbitMQ配置为支持SSL,并将对等验证设置为true,将内部(组织)服务器证书配置为RabbitMQ配置文件 RabbitMQ版本3.7.8 客户端部署在BizTalk-Azure虚拟机上,自定义适配器使用.net生成以支持BizTalk server上的连接配置,
请注意,非SSL连接工作正常。对于早期版本的.Net,除非您创建一些注册表项或在代码中明确告诉它使用TSL 1.2,否则不会默认使用TLS 1.2,请参阅 在.NET Framework 4.5及更高版本上运行的.NET Framework 4.0和.NET Framework 4.5.x应用程序可以通过启用SchUseStrongCrypto注册表项将默认协议切换到TLS 1.2、TLS 1.1和TLS 1.0。有关此注册表项的讨论,请参阅Microsoft安全咨询2960358主题的“建议操作”部分
另一种选择是通过管道组件或端点行为中的代码来实现 浏览TLS疑难解答指南(),它将帮助您找到问题。正如在前面的回答中所建议的,可能是rabbitmq只支持TLS 1.2,而在.NET中未启用TLS 1.2
此外,如果您发现在rabbitmq()中没有启用TLS 1.1,则可以在rabbitmq()中启用TLS 1.1,这很有可能。是否有BizTalk可以缓存且可以清除的内容?有支持文件吗?这能回答你的问题吗?