全部产品
Search
文档中心

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

更新时间:Jul 02, 2025

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

Prasyarat

  • Sebuah instance Exclusive Enterprise Edition telah dibeli. Dalam contoh ini, instance tersebut dibeli di wilayah China (Shanghai). Untuk informasi lebih lanjut, lihat Beli Instance Enterprise Edition.

  • Sertifikat yang diperlukan untuk verifikasi dua arah telah dipersiapkan.

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

Informasi latar belakang

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

Untuk informasi lebih lanjut tentang verifikasi dan komunikasi antara gateway MQTT dan perangkat, lihat Gateway MQTT.

Persiapan

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

Buat gateway dan tambahkan perangkat

  1. Buat gateway MQTT: Di kotak dialog Tambah Gateway, atur parameter Server Certificate ke isi dari file server.crt, parameter Private Key of Server Certificate ke isi dari file server.key, dan parameter Device Root Certificate ke isi dari file root-ca.crt. Kemudian, konfigurasikan parameter lainnya seperti ditunjukkan pada gambar berikut.

    image

  2. Di halaman Gateway, salin URL di kolom Gateway URL dari gateway.

    image

  3. Tambahkan perangkat ke produk gateway MQTT. Dalam contoh ini, sebuah 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 sampel aiot-java-demo dari paket kode.

    • 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 dari proyek berisi file program berikut yang diperlukan untuk melakukan verifikasi dua arah:

      • SslUtil.java: membaca sertifikat perangkat.

      • Mqtt5TlsApp.java: menghubungkan perangkat ke IoT Platform.

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

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

  5. Di direktori /src/main/resources dari proyek, impor file sertifikat berikut: root-ca.crt (sertifikat root), client.key (kunci privat perangkat), dan client.crt (sertifikat perangkat).

    image

  6. Di file /src/main/java/com/aliyun/iot/SslUtil.java dari proyek, modifikasi 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 dari proyek dan modifikasi parameter koneksi perangkat.

    ......
            // Parameter koneksi MQTT
            String userName = "device01";
            String password = "hello456";
            String clientId = "test01_client1";
    
            // Jalur tempat direktori root disimpan.
            String caCertPath = "src/main/resources/root-ca.crt";
            // Jalur tempat sertifikat perangkat disimpan.
            String clientCertPath= "src/main/resources/client.crt";
            // Jalur tempat kunci privat 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 klien. ID klien harus memiliki panjang 1 hingga 64 karakter. Kami merekomendasikan Anda menggunakan alamat MAC atau nomor seri (SN) perangkat sebagai ID klien.

    caCertPath

    src/main/resources/root-ca.crt

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

    clientCertPath

    src/main/resources/client.crt

    Jalur proyek tempat file sertifikat perangkat client.crt disimpan.

    clientKeyPath

    src/main/resources/client.key

    Jalur proyek tempat file kunci privat perangkat client.key disimpan.

    broker

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

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

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

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

    Catatan

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

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

    image