getting ssl.SSLError: [X509] no certificate or crl found (_ssl.c:4062) in python
getting ssl.SSLError: [X509] no certificate or crl found (_ssl.c:4062) in python
我正在使用 paho.mqtt 库连接 aws iot core,但我无法连接并且出现以下错误
ssl.SSLError: [X509] 未找到证书或 crl (_ssl.c:4062)
谁能帮我弄明白。
import paho.mqtt.client as paho
import os
import socket
import ssl
from time import sleep
from random import uniform
connflag = False
def on_connect(client, userdata, flags, rc): # func for making connection
global connflag
print ("Connected to AWS")
connflag = True
print("Connection returned result: " + str(rc) )
def on_message(client, userdata, msg): # Func for Sending msg
print(msg.topic+" "+str(msg.payload))
mqttc = paho.Client() # mqttc object
mqttc.on_connect = on_connect # assign on_connect func
mqttc.on_message = on_message # assign on_message func
#mqttc.on_log = on_log
#### Change following parameters ####
awshost = "endpoint" # Endpoint
awsport = 8883 # Port no.
clientId = "nodemcu" # Thing_Name
thingName = "nodemcu" # Thing_Name
caPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/public.pem.key"
# Root_CA_Certificate_Name
certPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/certificate.pem.crt"
# <Thing_Name>.cert.pem
keyPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/private.pem.key" #
<Thing_Name>.private.key
mqttc.tls_set(caPath, certfile=certPath, keyfile=keyPath, cert_reqs=ssl.CERT_REQUIRED,
tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None) # pass parameters
mqttc.connect(awshost, awsport, keepalive=60) # connect to aws server
mqttc.loop_start() # Start the loop
while 1==1:
sleep(5)
if connflag == True:
tempreading = uniform(20.0,25.0) # Generating Temperature Readings
mqttc.publish("temperature", tempreading, qos=1) # topic: temperature # Publishing
Temperature values
print("msg sent: temperature " + "%.2f" % tempreading ) # Print sent temperature msg on
console
else:
print("waiting for connection...")
谢谢
caPath肯定有误。它需要是 Amazon root ca
你可以 google.
获取最新的 Amazon root ca 解决了这个问题
我正在使用 paho.mqtt 库连接 aws iot core,但我无法连接并且出现以下错误
ssl.SSLError: [X509] 未找到证书或 crl (_ssl.c:4062)
谁能帮我弄明白。
import paho.mqtt.client as paho
import os
import socket
import ssl
from time import sleep
from random import uniform
connflag = False
def on_connect(client, userdata, flags, rc): # func for making connection
global connflag
print ("Connected to AWS")
connflag = True
print("Connection returned result: " + str(rc) )
def on_message(client, userdata, msg): # Func for Sending msg
print(msg.topic+" "+str(msg.payload))
mqttc = paho.Client() # mqttc object
mqttc.on_connect = on_connect # assign on_connect func
mqttc.on_message = on_message # assign on_message func
#mqttc.on_log = on_log
#### Change following parameters ####
awshost = "endpoint" # Endpoint
awsport = 8883 # Port no.
clientId = "nodemcu" # Thing_Name
thingName = "nodemcu" # Thing_Name
caPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/public.pem.key"
# Root_CA_Certificate_Name
certPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/certificate.pem.crt"
# <Thing_Name>.cert.pem
keyPath = "C:/Users/pc/Desktop/instagram/aws_lambda/certi/private.pem.key" #
<Thing_Name>.private.key
mqttc.tls_set(caPath, certfile=certPath, keyfile=keyPath, cert_reqs=ssl.CERT_REQUIRED,
tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None) # pass parameters
mqttc.connect(awshost, awsport, keepalive=60) # connect to aws server
mqttc.loop_start() # Start the loop
while 1==1:
sleep(5)
if connflag == True:
tempreading = uniform(20.0,25.0) # Generating Temperature Readings
mqttc.publish("temperature", tempreading, qos=1) # topic: temperature # Publishing
Temperature values
print("msg sent: temperature " + "%.2f" % tempreading ) # Print sent temperature msg on
console
else:
print("waiting for connection...")
谢谢
caPath肯定有误。它需要是 Amazon root ca 你可以 google.