На данный момент я пытаюсь понять, как сделать публикацию MQTT, используя файлы .crt и .pem для нашего приложения.
ниже приведен псевдокод того, что я пытаюсь сделать: подключиться к существующей теме через tls, опубликовать сообщение
import paho.mqtt.publish as mqtt
import paho.mqtt.client as mqttclient
topic = "Some/Topic/Goes/Here"
my_ca_cert = open("<path_to_cert>\ca.crt", 'rb').read()
my_pri_cert = open("<path_to_cert>\private.pem", 'rb').read()
my_key_cert = open("<path_to_cert>\certificate.pem", 'rb').read()
mqttc = mqttclient.Client("Python_Ex_Pub")
mqttc.tls_set(my_ca_cert, certfile=my_pri_cert, keyfile=my_key_cert)
mqttc.connect("<gateway_address>", 8883)
mqttc.publish(topic_name, "This is a test pub from Python.")
mqttc.loop(timeout=2.0, max_packets=1)
При запуске скрипта вылетает следующая ошибка:
Traceback (most recent call last):
File "mqtt_pub_test.py", line 9, in <module>
mqttc.tls_set(my_ca_cert, certfile=my_pri_cert, keyfile=my_key_cert)
File "C:\Python27\lib\site-packages\paho\mqtt\client.py", line 557, in tls_set
raise IOError(ca_certs+": "+err.strerror)
IOError: -----BEGIN CERTIFICATE-----
<cert_info_here>
-----END CERTIFICATE-----: No such file or directory
Я прочитал пример TLS на странице документа paho, но просто не понимаю, как я должен передавать файлы crt/pem в своем коде. В какой-то момент я указывал только на папку, содержащую файлы, и даже дошел до chmod 777 папки, но в этот момент мне отказывали в доступе от python во время выполнения.
Приветствуется любая помощь