Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

HTTPS

Mode de mise au point
HTTPS - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les clients peuvent publier des messages en faisant des demandes à l'RESTAPIaide des protocoles HTTP 1.0 ou 1.1. Pour l'authentification et les mappages de ports utilisés par les HTTP demandes, consultezProtocols, port mappings, and authentication (Protocoles, mappages de ports et authentification).

Note

HTTPSne supporte pas une clientId valeur comme MQTT le fait. clientIdest disponible lors de l'utilisationMQTT, mais il ne l'est pas lors de l'utilisationHTTPS.

HTTPSmessage URL

Les appareils et les clients publient leurs messages en adressant des POST demandes à un point de terminaison spécifique au client et à un sujet spécifique : URL

https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
  • IoT_data_endpointest le point de terminaison des données de l'AWS IoT appareil. Vous pouvez trouver le point de terminaison dans la AWS IoT console, sur la page de détails de l'objet ou sur le client à l'aide de la AWS CLI commande :

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

    Le point de terminaison doit ressembler à ceci : a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com

  • url_encoded_topic_nameest le nom complet du sujet du message envoyé.

HTTPSexemples de code de message

Voici quelques exemples de la manière d'envoyer un HTTPS message à AWS IoT.

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

Vous pouvez utiliser curl à partir d'un client ou d'un appareil pour envoyer un message à AWS IoT.

Pour utiliser curl pour envoyer un message depuis un appareil AWS IoT client
  1. Vérifiez la version curl.

    1. Sur votre client, exécutez cette commande à partir d’une invite de commande.

      curl --help

      Dans le texte d'aide, recherchez les TLS options. Vous devriez voir l'option --tlsv1.2.

    2. Si vous voyez l' option --tlsv1.2, continuez.

    3. Si vous ne voyez pas l'option --tlsv1.2 ou si vous obtenez une erreur command not found, vous devrez peut-être mettre à jour ou installer curl sur votre client ou l'installer opensslavant de continuer.

  2. Installez les certificats sur votre client.

    Copiez les fichiers de certificat que vous avez créés lorsque vous avez enregistré votre client (objet) dans la AWS IoT console. Assurez-vous d'avoir ces trois fichiers de certificat sur votre client avant de continuer.

    • Fichier de certificat de l'autorité de certification (Amazon-root-CA-1.pem dans cet exemple).

    • Fichier de certificat du client (device.pem.crt dans cet exemple).

    • Fichier de clé privée du client (private.pem.key dans cet exemple).

  3. Créez la ligne de commande curl en remplaçant les valeurs remplaçables par celles de votre compte et de votre système.

    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

    Utilisez TLS 1.2 (SSL).

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

    Nom et chemin d’accès du fichier de certificat d'autorité de certification, si nécessaire, pour vérifier l'appairage.

    --certificat device.pem.crt

    Nom et chemin d’accès du fichier de certificat du client, si nécessaire.

    --clé private.pem.key

    Nom et chemin d’accès du fichier de clé privée du client, si nécessaire.

    --demande POST

    Type de HTTP demande (dans ce cas,POST).

    --données « » { \"message\": \"Hello, world\" }

    Les HTTP POST données que vous souhaitez publier. Dans ce cas, il s'agit d'une JSON chaîne dont les guillemets internes sont masqués par la barre oblique inverse (\).

    « https : IoT_data_endpoint //:8443/sujets/ ? topic qos=1 »

    Le point URL de terminaison des données de l' AWS IoT appareil de votre client:8443, suivi du HTTPS port, qui est ensuite suivi du mot clé /topics/ et du nom du sujettopic, dans ce cas. Spécifiez la qualité du service en tant que paramètre de requête, ?qos=1.

  4. Ouvrez le client de MQTT test dans la AWS IoT console.

    Suivez les instructions Afficher les messages MQTT avec le client AWS IoT MQTT et configurez la console pour vous abonner aux messages dont le nom de sujet est topic utilisé dans votre curl commande, ou utilisez le filtre de sujet générique de#.

  5. Testez la commande.

    Lors de la surveillance de la rubrique dans le client de test de la console AWS IoT , accédez à votre client et émettez la ligne de commande curl que vous avez créée à l'étape 3. Vous devriez voir les messages de votre client dans la console.

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)

Rubrique suivante :

Rubriques MQTT

Rubrique précédente :

MQTT
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.