Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

HTTPS

Fokusmodus
HTTPS - AWS IoT Core

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.

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.

Clients können Nachrichten veröffentlichen, indem sie Anforderungen an die REST-API mit den Protokollen HTTP 1.0 oder 1.1 stellen. Informationen zu den Authentifizierungs- und Portzuordnungen, die von HTTP-Anforderungen verwendet werden, finden Sie unter Protokolle, Port-Zuweisungen und Authentifizierung.

Anmerkung

HTTPS unterstützt keinen clientId-Wert wie MQTT. clientId ist verfügbar, wenn MQTT verwendet wird, aber es ist nicht verfügbar, wenn HTTPS verwendet wird.

HTTPS-Nachrichten-URL

Geräte und CLients veröffentlichen ihre Nachrichten, indem sie POST-Anfragen an einen clientspezifischen Endpunkt und eine themenspezifische URL stellen:

https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
  • IoT_data_endpointist der Endpunkt der AWS IoT Gerätedaten. Sie finden den Endpunkt in der AWS IoT Konsole auf der Detailseite der Sache oder auf dem Client mit dem AWS CLI folgenden Befehl:

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    Der Endpunkt sollte etwa so aussehen: a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com

  • url_encoded_topic_nameist der vollständige Themenname der gesendeten Nachricht.

Beispiele für HTTPS-Nachrichtencodes

Dies sind einige Beispiele dafür, wie Sie eine HTTPS-Nachricht an AWS IoT senden können.

Python (port 8443)
import requests import argparse # define command-line parameters parser = argparse.ArgumentParser(description="Send messages through an HTTPS connection.") parser.add_argument('--endpoint', required=True, help="Your AWS IoT data custom endpoint, not including a port. " + "Ex: \"abcdEXAMPLExyz-ats.iot.us-east-1.amazonaws.com\"") parser.add_argument('--cert', required=True, help="File path to your client certificate, in PEM format.") parser.add_argument('--key', required=True, help="File path to your private key, in PEM format.") parser.add_argument('--topic', required=True, default="test/topic", help="Topic to publish messages to.") parser.add_argument('--message', default="Hello World!", help="Message to publish. " + "Specify empty string to publish nothing.") # parse and load command-line parameter values args = parser.parse_args() # create and format values for HTTPS request publish_url = 'https://' + args.endpoint + ':8443/topics/' + args.topic + '?qos=1' publish_msg = args.message.encode('utf-8') # make request publish = requests.request('POST', publish_url, data=publish_msg, cert=[args.cert, args.key]) # print results print("Response status: ", str(publish.status_code)) if publish.status_code == 200: print("Response body:", publish.text)
Python (port 443)
import requests import http.client import json import ssl ssl_context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_CLIENT) ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2 # note the use of ALPN ssl_context.set_alpn_protocols(["x-amzn-http-ca"]) ssl_context.load_verify_locations(cafile="./<root_certificate>") # update the certificate and the AWS endpoint ssl_context.load_cert_chain("./<certificate_in_PEM_Format>", "<private_key_in_PEM_format>") connection = http.client.HTTPSConnection('<the ats IoT endpoint>', 443, context=ssl_context) message = {'data': 'Hello, I'm using TLS Client authentication!'} json_data = json.dumps(message) connection.request('POST', '/topics/device%2Fmessage?qos=1', json_data) # make request response = connection.getresponse() # print results print(response.read().decode())
CURL

So verwenden Sie curl zum Senden einer Nachricht an das AWS IoT.

