All Products
Search
Document Center

IoT Platform:Menghubungkan perangkat gateway MQTT menggunakan verifikasi dua arah berbasis sertifikat X.509

Last Updated:Aug 21, 2026

Saat menghubungkan perangkat ke IoT Platform melalui gateway Message Queuing Telemetry Transport (MQTT), Anda dapat mengaktifkan verifikasi dua arah antara perangkat dan IoT Platform untuk memverifikasi identitas perangkat tersebut. Topik ini menjelaskan cara menghubungkan perangkat ke IoT Platform menggunakan verifikasi dua arah berbasis sertifikat X.509. Dalam contoh ini, gateway MQTT dibuat dengan parameter Authentication Type diatur ke One-party Verification dan parameter Enable X.509 certificate-based Device Verification diatur ke Yes, serta disediakan kode contoh Java.

Prasyarat

  • Instans Exclusive Enterprise Edition telah dibeli. Dalam contoh ini, instans Exclusive Enterprise Edition dibeli di wilayah China (Shanghai). Untuk informasi selengkapnya, lihat Purchase an Enterprise Edition instance.

  • Sertifikat yang diperlukan untuk verifikasi dua arah telah disiapkan.

    Dalam contoh ini, digunakan file sertifikat berikut: file sertifikat root root-ca.crt, file kunci privat sisi server server.key, file sertifikat sisi server server.crt, file kunci privat sisi perangkat client.key, dan file sertifikat perangkat client.crt.

Informasi latar belakang

IoT Platform menyediakan gateway MQTT dan memungkinkan penggunaan sertifikat X.509 serta sertifikat kustom untuk memverifikasi dan menghubungkan perangkat ke IoT Platform guna berkomunikasi. Fitur ini membantu IoT Platform memenuhi kebutuhan berbagai skenario bisnis IoT.

Untuk informasi selengkapnya mengenai verifikasi dan komunikasi antara gateway MQTT dan perangkat, lihat MQTT gateways.

Persiapan

Dalam contoh ini, Java digunakan untuk mengembangkan program. Lingkungan pengembangan Java yang memenuhi persyaratan berikut telah disiapkan:

Buat gateway dan tambahkan perangkat

  1. Buat gateway MQTT: Pada kotak dialog Add Gateway, atur parameter Server Certificate ke konten file server.crt, parameter Private Key of Server Certificate ke konten file server.key, dan parameter Device Root Certificate ke konten file root-ca.crt. Kemudian, konfigurasikan parameter lainnya sebagai berikut:

    • Atur Protocol ke MQTT

    • Atur Custom Port ke 1883

    • Atur Authentication Type ke One-party Verification

    • Atur Enable Data Parsing ke No

    • Atur Enable Device X.509 Certificate Authentication ke Yes

    • Atur Enable OCSP ke Not Enabled

  2. Pada halaman Gateway, salin URL dari kolom Gateway URL. Contoh format Gateway URL adalah iot-{gateway identifier}.igw.iothub.aliyuncs.com, dengan nomor port 1883.

  3. Tambahkan perangkat ke produk gateway MQTT. Dalam contoh ini, perangkat dengan parameter MQTT Username diatur ke device01 dan parameter MQTT Password diatur ke hello456 ditambahkan.

