Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

HTTPS

Modo de foco
HTTPS - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Os clientes podem publicar mensagens fazendo solicitações REST API usando os protocolos HTTP 1.0 ou 1.1. Para a autenticação e os mapeamentos de portas usados pelas HTTP solicitações, consulte. Protocolos, mapeamentos de porta e autenticação

nota

HTTPSnão suporta um clientId valor como MQTT o faz. clientIdestá disponível durante o usoMQTT, mas não está disponível durante o usoHTTPS.

HTTPSmensagem URL

Dispositivos e clientes publicam suas mensagens fazendo POST solicitações para um endpoint específico do cliente e um tópico específico: URL

https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
  • IoT_data_endpointé o endpoint de dados do AWS IoT dispositivo. Você pode encontrar o endpoint no AWS IoT console na página de detalhes da coisa ou no cliente usando o AWS CLI comando:

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

    O endpoint deve ser algo parecido com isto: a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com

  • url_encoded_topic_nameé o nome completo do tópico da mensagem que está sendo enviada.

HTTPSexemplos de código de mensagem

Estes são alguns exemplos de como enviar uma HTTPS mensagem para 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

Você pode usar o curl de um cliente ou dispositivo para enviar uma mensagem para a AWS IoT.

Para usar o curl para enviar uma mensagem de um dispositivo AWS IoT cliente
  1. Verifique a versão do curl.

    1. No cliente, execute esse comando em um prompt de comando.

      curl --help

      No texto de ajuda, procure as TLS opções. Você deve ver a opção --tlsv1.2.

    2. Se você vir a opção --tlsv1.2, continue.

    3. Se você não vir a opção --tlsv1.2 ou receber um erro command not found, pode ser necessário atualizar ou instalar o curl no cliente ou instalar o openssl antes de continuar.

  2. Instale os certificados no cliente.

    Copie os arquivos de certificado que você criou quando registrou seu cliente (coisa) no AWS IoT console. Verifique se você tem esses três arquivos de certificado no cliente antes de continuar.

    • O arquivo de certificado CA (Amazon-root-CA-1.pem neste exemplo).

    • O arquivo de certificado do cliente (device.pem.crt neste exemplo).

    • O arquivo de chave privada do cliente (private.pem.key neste exemplo).

  3. Crie a linha de comando curl, substituindo os valores substituíveis pelos da sua conta e do sistema.

    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

    Use TLS 1.2 (SSL).

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

    O nome e o caminho do arquivo, se necessário, do certificado CA para verificar o peer.

    --certificado device.pem.crt

    O nome e o caminho do arquivo de certificado do cliente, se necessário.

    --chave private.pem.key

    O nome e o caminho do arquivo de chave privada do cliente, se necessário.

    --solicitação POST

    O tipo de HTTP solicitação (nesse caso,POST).

    --dados "” { \"message\": \"Hello, world\" }

    Os HTTP POST dados que você deseja publicar. Nesse caso, é uma JSON string, com as aspas internas escapadas com o caractere de barra invertida (\).

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

    O endpoint URL de dados do AWS IoT dispositivo do seu cliente, seguido pela HTTPS porta:8443, que é seguida pela palavra-chave /topics/ e pelo nome do tópicotopic, nesse caso. Especifique a qualidade do serviço como o parâmetro de consulta, ?qos=1.

  4. Abra o cliente de MQTT teste no AWS IoT console.

    Siga as instruções Exibir mensagens MQTT com o cliente AWS IoT MQTT e configure o console para assinar mensagens com o nome do tópico topic usado em seu curl comando ou use o filtro de tópico curinga de#.

  5. Teste o comando.

    Ao monitorar o tópico no cliente de teste do console do AWS IoT , acesse o cliente e emita a linha de comando curl criada na etapa 3. Você deve ver as mensagens do cliente no 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)
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.