我正在尝试从python脚本(paho.mqtt.python)连接到mosquitto broker。我可以使用以下命令从终端连接:
mosquitto_sub -h localhost -p 8883 -v -t’owntracks /#’ - u owntracks -P …
您的python脚本正在尝试连接到看起来像TLS安全设置的内容,而没有准备客户端连接方法将这些详细信息应用于事务。请尝试以下方法:
def ssl_prep(): ssl_context = ssl.create_default_context() ssl_context.load_verify_locations(cafile=ca) ssl_context.load_cert_chain(certfile=mycert, keyfile=priv) return ssl_context ca = "PATH_TO_YOUR_CA_FILE" priv = "PATH_TO_YOUR_PEM_FILE" mycert = "PATH_TO_YOUR_CERT_FILE" topics = "YOUR_TOPICS" broker = "BROKER_URL" client = mqtt.Client() ssl_context= ssl_prep() client.tls_set_context(context=ssl_context) client.username_pw_set(username="UNAME",password="PASS") client.connect(broker, port=8883)
通过在尝试之前为连接尝试提供ssl上下文,假设您具有特定于您自己的设置的所有详细信息,则应该连接。