【发布时间】:2022-06-12 05:50:34
【问题描述】:
我正在尝试使用 paho-mqtt 将数据框中的数据(最初在 txt 文件中)发布到 AWS IoT Core。我的发布脚本设置如下:
# paho mqtt
import paho.mqtt.client as mqtt
clientID = "iotconsole-somenumber-0"
broker = "alphanumeric-ats.iot.us-west-1.amazonaws.com"
port = 8883
pub = mqtt.Client(clientID)
pub.tls_set("certs/AmazonRootCA1.pem", certfile = "certs/a0c94969f1e7d914d6fe54425d772e8d4611a4710d460e9f56374ea0afd4f67f_certificate.pem.crt", keyfile = "certs/a0c94969f1e7d914d6fe54425d772e8d4611a4710d460e9f56374ea0afd4f67f_private.pem.key")
pub.connect(broker, port)
pub.publish("awsiot_test", dataframe, qos = 1)
但是,当我运行此脚本时,我收到以下错误。我认为我的东西证书做错了。但不能归零。
File ~\PyProj\projfolder\code.py:9 in <module>
pub.tls_set("certs/AmazonRootCA1.pem", certfile = "certs/a0c94969f1e7d914d6fe54425d772e8d4611a4710d460e9f56374ea0afd4f67f_certificate.pem.crt", keyfile = "certs/a0c94969f1e7d914d6fe54425d772e8d4611a4710d460e9f56374ea0afd4f67f_private.pem.key")
File ~\anaconda3\lib\site-packages\paho\mqtt\client.py:796 in tls_set
context.load_cert_chain(certfile, keyfile, keyfile_password)
FileNotFoundError: [Errno 2] No such file or directory
我认为这是一个证书文件 -/_ 问题或扩展问题。但是,还没有找到解决办法。我该如何解决?谢谢!
【问题讨论】:
-
失败的代码是
context.load_cert_chain(certfile, keyfile, keyfile_password);引用的文件(证书文件/密钥文件)(名称很长!)是否存在?工作目录是否符合您的预期(调试时使用完整路径可能会有所帮助,例如/home/AV111/PyProj/projfolder/certs/a0...)。 -
@Brits,密钥文件存在,我也尝试使用完整路径。还是一样的错误。
-
请显示
ls -l certs的结果(假设 linux - 想要 certs 文件夹的内容)。您的 example 使用较短的文件名将更具可读性。
标签: amazon-web-services ssl mqtt aws-iot paho