我尝试按照mosquitto所示的指南,但是一旦我启动了蚊子
mosquitto -c mosquitto.conf
定义了端口,ca.crt的位置,server.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
答案 0 :(得分:0)
我运行openssl命令来验证CA批准了两个生成的证书,并且确实如此。
事实证明,在输入证书的详细信息时,我误解了公共名称部分的用途。在我将其设置为服务器的IP地址后,一切运行良好
答案 1 :(得分:0)
我得到了同样的错误。我试着这样订阅:
mosquitto_sub -h ip_address -p 8883 -t topic --cafile /etc/mosquitto/ca_certificates/ca.crt -d.
将ip_addres替换为您在创建证书时编写的IP地址。在你的问题中,你写了localhost。如果你用ip地址替换它就可以了。