Kembangkan program perangkat

  1. Unduh paket kode aiot-java-dual-auth-demo dan ekstrak paket tersebut.

  2. Buka IntelliJ IDEA dan impor proyek contoh aiot-java-demo dari paket kode tersebut.

    • Tambahkan dependensi Maven ke file pom.xml. Dalam contoh ini, dependensi berikut digunakan:

         <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.mqttv5.client</artifactId>
            <version>1.2.5</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.paho</groupId>
              <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
              <version>1.2.0</version>
          </dependency>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
          </dependency>
      
          <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk15on</artifactId>
            <version>1.47</version>
          </dependency>
    • Direktori /src/main/java/com/aliyun/iot proyek berisi file program berikut yang diperlukan untuk verifikasi dua arah:

      • SslUtil.java: membaca sertifikat perangkat.

      • Mqtt5TlsApp.java: menghubungkan perangkat ke IoT Platform.

  3. Pada file pom.xml proyek, klik Load Maven Changes untuk mengunduh paket dependensi.

  4. Pada direktori /src/main proyek, buat folder bernama resources.

  5. Pada direktori /src/main/resources proyek, impor file sertifikat berikut: root-ca.crt yang berisi sertifikat root, client.key yang berisi kunci privat sisi perangkat, dan client.crt yang berisi sertifikat perangkat.

  6. Pada file /src/main/java/com/aliyun/iot/SslUtil.java proyek, ubah kunci yang digunakan untuk menghasilkan sertifikat.

    Penting

    Nilai 123456 yang ditentukan untuk fungsi clientKs.setKeyEntry() menunjukkan kunci yang digunakan untuk menghasilkan sertifikat. Ubah nilai tersebut sesuai dengan skenario bisnis Anda.

    ......
          // Ganti 123456 dengan nilai kunci aktual.
          clientKs.setKeyEntry("private-key", key.getPrivate(), "123456".toCharArray(), new java.security.cert.Certificate[]{clientCertificate});
    ......
  7. Buka file /src/main/java/com/aliyun/iot/Mqtt5TlsApp.java proyek dan ubah parameter koneksi perangkat.

    ......
            // Parameter koneksi MQTT
            String userName = "device01";
            String password = "hello456";
            String clientId = "test01_client1";
    
            // Path tempat direktori root disimpan.
            String caCertPath = "src/main/resources/root-ca.crt";
            // Path tempat sertifikat perangkat disimpan.
            String clientCertPath= "src/main/resources/client.crt";
            // Path tempat kunci privat sisi perangkat disimpan.
            String clientKeyPath="src/main/resources/client.key";
    
            // URL gateway MQTT.
            String broker = "ssl://iot-*******.igw.iothub.aliyuncs.com:1883";
    ......

    Parameter

    Contoh

    Deskripsi

    userName

    device01

    Nilai parameter MQTT Username dari perangkat yang ditambahkan.

    password

    hello456

    Nilai parameter MQTT Password dari perangkat yang ditambahkan.

    clientId

    test01_client1

    (Opsional) ID client. ID client harus terdiri dari 1 hingga 64 karakter. Kami menyarankan Anda menggunakan alamat MAC atau nomor seri (SN) perangkat sebagai ID client.

    caCertPath

    src/main/resources/root-ca.crt

    Path proyek tempat file sertifikat root perangkat root-ca.crt disimpan.

    clientCertPath

    src/main/resources/client.crt

    Path proyek tempat file sertifikat perangkat client.crt disimpan.

    clientKeyPath

    src/main/resources/client.key

    Path proyek tempat file kunci privat sisi perangkat client.key disimpan.

    broker

    ssl://iot-*******.igw.iothub.aliyuncs.com:1883

    Titik akhir gateway MQTT tempat Anda ingin menghubungkan perangkat. Format: ssl://${Gateway endpoint}:${Port number}.

    Ganti ${Gateway endpoint} dan ${Port number} dengan titik akhir dan nomor port kustom dari gateway URL yang telah Anda simpan.

  8. Jalankan file program Mqtt5TlsApp.java untuk melakukan verifikasi dua arah antara perangkat dan IoT Platform.

    Catatan

    Dalam contoh ini, kode Thread.sleep(20000); ditambahkan ke file Mqtt5TlsApp.java. Kode tersebut menghentikan tugas program Mqtt5TlsApp.java dan memutus koneksi perangkat dari IoT Platform 20 detik setelah program dijalankan. Dalam skenario aktual, Anda dapat menulis kode kustom untuk menghubungkan atau memutus perangkat.

    Output berikut menunjukkan hasilnya. Setelah perangkat lolos verifikasi, perangkat terhubung ke IoT Platform.

    broker: ssl://iot-xxx.igw.iothub.aliyuncs.com:1883 Connected
    broker available ability, retain is available: true
    broker available ability, shared subscription is available: true
    publish: content finish
    Disconnected