

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Connect eine Anwendung mit dem EMQX-Broker auf Edge AWS IoT SiteWise
<a name="connect-app-to-broker"></a>

Der EMQX-Broker verwendet Transport Layer Security (TLS) auf Port 8883, um die gesamte Kommunikation zu verschlüsseln und so sicherzustellen, dass Ihre Daten während der Übertragung geschützt bleiben. Dieser Abschnitt führt Sie durch die Schritte zum Herstellen von Verbindungen zwischen Ihren Anwendungen und dem EMQX-Broker. Die Einhaltung dieser Schritte trägt dazu bei, die Integrität und Vertraulichkeit Ihrer Industriedaten zu wahren. Der Verbindungsprozess umfasst zwei Hauptansätze: die automatische IP-Erkennung mithilfe von Komponenten oder die manuelle Konfiguration von DNS-Namen und IP-Adressen als alternative Subject Names (SANs) in Ihren TLS-Zertifikaten. Jede Methode hat ihre eigenen Vorteile, abhängig von Ihrer Netzwerkkonfiguration und Ihren Sicherheitsanforderungen. Diese Dokumentation führt Sie durch beide Optionen.

**Topics**
+ [Konfigurieren Sie TLS für sichere Verbindungen zum EMQX-Broker auf Edge AWS IoT SiteWise](#configure-tls-emqx-broker)
+ [Testen Sie die EMQX-Brokerverbindung auf Edge AWS IoT SiteWise](#test-emqx-connection)
+ [Verwenden Sie Ihre eigene CA](#configure-tls-custom-ca)
+ [Öffnen Sie Port 8883 für externe Firewallverbindungen](#emqx-firewall)

## Konfigurieren Sie TLS für sichere Verbindungen zum EMQX-Broker auf Edge AWS IoT SiteWise
<a name="configure-tls-emqx-broker"></a>

 AWS IoT Greengrass Generiert standardmäßig ein TLS-Serverzertifikat für den EMQX-Broker, das von der Core Device Certificate Authority (CA) signiert ist. Weitere Informationen finden Sie unter [Client-Geräte über einen MQTT-Broker mit einem AWS IoT Greengrass Core-Gerät verbinden](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html).

### Rufen Sie das TLS-Zertifikat ab
<a name="configure-tls-retrieve-certificate"></a>

Um das CA-Zertifikat zu erhalten, führen Sie den folgenden Befehl auf dem Gateway-Host aus:

------
#### [ Linux ]

Führen Sie den folgenden Befehl in einer Shell-Sitzung auf dem Gateway-Host aus:

```
/greengrass/v2/bin/swe-emqx-cli cert
```

Mit diesem Befehl wird der Speicherort des Zertifikats angezeigt und der Inhalt des Zertifikats gedruckt.

Sie können das Zertifikat alternativ mit diesem Befehl in einer Datei speichern:

```
/greengrass/v2/bin/swe-emqx-cli cert --output /path/to/certificate.pem
```

------
#### [ Windows ]

Führen Sie den folgenden Befehl in einer PowerShell Sitzung auf dem Gateway-Host aus:

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert
```

Mit diesem Befehl wird der Speicherort des Zertifikats angezeigt und der Inhalt des Zertifikats gedruckt.

Sie können das Zertifikat alternativ mit diesem Befehl in einer Datei speichern:

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert --output C:\path\to\certificate.pem
```

Die CLI findet das Zertifikat automatisch, unabhängig vom genauen Pfad auf Ihrem System.

------

Kopieren Sie den Inhalt der Datei ca.pem in die externe Anwendung, die Sie mit dem Broker verbinden. Speichern Sie diese unter `BrokerCoreDeviceCA.pem`.

### Fügen Sie dem TLS-Serverzertifikat benutzerdefinierte names/IP DNS-Adressen hinzu
<a name="configure-tls-custom-dns-ip"></a>

Der alternative Name des Antragstellers (SAN) auf dem von AWS IoT Greengrass is `localhost` generierten Zertifikat Beim Herstellen einer TLS-Verbindung von außerhalb des Gateway-Hosts schlägt der TLS-Überprüfungsschritt fehl, da der Hostname des Brokers nicht mit dem Hostnamen `localhost` auf dem Serverzertifikat übereinstimmt.

Um das Problem mit nicht übereinstimmenden Hostnamen zu beheben, AWS IoT Greengrass bietet diese Option zwei Möglichkeiten zur Verwaltung von Endpunkten auf Kerngeräten. In diesem Abschnitt werden beide Optionen behandelt. Ausführlichere Informationen finden Sie unter [Manage core device endpoints](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html) im *AWS IoT Greengrass Version 2 Developer Guide*.
+ Verwenden Sie den Abschnitt Automatisierte IP-Erkennung, um über die IP-Adresse des Kerngeräts eine Verbindung zum EMQX-Broker herzustellen.
+ Um mithilfe eines DNS-Namens statt einer IP-Adresse eine Verbindung zum EMQX-Broker herzustellen, verwenden Sie den Abschnitt Manuelle Verwaltung.

------
#### [ Automated IP discovery ]

Diese Option ermöglicht es Ihrem Core-Gerät, seine IP-Adresse automatisch zu ermitteln und sie dem Broker-Zertifikat als Subject Alternative Name (SAN) hinzuzufügen.

1. Fügen Sie die `aws.greengrass.clientdevices.IPDetector` Komponente zur Bereitstellung Ihres Kerngeräts hinzu.

1. Stellen Sie die Änderungen auf Ihrem Gerät bereit

1. Warten Sie, bis die Bereitstellung abgeschlossen ist.

   Nach Abschluss der Bereitstellung können Sie mithilfe der IP-Adresse des Brokers eine sichere TLS-Verbindung herstellen.

   Die IP-Adresse wird dem Brokerzertifikat automatisch als SAN hinzugefügt.

------
#### [ Manual DNS and IP Configuration ]

Sie können Ihrem TLS-Zertifikat manuell DNS-Namen und IP-Adressen als alternative Subject Names (SANs) hinzufügen. Diese Methode ist nützlich, wenn Sie einen DNS-Namen für Ihren Gateway-Host konfiguriert haben.

**Wichtig**  
Wenn Sie die IPDetector Komponente verwenden, entfernen Sie sie aus Ihrer Bereitstellung, bevor Sie fortfahren. Die IPDetector Komponente überschreibt manuelle Endpunktkonfigurationen.

**Um Endpunkte manuell zu konfigurieren**

1. <a name="sitewise-open-console"></a>Navigieren Sie zur [AWS IoT SiteWise -Konsole](https://console.aws.amazon.com/iotsitewise/).

1. **Wählen Sie in der linken Navigationsleiste im Abschnitt **Edge die Option Edge-Gateways** aus.**

1. Wählen Sie das zu konfigurierende Gateway aus.

1. Wählen Sie im Abschnitt **Edge-Gateway-Konfiguration** die URL Ihres **Greengrass-Core-Geräts** aus. Die Seite des Core-Geräts wird angezeigt.

1. Wählen Sie die Registerkarte **Client-Geräte**.

1. Wählen Sie **Endpunkte verwalten** aus.

1. Geben Sie im Dialogfeld „Endpoints verwalten“ die DNS-Namen und alle IP-Adressen ein, die Sie hinzufügen möchten. SANs Verwenden Sie Port 8883.

1. Wählen Sie **Aktualisieren** aus.

Das TLS-Serverzertifikat des Brokers wird automatisch aktualisiert und schließt Ihre neuen Endpunkte mit ein.

**Um das Update des TLS-Serverzertifikats unter Linux zu überprüfen**

1. Starten Sie eine Shell-Sitzung auf Ihrem Gateway-Host.

   ```
   docker exec emqx openssl x509 -in ./data/cert.pem -text -noout | grep -A1 "Subject Alternative Name"
   ```

1. Der Befehl gibt eine Ausgabe zurück, die der folgenden ähnelt:

   ```
   X509v3 Subject Alternative Name: 
   DNS:{{endpoint_you_added}}, DNS:localhost
   ```

1. Stellen Sie sicher, dass Ihr Endpunkt in der Liste von angezeigt wird SANs.

**Um das Update des TLS-Serverzertifikats unter Windows zu überprüfen**

1. Starten Sie eine Shell-Sitzung auf Ihrem Gateway-Host.

   ```
   (Get-PfxCertificate -FilePath "C:\greengrass\v2\work\aws.greengrass.clientdevices.mqtt.EMQX\v2\data\cert.pem").Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" } | ForEach-Object { "Subject Alternative Name:", ($_.Format($true) -split "`n")[0..1] }
   ```

1. Der Befehl gibt eine Ausgabe zurück, die der folgenden ähnelt:

   ```
   Subject Alternative Name:
   DNS Name={{your-endpoint}}
   DNS Name=localhost
   ```

1. Stellen Sie sicher, dass der von Ihnen hinzugefügte Endpunkt in der Liste von enthalten ist SANs.

------

## Testen Sie die EMQX-Brokerverbindung auf Edge AWS IoT SiteWise
<a name="test-emqx-connection"></a>

Nachdem Sie Ihren EMQX-Broker mit TLS-Zertifikaten und Authentifizierungsdaten konfiguriert haben, müssen Sie unbedingt überprüfen, ob Ihr Setup ordnungsgemäß funktioniert. Durch das Testen der Verbindung können Sie sicherstellen, dass Ihre Sicherheitskonfigurationen ordnungsgemäß implementiert sind und dass Clients erfolgreich verschlüsselte Verbindungen zum Broker herstellen können. In diesem Abschnitt wird gezeigt, wie Sie Ihre Broker-Verbindung mit dem Mosquitto Command Line Interface (CLI) -Client testen, einem weit verbreiteten MQTT-Client-Tool, das TLS-Verschlüsselung und -Authentifizierung unterstützt.

### Verwenden Sie den Mosquitto CLI-Client, um die EMQX-Broker-Verbindung zu testen
<a name="test-emqx-connection-mosquitto"></a>

In diesem Schritt verwenden wir den Mosquitto CLI-Client, um unser Setup zu testen und sicherzustellen, dass wir mit dem zuvor erstellten Benutzernamen und Passwort erfolgreich eine Verbindung zum Broker herstellen können. Die `BrokerCoreDeviceCA.pem` folgenden Schritte finden Sie unter Schritt 3: TLS einrichten.

```
mosquitto_sub -h {{hostname|ip address}} \
    -p 8883 \
    -t "#" \
    -q 1 \
    -u {{username}} -P {{password}} \
    --cafile BrokerCoreDeviceCA.pem
```

**Anmerkung**  
Möglicherweise wird ein SSL:Verify-Fehler angezeigt, wenn die hostname/IP Adresse, mit der Sie eine Verbindung herstellen, nicht mit dem Subject Alternative Name (SAN) übereinstimmt, der auf dem CA-Zertifikat steht, das Sie an den Client übergeben. Informationen zum Abrufen eines Zertifikats mit dem richtigen SAN finden Sie unter „Hinzufügen von benutzerdefinierten names/IP DNS-Adressen zum TLS-Serverzertifikat“ unter Schritt 3: TLS einrichten.

Zu diesem Zeitpunkt haben alle Benutzer Zugriff darauf, alle Themen auf dem Broker zu veröffentlichen und zu abonnieren. Fahren Sie mit [Richten Sie Autorisierungsregeln für AWS IoT SiteWise Edge in EMQX ein](authorization-rules-emqx-broker.md) fort.

## Verwenden Sie Ihre eigene CA
<a name="configure-tls-custom-ca"></a>

AWS IoT Greengrass beschreibt, wie Sie Ihre eigene Authentifizierungskomponente für Client-Geräte so konfigurieren, dass sie Ihre eigene Zertifizierungsstelle (CA) verwendet. Die Authentifizierungskomponente für Clientgeräte (`aws.greengrass.clientdevices.Auth`) authentifiziert Client-Geräte und autorisiert Aktionen auf Client-Geräten. *Weitere Informationen finden Sie unter [Verwenden Ihrer eigenen Zertifizierungsstelle im Entwicklerhandbuch](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html#use-your-own-CA).AWS IoT Greengrass Version 2 *

Um Ihre eigene Zertifizierungsstelle zu verwenden, fügen Sie die `aws.greengrass.clientdevices.Auth` Komponente zu Ihrer Bereitstellung hinzu, sodass Sie eine benutzerdefinierte Konfiguration angeben können.

## Öffnen Sie Port 8883 für externe Firewallverbindungen
<a name="emqx-firewall"></a>

------
#### [ Linux ]

Fügen Sie in Ihrer Linux-Host-Firewallregel eine eingehende Regel für Port 8883 hinzu, um eingehende Verbindungen von außerhalb des Gateway-Hosts zuzulassen. Wenn Firewalls vorhanden sind, stellen Sie sicher, dass eingehende TLS-Verbindungen auf Port 8883 zulässig sind.

------
#### [ Windows ]

Fügen Sie in Ihrer Microsoft Windows Host-Firewallregel eine Regel für eingehenden Datenverkehr für Port 8883 hinzu, um eingehende Verbindungen von außerhalb des Gateway-Hosts zuzulassen. Stellen Sie sicher, dass es sich bei der Regel um eine Zulassungsregel vom Typ Port handelt, wobei Port 8883 angegeben wird. Sie können dies entsprechend Ihrer Netzwerkkonfiguration konfigurieren, um Verbindungen von Ihren externen Anwendungen zum Broker zuzulassen.

------