All Products
Search
Document Center

IoT Platform:Membuat koneksi melalui HTTPS

Last Updated:Jul 02, 2025

Anda dapat menghubungkan perangkat ke IoT Platform melalui HTTPS. Topik ini menjelaskan cara menghubungkan perangkat ke IoT Platform menggunakan protokol HTTPS.

Catatan penggunaan dan batasan

  • Anda hanya dapat menghubungkan perangkat ke IoT Platform melalui HTTPS di wilayah China (Shanghai).
  • Koneksi singkat melalui HTTPS antara perangkat dan IoT Platform hanya dapat dibuat di wilayah China (Shanghai). Anda dapat melihat perubahan status perangkat dengan koneksi HTTPS singkat di konsol IoT Platform ketika perangkat terhubung atau memutuskan koneksi dari IoT Platform. Anda juga dapat mengonfigurasi langganan server-sisi Protokol Pengantrean Pesan Lanjutan (AMQP) untuk menerima pesan tentang perubahan status perangkat.
  • Hanya perangkat yang terhubung langsung ke IoT Platform yang dapat dihubungkan melalui HTTPS. Gateway atau sub-perangkat tidak dapat dihubungkan ke IoT Platform melalui HTTPS.
  • Koneksi melalui HTTPS digunakan untuk perangkat mengirimkan data. Perangkat dapat mengirimkan maksimum 128 KB data dalam satu waktu.
  • Topik HTTPS dan topik MQTT memiliki standar yang sama. Jika Anda menghubungkan perangkat ke IoT Platform melalui HTTPS, Anda dapat menggunakan topik MQTT untuk komunikasi antara perangkat dan IoT Platform. Ketika perangkat terhubung ke IoT Platform melalui HTTPS, data dikirimkan ke topik dalam format ${endpoint}/topic/${topic}. Format ?query_String=xxx tidak didukung.
  • Hanya metode permintaan POST yang didukung.
  • Token yang diterima selama autentikasi perangkat kedaluwarsa setelah periode tertentu. Masa berlaku saat ini adalah tujuh hari. Pastikan Anda menentukan logika untuk memproses token yang kedaluwarsa.

Proses

