OpenMQTT蚊子SSL/TLS无法与Ca.der连接,但可以与Ca.Pem连接



我有一个简单的问题,我希望有一个简单的答案!我可以使用.pem格式的证书授权将我的经纪人连接/发布/订阅。例如,命令:

mosquitto_pub --cafile CA.pem -h www.example.com -p 8883 -t test -u "usr" -p "pw" 

成功。但是,当我使用

CA.pem转换为CA.der
openssl x509 -in CA.pem -out CA.der -outform DER 

并使用CA.der作为--cafile,我有一个错误:

Unable to connect (A TLS error occurred.).

我相信转换是正确的,因为如果我使用openssl x509CA.der转换为CA2.pem,我可以成功连接。我的猜测是,我必须在mosquitto.conf文件中设置某些内容才能允许*.der或类似的内容,但找不到任何在文档中或在线任何地方解决此问题的内容。我需要使用.der格式,因为我在TI CC3200开发板上设置了MQTT客户端,并且Ti的API需要.der格式的所有证书。

如果需要

,一些其他信息

我通过certbot获得了我的域的CA,证书链看起来像这样:

depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = <www.example.com>
verify return:1

Mosquitto.conf

allow_anonymous false
password_file /etc/mosquitto/passwd
listener 1883 localhost
listener 8883
certfile /etc/letsencrypt/live/<www.example.com>/cert.pem
cafile /etc/letsencrypt/live/<www.example.com>/chain.pem
keyfile /etc/letsencrypt/live/<www.example.com>/privkey.pem

不,蚊子只支持以PEM格式提供证书,您无法使用DER文件。

无话可说,您必须在经纪人端与客户端使用相同格式的证书存储。

最新更新