쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

HTTPS

포커스 모드
HTTPS - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

클라이언트는 HTTP 1.0 또는 1.1 프로토콜을 사용하여 REST API에 요청하여 메시지를 게시할 수 있습니다. HTTP 요청에 사용되는 인증 및 포트 매핑에 대해서는 프로토콜, 포트 매핑 및 인증 단원을 참조하세요.

참고

HTTPS는 MQTT와 같이 clientId 값을 지원하지 않습니다. clientId는 MQTT를 사용할 때 이용할 수 있지만 HTTPS를 사용할 때는 이용할 수 없습니다.

HTTPS 메시지 URL

디바이스와 클라이언트는 클라이언트별 엔드포인트 및 주제별 URL에 대한 POST 요청을 함으로서 메시지를 게시합니다.

https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
  • IoT_data_endpointAWS IoT 디바이스 데이터 엔드포인트입니다. 다음 명령을 사용하여 콘솔의 AWS IoT 사물 세부 정보 페이지 또는 클라이언트에서 엔드포인트를 찾을 수 있습니다 AWS CLI .

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

    엔드포인트는 a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com과 같아야 합니다.

  • url_encoded_topic_name은 전송되는 메시지의 전체 topic name입니다.

HTTPS 메시지 코드 예제

다음은 HTTPS 메시지를 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

클라이언트 또는 디바이스의 curl을 사용하여 AWS IoT에 메시지를 전송할 수 있습니다.

curl을 사용하여 AWS IoT 클라이언트 디바이스에서 메시지를 보내려면
  1. curl 버전을 확인합니다.

    1. 클라이언트의 명령 프롬프트에서 이 명령을 실행합니다.

      curl --help

      도움말 텍스트에서 TLS 옵션을 찾습니다. --tlsv1.2 옵션이 표시됩니다.

    2. --tlsv1.2 옵션이 표시되면 계속합니다.

    3. --tlsv1.2 옵션이 표시되지 않거나 command not found 오류가 발생하면 계속하기 전에 클라이언트에서 curl을 업데이트 또는 설치하거나 openssl을(를) 설치합니다.

  2. 클라이언트에 인증서를 설치합니다.

    AWS IoT 콘솔에 클라이언트(사물)를 등록할 때 생성한 인증서 파일을 복사합니다. 계속하기 전에 클라이언트에 이 세 가지 인증서 파일이 있는지 확인합니다.

    • CA 인증서 파일(이 예에서는 Amazon-root-CA-1.pem).

    • 클라이언트의 인증서 파일(이 예에서는 device.pem.crt).

    • 클라이언트의 프라이빗 키 파일(이 예에서는 private.pem.key).

  3. curl 명령줄을 생성하여 계정 및 시스템의 대체 가능한 값을 바꿉니다.

    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

    TLS 1.2(SSL)를 사용합니다.

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

    피어를 확인하는 데 필요한 경우 CA 인증서의 파일 이름과 경로입니다.

    --cert device.pem.crt

    필요한 경우 클라이언트의 인증서 파일 이름과 경로입니다.

    --key private.pem.key

    필요한 경우 클라이언트의 프라이빗 키 파일 이름과 경로입니다.

    --request POST

    HTTP 요청의 유형입니다(이 경우 POST).

    --data "{ \"message\": \"Hello, world\" }"

    게시할 HTTP POST 데이터입니다. 이 경우 JSON 문자열이며 내부 인용 부호는 백슬래시 문자(\)로 이스케이프됩니다.

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

    클라이언트 디바이스 AWS IoT 데이터 엔드포인트의 URL, HTTPS 포트, 키워드, 주제 이름topic,이 순으로 차례:8443로 차례로 차례/topics/로 옵니다. 쿼리 파라미터 ?qos=1로 서비스 품질을 지정합니다.

  4. AWS IoT 콘솔에서 MQTT 테스트 클라이언트를 엽니다.

    MQTT 클라이언트를 사용하여 AWS IoT MQTT 메시지 보기의 지침에 따라 curl 명령에 사용된 주제(topic)의 주제 이름으로 메시지를 구독하도록 콘솔을 구성하거나 #의 와일드카드 주제 필터를 사용합니다.

  5. 명령을 테스트합니다.

    AWS IoT 콘솔의 테스트 클라이언트에서 주제를 모니터링하는 동안 클라이언트로 이동하여 3단계에서 만든 curl 명령줄을 실행합니다. 콘솔에 클라이언트의 메시지가 표시되어야 합니다.

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)

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.