我试着按照蚊子显示的指南去做,但是一旦我启动了蚊子
mosquitto -c mosquitto.conf
定义了端口,ca.crt的位置,服务器。crt, server.key
然后使用相同的CA文件执行类似的步骤,对客户端密钥和证书进行签名。
然后启动客户端
mosquitto_pub -p [port] -h localhost --cafile [ca.crt filepath] -t "hello" -m "hello world"
当我这样做时,没有密钥和证书,我得到
Error: Success
但是当我使用密钥和证书时
mosquitto_pub -p [port] -h localhost --cafile [ca.crt filepath] --cert [client.crt path] --key [client1.key path] t "hello" -m "hello world"
我Error:Success
在服务器端我看到以下错误
... routines:SSL3_READ_BYTES: sslv3 alert certificate unknown
... routines:SSL3_READ_BYTES: ssl handshake failure
我运行openssl命令来验证CA是否批准生成的两个证书,它确实批准了。
原来,在输入证书的详细信息时,我弄错了通用名称部分的目的。在我将其设置为服务器的ip地址之后,一切都运行良好
我得到同样的错误。我试着这样订阅:
mosquitto_sub -h ip_address -p 8883 -t topic --cafile /etc/mosquitto/ca_certificates/ca.crt -d.
将ip_address替换为您在创建证书时编写的ip地址。在你的问题中,你写的是localhost。如果你把它替换成ip地址,它将工作