2017-10-10 1 views
0

Ich arbeite an Google Cloud IoT Kern und dort über ein Problem, das ich kam in einer der Proben (End-to-End-Beispiel) in der Online-Dokumentation zur Verfügung gestellt: google cloud iot exerciseGoogle Cloud IoT Kern Übung

Es sind zwei Skripte, für Server und Geräte, und während des Laufens das Gerät Skript, das ich dieses Problem bin vor:

+0

der Code dieser Skripte sind: - https://github.com/aadharbhatt/pub-sub-work/blob/master/cloudiot_pubsub_example_mqtt_device.py https://github.com/aadharbhatt/ pub-sub-work/blob/master/cloudiot_pubsub_example_server.py –

+0

__Bitte fügen Sie Ihrem Beitrag selbst und dem Titel einige Details hinzu .__ Dies ist keine Chat-Box, sondern eine Bibliothek zur Problemlösung. Fragen sollten sorgfältig bearbeitet werden, damit nicht nur diejenigen, die eine Lösung bieten können, sondern auch solche, die ein ähnliches Problem in einem anderen Kontext haben, Ihre Frage in der Zukunft finden können. –

Antwort

0

Es ist möglich, dass Ihre Firewall (zB die Cloud Shell Machine) Python von blockiert über den Port verbindet 8883. Can Sie versuchen, das Skript cloudiot_pubsub_example_mqtt_device.py mit dem Port auf 443, z

python <your_existing_parameters> --mqtt_bridge_port=443 

Sie können auch versuchen wollen the HTTP device sample verwenden, um Nachrichten zu veröffentlichen, wie es auch nicht Port nicht verwendet 8883, die in Ihrem Netzwerk blockiert werden können.

In meinen Tests konnte ich die Übung nur aus der Google Cloud Shell heraus ausführen, nachdem ich meinen Port auf 443 gesetzt hatte. Das wird das Problem hoffentlich für Sie lösen.

Hinweis Wenn Sie stoßen Probleme mit dem Serverzertifikat zu überprüfen, müssen Sie das Google-Stammzertifikat zum Download durch den Aufruf:

wget https://pki.google.com/roots.pem 
+0

Bei Port 443 ssl Zertifikatsprüfung fehlgeschlagen –

+0

Kommentar hinzugefügt, müssen Sie wahrscheinlich wget https://pki.google.com/roots.pem aufrufen – class

0

error image

Traceback (most recent call last): 
    File "cloudiot_pubsub_example_mqtt_device.py", line 249, in <module> 
    main() 
    File "cloudiot_pubsub_example_mqtt_device.py", line 213, in main 
    client.connect(args.mqtt_bridge_hostname, args.mqtt_bridge_port) 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 
768, in connect 
    return self.reconnect() 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 
927, in reconnect 
    sock.do_handshake() 
    File "/usr/lib/python2.7/ssl.py", line 788, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 
(_ssl.c:581) 
1

von der Kommandozeile args, Es sieht so aus, als würden Sie rsa_cert.pem übergeben, was Ihr privater SSL-Schlüssel ist. Wie @class sagte, müssen Sie das Google-Stammzertifikat wget (wget https://pki.google.com/roots.pem) und dann den Pfad zu heruntergeladenen roots.pem für das Argument --ca_certs übergeben.

Verwandte Themen