我用RabbitMQ做了一个实验。一个实验看起来像这样。我从生产者通过代理向消费者发送一条消息,有两个用例TLS enabled
和TLS disabled
。在这两个实验中,我都用Wireshark捕获了网络数据包。
我对这两个实验的期望如下:
- TLS已禁用
我希望捕获AMQP数据包。 - TLS已启用
我希望捕获AMQPS数据包。
第一个实验成功了!在第二个实验中,我看到的是使用TLS v1.3
协议加密的数据包,而不是我预期的AMQPS
协议。看起来RabbitMQ在加密时将协议从AMQP切换到TLS。如果是这样的话,那么为什么首先要为AMQPS烦恼呢?
2条答案
按热度按时间mepcadol1#
AMQPS是AMQP over TLS。
您必须配置Wireshark以解码TLS数据-https://wiki.wireshark.org/TLS
cetgtptt2#
@Luke Bakken答案是正确的,尽管我仍然需要配置Wireshark来解密数据
让我给予更多的上下文来解释他的回答。也就是说,AMQPS是一个标签(惯例)。当我们说“AMQPS”时,我们指的是“AMQP over SSL/TLS”。所以AMPQS本身并不是一个不同的协议;它只是用SSL/TLS加密的AMQP流量。
当您为AMQP(应用程序级协议)启用TLS时,它会通过TLS进行 Package (隧道)。这就是为什么你会在Wireshark中看到加密流量的“TLS v1.3”数据包。AMQP流量在那里,但它现在在TLS数据包中加密。
说了这么多,@马拉特·姆希塔良的观察(评论)也是正确的!在Wireshark中没有专用的HTTPS协议。相反,它是HTTP over(wrapped/tunneled)SSL/TLS -实际上是TLS v1.n。