我正在尝试使用此链接中提到的Python脚本设置AWS IoT :
我无需WebSocket(使用x.509证书)就可以在AWS IoT MQTT上进行连接。
# creates the AWS IoT def createIoT(): iot = AWSIoTMQTTShadowClient('AWSHome') # update this with your own endpoint from the IOT dashboard iot.configureEndpoint('allj.iot.reg.amazonaws.com', 443) iot.configureCredentials('rootCA','private.key','certificate.crt') iot.configureConnectDisconnectTimeout(10) # 10 sec iot.configureMQTTOperationTimeout(5) # 5 sec iot.connect() return
但是,当我尝试使用WebSocket在AWS IoT MQTT上进行连接时,出现以下错误:
使用通过运行以下命令生成的证书:wget
# creates the AWS IoT def createIoT(): iot = AWSIoTMQTTShadowClient('AWSHome') # update this with your own endpoint from the IOT dashboard iot.configureEndpoint('asdasd.reg.amazonaws.com', 443) iot.configureCredentials('VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem') iot.configureConnectDisconnectTimeout(10) # 10 sec iot.configureMQTTOperationTimeout(5) # 5 sec iot.connect() return
错误:
Traceback (most recent call last): File "./awshome.py", line 60, in <module> iot = createIoT() File "./awshome.py", line 50, in createIoT iot.connect() File "/home/pi/.local/lib/python2.7/site-packages/AWSIoTPythonSDK/MQTTLib.py", line 1216, in connect return self._AWSIoTMQTTClient.connect(keepAliveIntervalSecond) File "/home/pi/.local/lib/python2.7/site-packages/AWSIoTPythonSDK/MQTTLib.py", line 485, in connect return self._mqtt_core.connect(keepAliveIntervalSecond) File "/home/pi/.local/lib/python2.7/site-packages/AWSIoTPythonSDK/core/protocol/mqtt_core.py", line 192, in connect self.connect_async(keep_alive_sec, self._create_blocking_ack_callback(event)) File "/home/pi/.local/lib/python2.7/site-packages/AWSIoTPythonSDK/core/protocol/mqtt_core.py", line 219, in connect_async raise e ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)