

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Hubungkan aplikasi ke broker EMQX di Edge AWS IoT SiteWise
<a name="connect-app-to-broker"></a>

Broker EMQX menggunakan Transport Layer Security (TLS) pada port 8883 untuk mengenkripsi semua komunikasi, memastikan data Anda tetap terlindungi selama transmisi. Bagian ini memandu Anda melalui langkah-langkah untuk membangun koneksi antara aplikasi Anda dan broker EMQX. Mengikuti langkah-langkah ini membantu menjaga integritas dan kerahasiaan data industri Anda. Proses koneksi melibatkan dua pendekatan utama: menggunakan penemuan IP otomatis melalui komponen, atau mengonfigurasi nama DNS dan alamat IP secara manual sebagai Nama Alternatif Subjek (SANs) dalam sertifikat TLS Anda. Setiap metode memiliki kelebihannya sendiri tergantung pada pengaturan jaringan dan persyaratan keamanan Anda. Dokumentasi ini akan memandu Anda melalui kedua opsi.

**Topics**
+ [Konfigurasikan TLS untuk koneksi aman ke broker EMQX di Edge AWS IoT SiteWise](#configure-tls-emqx-broker)
+ [Uji koneksi broker EMQX di Edge AWS IoT SiteWise](#test-emqx-connection)
+ [Gunakan CA Anda sendiri](#configure-tls-custom-ca)
+ [Buka port 8883 untuk koneksi firewall eksternal](#emqx-firewall)

## Konfigurasikan TLS untuk koneksi aman ke broker EMQX di Edge AWS IoT SiteWise
<a name="configure-tls-emqx-broker"></a>

Secara default, AWS IoT Greengrass menghasilkan sertifikat server TLS untuk broker EMQX yang ditandatangani oleh otoritas sertifikat perangkat inti (CA). Untuk informasi selengkapnya, lihat [Menghubungkan perangkat klien ke perangkat AWS IoT Greengrass Core dengan broker MQTT](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html).

### Ambil sertifikat TLS
<a name="configure-tls-retrieve-certificate"></a>

Untuk mendapatkan sertifikat CA, jalankan perintah berikut pada host gateway:

------
#### [ Linux ]

Jalankan perintah berikut dalam sesi shell pada host gateway:

```
/greengrass/v2/bin/swe-emqx-cli cert
```

Perintah ini menampilkan lokasi sertifikat dan mencetak konten sertifikat.

Anda dapat menyimpan sertifikat ke file menggunakan perintah ini:

```
/greengrass/v2/bin/swe-emqx-cli cert --output /path/to/certificate.pem
```

------
#### [ Windows ]

Jalankan perintah berikut dalam PowerShell sesi di host gateway:

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert
```

Perintah ini menampilkan lokasi sertifikat dan mencetak konten sertifikat.

Anda dapat menyimpan sertifikat ke file menggunakan perintah ini:

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert --output C:\path\to\certificate.pem
```

CLI secara otomatis menempatkan sertifikat terlepas dari jalur yang tepat pada sistem Anda.

------

Salin isi file ca.pem ke aplikasi eksternal yang Anda sambungkan ke broker. Simpan sebagai `BrokerCoreDeviceCA.pem`.

### Tambahkan names/IP alamat DNS khusus ke sertifikat server TLS
<a name="configure-tls-custom-dns-ip"></a>

Nama alternatif subjek (SAN) pada sertifikat yang dihasilkan oleh AWS IoT Greengrass adalah`localhost`. Saat membuat koneksi TLS dari luar host gateway, langkah verifikasi TLS gagal karena nama host broker tidak cocok dengan nama host `localhost` pada sertifikat server.

Untuk mengatasi masalah nama host yang tidak cocok, AWS IoT Greengrass sediakan dua cara untuk mengelola titik akhir perangkat inti. Bagian ini mencakup kedua opsi. Untuk informasi selengkapnya, lihat [Mengelola titik akhir perangkat inti](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html) di *Panduan AWS IoT Greengrass Version 2 Pengembang*.
+ Untuk terhubung ke broker EMQX menggunakan alamat IP perangkat inti, gunakan bagian Penemuan IP Otomatis.
+ Untuk terhubung ke broker EMQX menggunakan nama DNS alih-alih alamat IP, Anda menggunakan bagian Manajemen manual.

------
#### [ Automated IP discovery ]

Opsi ini memungkinkan perangkat inti Anda untuk secara otomatis menemukan alamat IP-nya dan menambahkannya sebagai Nama Alternatif Subjek (SAN) ke sertifikat broker.

1. Tambahkan `aws.greengrass.clientdevices.IPDetector` komponen ke penerapan perangkat inti Anda.

1. Menerapkan perubahan ke perangkat Anda

1. Tunggu hingga penerapan selesai.

   Setelah penerapan selesai, Anda dapat membuat koneksi TLS yang aman menggunakan alamat IP broker.

   Alamat IP secara otomatis ditambahkan sebagai SAN ke sertifikat broker.

------
#### [ Manual DNS and IP Configuration ]

Anda dapat menambahkan nama DNS dan alamat IP secara manual sebagai Nama Alternatif Subjek (SANs) ke sertifikat TLS Anda. Metode ini berguna ketika Anda telah mengonfigurasi nama DNS untuk host gateway Anda.

**penting**  
Jika Anda menggunakan IPDetector komponen, hapus dari penerapan Anda sebelum melanjutkan. IPDetectorKomponen mengesampingkan konfigurasi titik akhir manual.

**Untuk mengonfigurasi titik akhir secara manual**

1. <a name="sitewise-open-console"></a>Navigasikan ke [konsol AWS IoT SiteWise](https://console.aws.amazon.com/iotsitewise/) tersebut.

1. Di navigasi kiri, pilih **gateway Edge** di bagian **Edge**.

1. Pilih gateway untuk dikonfigurasi.

1. Di bagian **konfigurasi gateway Edge**, pilih url perangkat inti **Greengrass** Anda. Halaman perangkat inti muncul.

1. Pilih tab **Perangkat klien**.

1. Pilih **Kelola titik akhir**.

1. Di kotak dialog Kelola titik akhir, masukkan nama DNS dan alamat IP apa pun yang ingin Anda tambahkan sebagai. SANs Gunakan port 8883.

1. Pilih **Perbarui**.

Sertifikat server TLS broker diperbarui secara otomatis untuk menyertakan titik akhir baru Anda.

**Untuk memverifikasi pembaruan sertifikat server TLS menggunakan Linux**

1. Mulai sesi shell di host gateway Anda.

   ```
   docker exec emqx openssl x509 -in ./data/cert.pem -text -noout | grep -A1 "Subject Alternative Name"
   ```

1. Perintah mengembalikan output yang mirip dengan berikut ini:

   ```
   X509v3 Subject Alternative Name: 
   DNS:endpoint_you_added, DNS:localhost
   ```

1. Verifikasi bahwa titik akhir Anda muncul dalam daftar. SANs

**Untuk memverifikasi pembaruan sertifikat server TLS menggunakan Windows**

1. Mulai sesi shell di host gateway Anda.

   ```
   (Get-PfxCertificate -FilePath "C:\greengrass\v2\work\aws.greengrass.clientdevices.mqtt.EMQX\v2\data\cert.pem").Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" } | ForEach-Object { "Subject Alternative Name:", ($_.Format($true) -split "`n")[0..1] }
   ```

1. Perintah mengembalikan output yang mirip dengan berikut ini:

   ```
   Subject Alternative Name:
   DNS Name=your-endpoint
   DNS Name=localhost
   ```

1. Verifikasi bahwa titik akhir yang Anda tambahkan ada dalam daftar. SANs

------

## Uji koneksi broker EMQX di Edge AWS IoT SiteWise
<a name="test-emqx-connection"></a>

Setelah mengonfigurasi broker EMQX Anda dengan sertifikat TLS dan kredensyal otentikasi, penting untuk memverifikasi bahwa pengaturan Anda berfungsi dengan benar. Menguji koneksi membantu memastikan bahwa konfigurasi keamanan Anda diterapkan dengan benar dan klien dapat berhasil membuat koneksi terenkripsi ke broker. Bagian ini menunjukkan cara menguji koneksi broker Anda menggunakan klien antarmuka baris perintah Mosquitto (CLI), alat klien MQTT yang banyak digunakan yang mendukung enkripsi dan otentikasi TLS.

### Gunakan klien Mosquitto CLI untuk menguji koneksi broker EMQX
<a name="test-emqx-connection-mosquitto"></a>

Pada langkah ini kita akan menggunakan klien CLI mosquitto untuk menguji pengaturan kita dan memastikan kita dapat terhubung dengan sukses ke broker menggunakan nama pengguna dan kata sandi yang kita buat sebelumnya. Untuk mendapatkan langkah-langkah `BrokerCoreDeviceCA.pem` berikut di bawah Langkah 3: Menyiapkan TLS.

```
mosquitto_sub -h hostname|ip address \
    -p 8883 \
    -t "#" \
    -q 1 \
    -u username -P password \
    --cafile BrokerCoreDeviceCA.pem
```

**catatan**  
Anda mungkin mendapatkan kesalahan SSL: Verify jika hostname/IP alamat yang Anda sambungkan tidak cocok dengan Nama Alternatif Subjek (SAN) yang ada di sertifikat CA yang Anda berikan ke klien. Lihat “Menambahkan names/IP alamat DNS khusus ke sertifikat server TLS” di bawah Langkah 3: Menyiapkan TLS untuk cara mendapatkan sertifikat dengan SAN yang benar.

Pada titik ini, semua pengguna memiliki akses untuk mempublikasikan dan berlangganan semua topik di broker. Lanjut ke [Siapkan aturan otorisasi untuk AWS IoT SiteWise Edge di EMQX](authorization-rules-emqx-broker.md).

## Gunakan CA Anda sendiri
<a name="configure-tls-custom-ca"></a>

AWS IoT Greengrass menguraikan cara mengonfigurasi komponen autentikasi perangkat klien Anda sendiri untuk menggunakan otoritas sertifikat (CA) Anda sendiri. Komponen auth perangkat klien (`aws.greengrass.clientdevices.Auth`) mengautentikasi perangkat klien dan mengotorisasi tindakan perangkat klien. Untuk informasi selengkapnya, lihat [Menggunakan otoritas sertifikat Anda sendiri](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html#use-your-own-CA) di *Panduan AWS IoT Greengrass Version 2 Pengembang*.

Untuk menggunakan CA Anda sendiri, tambahkan `aws.greengrass.clientdevices.Auth` komponen ke penerapan Anda sehingga Anda dapat menentukan konfigurasi kustom.

## Buka port 8883 untuk koneksi firewall eksternal
<a name="emqx-firewall"></a>

------
#### [ Linux ]

Dalam aturan firewall host Linux Anda, tambahkan aturan masuk untuk port 8883 untuk memungkinkan koneksi masuk dari luar host gateway. Jika ada firewall di tempat, pastikan bahwa koneksi TLS masuk pada port 8883 diperbolehkan.

------
#### [ Windows ]

Dalam aturan firewall Microsoft Windows host Anda, tambahkan aturan masuk untuk port 8883 untuk mengizinkan koneksi masuk dari luar host gateway. Pastikan aturannya adalah aturan izinkan, dari jenis port, yang menentukan port 8883. Anda dapat mengonfigurasi ini sesuai dengan konfigurasi jaringan Anda untuk memungkinkan koneksi dari aplikasi eksternal Anda ke broker.

------