Untuk mengirimkan data, Anda harus mengautentikasi perangkat untuk mendapatkan token perangkat, lalu gunakan token tersebut.

  1. Autentikasi perangkat untuk mendapatkan token perangkat.

    Permintaan autentikasi:

    POST /auth HTTP/1.1
    Host: ${YourEndpoint}
    Content-Type: application/json
    Content-Length: 214
    body: {"version":"default","clientId":"mylight1000002","signmethod":"hmacsha1","sign":"4870141D4067227128CBB4377906C3731CAC221C","productKey":"ZG1EvTE****","deviceName":"NlwaSPXsCpTQuh8FxBGH","timestamp":"1501668289957"}
    Tabel 1. Tabel berikut menjelaskan parameter.
    ParameterDeskripsi
    MetodeMetode permintaan. Nilai valid: POST.
    URLURL. Hanya HTTPS yang didukung. Nilai valid: /auth.
    HostTitik akhir dari instansi publik atau instansi Enterprise Edition tempat Anda ingin menghubungkan perangkat Anda melalui HTTP. Untuk informasi lebih lanjut, lihat Kelola titik akhir instansi.
    Content-TypeJenis MIME (Multipurpose Internet Mail Extensions) dari data upstream yang dikirim oleh perangkat ke IoT Platform. Nilai valid: application/json. Jika jenis MIME lain ditentukan, akan terjadi kesalahan.
    Content-LengthPanjang badan pesan HTTP.
    Penting
    • Jika Anda menggunakan HTTP/1.1 atau yang lebih baru, parameter Content-Length secara default disertakan dalam permintaan. Jika Anda menggunakan HTTP/1.0 atau yang lebih lama, parameter ini tidak disertakan dalam permintaan secara default. Jika Anda menggunakan protokol HTTP untuk mengautentikasi perangkat, Anda harus menentukan parameter Content-Length.
    • Nilai dari Content-Length harus sama dengan panjang sebenarnya dari badan pesan. Jika tidak, badan pesan tidak dapat diuraikan dan autentikasi gagal.
    bodyInformasi perangkat untuk autentikasi dalam format JSON. Untuk informasi lebih lanjut, lihat Parameter dalam badan pesan.
    Tabel 2. Parameter dalam badan pesan
    ParameterDiperlukanDeskripsi
    productKeyYaProductKey dari produk tempat perangkat milik. Anda dapat masuk ke konsol IoT Platform dan mendapatkan ProductKey pada halaman Device Details dari instansi.
    deviceNameYaDeviceName dari perangkat. Anda dapat masuk ke konsol IoT Platform dan mendapatkan DeviceName pada halaman Device Details dari instansi.
    clientIdYaID klien. ID klien harus memiliki panjang 1 hingga 64 karakter. Kami merekomendasikan Anda menggunakan alamat MAC atau SN perangkat sebagai nilai parameter clientId.
    timestampTidakTimestamp. Permintaan valid selama 15 menit setelah timestamp dihasilkan. Timestamp dalam format numerik di mana nilainya mewakili jumlah milidetik yang telah berlalu sejak pukul 00:00:00 Kamis, 1 Januari 1970.
    signYaTanda tangan.

    Tanda tangan dihitung menggunakan fungsi hmacmd5(deviceSecret,content).

    Nilai dari content adalah string yang berisi semua parameter yang dikirimkan perangkat ke IoT Platform, kecuali parameter version, sign, dan signmethod. Parameter yang dikirimkan diurutkan secara alfabetis dan digabungkan tanpa simbol penggabungan.

    Contoh:

    Jika parameter clientId diatur ke 127.0.0.1, parameter deviceName diatur ke http_test, parameter productKey diatur ke a1FHTWxQ****, parameter timestamp diatur ke 1567003778853, parameter signmethod diatur ke hmacmd5, dan parameter deviceSecret diatur ke 89VTJylyMRFuy2T3sywQGbm5Hmk1****, gunakan fungsi berikut untuk menghitung tanda tangan:

    hmacmd5("89VTJylyMRFuy2T3sywQGbm5Hmk1****","clientId127.0.0.1deviceNamehttp_testproductKeya1FHTWxQ****timestamp1567003778853").toHexString();

    Metode toHexString() digunakan untuk mengonversi serangkaian empat digit biner yang membentuk hasil biner menjadi string heksadesimal. String heksadesimal tidak peka huruf besar/kecil. Misalnya, array yang mencakup hasil dalam format desimal adalah [60 68 -67 -7 -17 99 30 69 117 -54 -58 -58 103 -23 113 71]. Array tersebut dikonversi menjadi string heksadesimal berikut: 3C44BDF9EF631E4575CAC6C667E97147.

    signmethodTidakAlgoritma tanda tangan. Nilai valid: hmacmd5 dan hmacsha1.

    Nilai default: hmacmd5.

    versionTidakNomor versi. Nilai default: default.

    Contoh respons:

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "token":  "6944e5bfb92e4d4ea3918d1eda39****"
      }
    }
    Catatan
    • Simpan token yang diterima di perangkat.
    • Token diperlukan setiap kali perangkat mengirimkan data ke IoT Platform. Jika token kedaluwarsa, autentikasi ulang perangkat diperlukan untuk mendapatkan token baru.
    Tabel 3. Kode kesalahan
    codemessageDeskripsi
    10000kesalahan umumPesan kesalahan yang dikembalikan karena kesalahan tidak dikenal telah terjadi.
    10001kesalahan parameterPesan kesalahan yang dikembalikan karena satu atau lebih parameter tidak valid.
    20000kesalahan pengecekan autentikasiPesan kesalahan yang dikembalikan karena perangkat gagal diautentikasi.
    20004kesalahan pembaruan sesiPesan kesalahan yang dikembalikan karena perangkat gagal diperbarui.
    40000permintaan terlalu banyakPesan kesalahan yang dikembalikan karena jumlah permintaan yang dapat diproses oleh IoT Platform melebihi ambang batas throttling.
  2. Kirimkan data.

    Perangkat hanya dapat mengirimkan data ke topik tempat perangkat memiliki izin Publish. Topik kustom dapat digunakan.

    Sebagai contoh, jika topiknya adalah /${YourProductKey}/${YourDeviceName}/pub, DeviceName adalah device123, dan ProductKey adalah a1GFjLP****, Anda dapat menggunakan URL https://iot-as-http.cn-shanghai.aliyuncs.com/topic/a1GFjLP****/device123/pub untuk mengirimkan data.

    Contoh permintaan:

    POST /topic/${topic} HTTP/1.1
    Host: ${YourEndpoint}
    password:${token}
    Content-Type: application/octet-stream
    Content-Length: 53
    body: ${your_data}
    Tabel 4. Parameter
    ParameterDeskripsi
    MetodeMetode permintaan. Nilai valid: POST.
    URL/topic/${topic}. Ganti variabel ${topic} dengan topik ke mana data dikirim. Hanya HTTPS yang didukung.
    HostTitik akhir.
    passwordParameter ini disertakan dalam header permintaan. Atur parameter ini ke token yang dikembalikan setelah Anda memanggil operasi auth untuk mengautentikasi perangkat.
    Content-TypeJenis MIME dari data upstream yang dikirimkan perangkat ke IoT Platform. Nilai valid: application/octet-stream. Jika jenis MIME lain ditentukan, akan terjadi kesalahan.
    Content-LengthPanjang badan pesan HTTP.
    bodyData yang dikirimkan ke topik yang ditentukan. Untuk informasi lebih lanjut tentang format data, lihat Topik.

    Contoh respons:

    body:
    {
      "code": 0,
      "message": "success",
      "info": {
        "messageId": 892687****47040
      }
    }
    Tabel 5. Kode kesalahan
    codemessageDeskripsi
    10000kesalahan umumPesan kesalahan yang dikembalikan karena kesalahan tidak dikenal telah terjadi.
    10001kesalahan parameterPesan kesalahan yang dikembalikan karena satu atau lebih parameter tidak valid.
    20001token telah kedaluwarsaPesan kesalahan yang dikembalikan karena token telah kedaluwarsa. Anda harus memanggil operasi auth untuk mengautentikasi ulang perangkat dan mendapatkan token baru.
    20002token kosongPesan kesalahan yang dikembalikan karena tidak ada token yang ditentukan dalam header permintaan.
    20003kesalahan pengecekan tokenPesan kesalahan yang dikembalikan karena IoT Platform gagal mendapatkan informasi identitas perangkat berdasarkan token. Anda harus memanggil operasi auth untuk mengautentikasi ulang perangkat dan mendapatkan token baru.
    30001kesalahan pengiriman pesanPesan kesalahan yang dikembalikan karena perangkat gagal mengirimkan data.
    40000permintaan terlalu banyakPesan kesalahan yang dikembalikan karena jumlah permintaan yang dapat diproses oleh IoT Platform melebihi ambang batas throttling.

Contoh nilai

Untuk informasi lebih lanjut tentang cara menghubungkan klien HTTP dengan IoT Platform, lihat Akses IoT Platform menggunakan HTTP.