如何在MOSQUITO上提供基于SSL/TLS的通信?

如何在MOSQUITO上提供基于SSL/TLS的通信?,ssl,openssl,mosquitto,Ssl,Openssl,Mosquitto,我正在开发一个使用Mqtt协议与节点通信的应用程序。我使用Mosquitto作为Windows上的代理。我想使用MOSQUITO的SSL/TLS特性来提供安全的身份验证和消息传递机制。我创建相关证书并在mosquitto.conf文件上进行配置。但是,当我尝试从命令提示符加载mosquitcho.conf并重新启动mosquitcho服务时,该服务无法启动,并给出错误消息。我会解释我做了什么 1) 我使用OpenSSL创建了证书。我遵循了有关“”的说明。 首先,我创建了ca.crt(根ca证书)

我正在开发一个使用Mqtt协议与节点通信的应用程序。我使用Mosquitto作为Windows上的代理。我想使用MOSQUITO的SSL/TLS特性来提供安全的身份验证和消息传递机制。我创建相关证书并在mosquitto.conf文件上进行配置。但是,当我尝试从命令提示符加载mosquitcho.conf并重新启动mosquitcho服务时,该服务无法启动,并给出错误消息。我会解释我做了什么

1) 我使用OpenSSL创建了证书。我遵循了有关“”的说明。 首先,我创建了ca.crt(根ca证书);

相关证书信息如上所示。我还输入了“trialca”作为ca.crt的PEM密码。然后,我创建了server.key(我使用“trialsrv”作为密码)、server.csr和server.crt; ;

2) 我在mosquitto.conf上做了一些配置

cafile /demo/ca.crt

certfile /demo/server.crt

keyfile /server.key

require_certificate true

use_identity_as_username true
注意:我在端口1883上使用默认侦听器

3) 我从运行在PC上的mosquitto服务器上的命令提示符加载mosquitto.conf

c:\Program Files (x86)\mosquitto> mosquitto -c mosquitto.conf
然后,我从Windows上的服务重新启动了MOSQUITO服务。但是,它无法启动,并出现错误。


我做错什么了吗?我需要您的建议来解决这个问题。

如果您已经从命令行启动了一个MOSQUITO实例,那么将其作为服务启动将不起作用,因为第一个实例已经使用相同的配置运行。

我今天下午遇到了同样的问题。我通过去掉服务器密钥中的密码解决了这个问题。命令行exe不需要pw,服务启动时没有出现该错误

生成证书后,运行此操作。(首先将server.key重命名为server.key.org)


谢谢您的推荐,但问题中有些不同之处。我已经解决了,谢谢你们。事实上,删除密码可能不是一个正确的解决方案,但它让我继续前进。非常感谢:)
openssl rsa -in server.key.org -out server.key