MQTT代理和客户端上的SSL/TLS证书应该相同吗?

问题描述:

我正在尝试安装带有SSL/TLS加密的Mosca服务器。MQTT代理和客户端上的SSL/TLS证书应该相同吗?

看看页面https://github.com/mcollina/mosca/wiki/TLS-SSL-Configuration页上的Mosca维基建议我们将需要一个私钥和一个经纪人证书。

虽然该页面没有提到客户端上SSL/TLS上mqtt的配置,但我发现了Mattino Collina本人在客户端的SSL/TLS配置中的一篇文章。这里http://www.hivemq.com/blog/mqtt-client-library-mqtt-js

本文指出,对于mqtts,我们还需要在客户端提供密钥和证书。它们应该与我们在设置代理时提供的密钥和证书相同,还是与我们连接到代理的每个客户不同?

这些密钥和证书是为代理验证客户端的一种方式吗?

多少个证书和密钥取决于您试图实现的内容。

如果你只是需要一个安全的连接,那么你只需要在代理上的证书和私钥。 (您可能需要向客户提供CA证书,具体取决于您是签署自己的证书还是使用由公认CA签署的证书)。

如果要通过SSL唯一标识客户端,则客户端还需要它自己的唯一证书和匹配的私钥。这些将与经纪人证书/密钥对不同,但可能由相同的CA签署。