2016-08-23 3 views
3

내 인증 기관을 사용하여 내 중개인에게 내 python paho mqtt 클라이언트를 연결하려고합니다. 필요한 파일을 생성하고이를 사용하도록 RabbitMQ 브로커를 구성했습니다. 내 아이디어는 클라이언트가 서버를 인증하지만 클라이언트 자체는 인증 될 필요가 없다는 것입니다.python paho mqtt 클라이언트 연결을 통해 ssl/tls 오류가 발생했습니다.

  • ca.cert.pem
  • cert.pem
  • key.pem

은 내가 또한 제대로 작동 스칼라 PAHO의 MQTT 클라이언트를 가지고 있기 때문에 이것들이 제대로 작동합니다 알고있다.

현재 내 Mac의 터미널에서 직접 파일을 실행하고 있습니다. 나는 파이썬 3.5.2에서 만든 virtuanenv을 이용하고 있고 내가

ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645) 

나는 또한 tls_versionTLSv1_1에 변경 시도 다음과 같은 오류를받은 파일을 실행하면 내가 파일 subscribe.py

import paho.mqtt.client as paho 
import ssl 

def on_message(clnt, userdata, msg): 
    print(msg.topic+" "+str(msg.payload)) 

def on_connect(client, userdata, rc): 
     print("Connected with result code "+str(rc)) 
     mqttc.subscribe("foo") 

mqttc = paho.Client() 
mqttc.on_message = on_message 
mqttc.on_message = on_message 
mqttc.tls_set("ca.cert.pem", tls_version=ssl.PROTOCOL_TLSv1_2) 
mqttc.connect("address", 8883, 60) 
mqttc.loop_forever() 

이 , TLSv1 그리고 완전히 내버려 둬라. ca.cert.pem은 (는) subscribe.py 파일과 같은 폴더에 있습니다.

예를 들어 paho 웹 사이트는 매우 간단하므로 여기에 무엇을 놓치고 있습니까? 내 파이썬 클라이언트에서 오류가 발생하는 이유는 무엇입니까?

답변

1

모기 클라이언트를 사용해 보셨습니까? 발생한 문제에 대한 가능성이 많으므로 알아내는 가장 좋은 방법은 다른 방법을 시도하는 것입니다.

mosquitto_sub -h address -p 8883 --cafile ca.cert.pem -t "#" -d -v

D 플래그는 디버그 메시지를 들면, V 플래그가 상세 모드이다. mosquitto 클라이언트가 캘리포니아에 연결할 수없는 경우

, 당신은 시도 할 수 있습니다 :

mosquitto_sub -h address -p 8883 --cafile ca.cert.pem -t "#" -d -v --insecure

불안전 한 플래그가 CA 서버에 대한 검사를 무시합니다. 불안한 플래그를 추가하면 연결될 수 있습니다. 그러면 CA가 잘못되었을 수 있습니다. openssl을 사용하여 디버깅 할 수 있습니다.

관련 문제