Um Curl zu verwenden, um eine Nachricht von einem AWS IoT Client-Gerät aus zu senden
  1. Überprüfen Sie die curl-Version.

    1. Führen Sie diesen Befehl auf Ihrem Client an einer Eingabeaufforderung aus.

      curl --help

      Suchen Sie im Hilfetext nach den TLS-Optionen. Sie sollten die --tlsv1.2-Option sehen.

    2. Wenn die --tlsv1.2-Option angezeigt wird, fahren Sie fort.

    3. Wenn die --tlsv1.2-Option nicht angezeigt wird oder Sie einen command not found-Fehler angezeigt bekommen, müssen Sie vor dem Fortfahren gegebenenfalls curl auf Ihrem Client aktualisieren oder openssl installieren.

  2. Installieren Sie die Zertifikate auf Ihrem Client.

    Kopieren Sie die Zertifikatsdateien, die Sie erstellt haben, als Sie Ihren Client (Ihr Ding) in der AWS IoT Konsole registriert haben. Stellen Sie sicher, dass sich diese drei Zertifikatdateien auf Ihrem Client befinden, bevor Sie fortfahren.

    • Die CA-Zertifikatdatei (Amazon-root-CA-1.pem in diesem Beispiel).

    • Die Zertifikatdatei des Clients (device.pem.crt in diesem Beispiel).

    • Die private Schlüsseldatei des Clients (private.pem.key in diesem Beispiel).

  3. Erstellen Sie die curl-Befehlszeile und ersetzen Sie die ersetzbaren Werte gegen die Werte Ihres Kontos und Systems.

    curl --tlsv1.2 \ --cacert Amazon-root-CA-1.pem \ --cert device.pem.crt \ --key private.pem.key \ --request POST \ --data "{ \"message\": \"Hello, world\" }" \ "https://IoT_data_endpoint:8443/topics/topic?qos=1"
    --tlsv1.2

    Verwenden Sie TLS 1.2 (SSL).

    --cacert Amazon-root-CA-1.pem

    Der Dateiname und Pfad, falls erforderlich, des CA-Zertifikats für die Verifizierung des Peers.

    --Zertifikat device.pem.crt

    Der Dateiname und Pfad der Clientzertifikatdatei, falls erforderlich.

    --Schlüssel private.pem.key

    Der Dateiname und Pfad des privaten Schlüssels des Clients, falls erforderlich.

    --request POST

    Die Art der HTTP-Anfrage (in diesem Fall POST).

    --daten "“ { \"message\": \"Hello, world\" }

    Die HTTP POST-Daten, die Sie veröffentlichen möchten. In diesem Fall handelt es sich um eine JSON-Zeichenfolge, wobei die internen Anführungszeichen mit dem umgekehrten Schrägstrich (\) als Escape-Zeichen markiert sind.

    „https: //:8443/topics/? IoT_data_endpoint topic qos=1"

    Die URL des AWS IoT Gerätedatenendpunkts Ihres Clients, gefolgt vom HTTPS-Port:8443, gefolgt vom Schlüsselwort /topics/ und dem Themennamentopic, in diesem Fall. Geben Sie die Servicequalität als Abfrageparameter an, ?qos=1, an.

  4. Öffnen Sie den MQTT-Testclient in der AWS IoT Konsole.

    Folgen Sie den Anweisungen unter MQTT-Nachrichten mit dem AWS IoT MQTT-Client anzeigen und konfigurieren Sie die Konsole so, dass sie Nachrichten mit dem Themennamen abonniert, der in Ihrem curl Befehl topic verwendet wurde, oder verwenden Sie den Themenfilter mit Platzhaltern für. #

  5. Testen Sie den Befehl.

    Während Sie das Thema im Testclient der AWS IoT -Konsole überwachen, rufen Sie im Client die in Schritt 3 erstellte curl-Befehlszeile auf. Sie sollten die Nachrichten Ihres Clients in der Konsole sehen.

import requests import argparse # define command-line parameters parser = argparse.ArgumentParser(description="Send messages through an HTTPS connection.") parser.add_argument('--endpoint', required=True, help="Your AWS IoT data custom endpoint, not including a port. " + "Ex: \"abcdEXAMPLExyz-ats.iot.us-east-1.amazonaws.com\"") parser.add_argument('--cert', required=True, help="File path to your client certificate, in PEM format.") parser.add_argument('--key', required=True, help="File path to your private key, in PEM format.") parser.add_argument('--topic', required=True, default="test/topic", help="Topic to publish messages to.") parser.add_argument('--message', default="Hello World!", help="Message to publish. " + "Specify empty string to publish nothing.") # parse and load command-line parameter values args = parser.parse_args() # create and format values for HTTPS request publish_url = 'https://' + args.endpoint + ':8443/topics/' + args.topic + '?qos=1' publish_msg = args.message.encode('utf-8') # make request publish = requests.request('POST', publish_url, data=publish_msg, cert=[args.cert, args.key]) # print results print("Response status: ", str(publish.status_code)) if publish.status_code == 200: print("Response body:", publish.text)
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.