Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SSL对等验证与RabbitMQ的客户端通信失败_C#_Ssl_Rabbitmq_Biztalk_Azure Aks - Fatal编程技术网

C# 使用SSL对等验证与RabbitMQ的客户端通信失败

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上的连接配置,

我在与客户机的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上运行的客户端中找出故障的可能原因


请注意,非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可以缓存且可以清除的内容?有支持文件吗?这能回答你的问题吗?