Skip to main content

Beispiel: Verwenden der Bibliothek AWS IoT Core Client SL

Produkt: CODESYS IIOT Libraries SL

Beschreibung

Das Beispiel AWS IoT Core Client SL Example.project demonstriert die Verwendung der Bibliothek AWS IoT Core Client SL.

Die Applikation AWSDeviceShadow demonstriert das Schreiben und Lesen des "Device Shadows".

Die Applikation AWSPubSub zeigt, wie Nachrichten über die enthaltenen Funktionsbausteine veröffentlicht und abonniert werden können.

Die Applikation AWS_JSON_DeviceSchadow zeigt die Updatemöglichkeit des "Device Shadows" mit Hilfe des JSONBuilders.

Erste Schritte

Installation eines Clientzertifikats

Die Authentifizierung eines Geräts bei AWS IoT Core erfolgt über Clientzertifikate. Das Clientzertifikat kann über die AWS-Weboberfläche erzeugt, heruntergeladen und anschließend auf dem entsprechenden Gerät installiert werden.

. Es gibt zwei Vorgehensweisen, ein solches Zertifikat zu erzeugen:
  • Auf der Steuerung wird eine CSR-Datei (Certificate Signing Request) erzeugt. Mit dieser Datei wird anschließend ein Zertifikat erzeugt.

    Eine Anleitung dazu finden Sie im nachfolgenden Abschnitt.

  • Das Zertifikat und der Private-Key werden über AWS angelegt, heruntergeladen und auf das Gerät installiert.

    Für weitere Informationen siehe: Import of client certificates with private key

Erzeugen des Zertifikats mit einer CSR-Datei

. Vorbereitung
  • Das Package CODESYS Security Agent muss auf Ihrem Computer installieren sein.

    Für weitere Informationen siehe: CODESYS Security Agent

  • Sie benötigen einen Account bei AWS.

Prozedur. Clientzertifikat via CSR erstellen und importieren
  1. Legen Sie ein Gerät (Thing) in AWS IoT Core über die Weboberfläche an.

    Sie können Ihre Geräte (Things) im Navigations-Seitenpanel unter Manage > All Devices > Things einsehen und verwalten.

    _ex_img_aws_iot_thing.png
  2. Öffnen Sie im Beispielprojekt die Applikation AWSPubSub.

  3. Setzen Sie den Endpoint auf den Eingang AWSIoTClient.sHostname.

    Beispiel: xxxxxxxxxxxxxxx.iot.yyyyyyyy.amazonaws.com)

    Sie finden Ihre Endpoints im Navigations-Seitenpanel unter Connect > Domain configurations. Dort können Sie gegebenenfalls auch einen neuen Endpoint erstellen.

  4. Setzen Sie den zuvor vergebenen Gerätenamen ("Name of thing") auf den Eingang AWSIoTClient.sClientId.

    Verwenden Sie den Eingang AWSIoTClient.sCertCNPrefix, wenn die ClientId mit dem Hostnamen identisch ist. Dies verhindert das Laden eines falschen Zertifikats (beispielsweise von WebServer).

    Tipp

    Wenn der Eingang nicht angezeigt wird, führen Sie den Befehl Anschlüsse zurücksetzen aus.

    Beispiel:

    sCertCNPrefix := 'AWSClient', sClientId := 'MyHostname';

    Der "Common Name" (CN) des Zertifikats lautet: AWSClient@MyHostname

  5. Laden Sie die Applikation auf die Steuerung und starten Sie sie.

    Die Applikation wird nun versuchen, eine verschlüsselte Verbindung zu AWS aufzubauen, was jedoch aufgrund des fehlenden Zertifikats scheitern wird. Dennoch ist dieser Aufbauversuch im Folgenden relevant.

  6. Setzen Sie das Flag xEnable des AWSIoTClient auf TRUE.

  7. Wählen Sie im Geräteeditor die Registerkarte SPS-Shell.

  8. Führen Sie folgenden Befehl aus:

    cert-getapplist

    In der Ausgabe wird eine Komponente mit dem angegebenen Gerätenamen und einer Nummer angezeigt.

    Hinweis: Das Gerät wird nicht angezeigt, wenn Sie zuvor nicht versucht haben, eine Verbindung zu AWS aufzubauen (Schritt 5).

  9. Führen Sie folgenden Befehl aus:

    cert-createcsr <number> encoding=Base64

    Ersetzen Sie <number> durch die im Schritt 8 erhaltene Nummer. Das Erzeugen der CSR-Datei kann einige Sekunden dauern.

    Im Geräteeditor, unter der Kategorie Log, wird nach dem Generieren eine entsprechende Meldung ausgegeben.

    _example_img_aws_iot_core_client.png
  10. Wählen Sie im Geräteeditor die Registerkarte Dateien.

    Kopieren Sie die CSR-Datei vom Verzeichnis cert/export auf das lokale Dateisystem.

    _example_img_aws_iot_core_clien_filest.png
  11. Mit der erzeugten CSR-Datei können Sie nun über die AWS-Weboberfläche ein Zertifikat erstellen.

    Sie können im Navigations-Seitenpanel über Security > Certificates zu einer Verwaltungsübersicht all Ihrer Zertifikate gelangen.

    Erstellen Sie über den Befehl Add certificate > Create certificate mit der exportierten CSR-Datei ein neues Zertifikat.

    _ex_img_aws_iot_create_certificate.png
  12. Downloaden Sie das Zertifikat und das Root-Zertifikat.

  13. Wählen Sie in CODESYS den Menübefehl Ansicht -> Security Screen.

  14. Installieren Sie Ihr Client-Zertifikat unter Eigene Zertifikate.

  15. Installieren Sie das Root-Zertifikat unter Vertrauenswürdiges Zertifikat.

    _example_img_aws_iot_core_client_trusted_certificat.png
  16. Wählen Sie den Befehl Online -> Reset kalt und starten Sie die Applikation.

    Ein erneuter Verbingungsaufbauversuch des Funktionsbausteins AWSIoTClient wird nun den Ausgang AWSIoTClient.xConnectedToBroker auf TRUE setzen.

    Die Verbindung wird korrekt hergestellt.

Wichtig

Wenn Sie ein per CSR erstelltes Zertifikat von einer Steuerung deinstallieren, dann wird es bei einer erneuten Installation nicht mehr funktionieren.

Grund dafür ist, dass beim Deinstallation Informationen zum Private-Key entfernt werden.Sie müssen in diesem Fall ein neues Zertifikat für das Gerät erstellen.

Systemvoraussetzungen und Einschränkungen

Programmiersystem

CODESYS Development System Version 3.5.18.0 oder höher

Laufzeitsystem

CODESYS Control Win Version 3.5.18.0 oder höher

Hinweis: Verwenden Sie das kostenlos im CODESYS Store International erhältliche Projekt Device Reader, um von der Steuerung unterstützten Funktionen zu ermitteln.

Zusatzkomponenten

-

Zusätzliche Anforderungen

AWS Account (AWS IoT Core)

Hinweis

_example_icon.png DOWNLOAD Projekte