Bagikan melalui


Menyambungkan perangkat hilir ke gateway Azure IoT Edge

Berlaku untuk:Tanda centang IoT Edge 1.5 IoT Edge 1.5

Penting

IoT Edge 1.5 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai per 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Artikel ini memberikan instruksi untuk menyiapkan koneksi tepercaya antara perangkat hilir dan gateway transparan IoT Edge. Dalam skenario gateway transparan, satu atau beberapa perangkat mengirim pesan melalui satu perangkat gateway yang mempertahankan koneksi ke IoT Hub. Dalam artikel ini, istilah gateway dan gateway IoT Edge berarti perangkat IoT Edge yang dikonfigurasi sebagai gateway transparan.

Catatan

Perangkat hilir mengirim data langsung ke internet atau ke perangkat gateway (diaktifkan IoT Edge atau tidak). Perangkat anak dapat menjadi perangkat hilir atau perangkat gateway dalam topologi berlapis.

Anda menyiapkan koneksi gateway transparan dalam tiga langkah. Artikel ini menjelaskan langkah ketiga.

  1. Konfigurasikan perangkat gateway sebagai server sehingga perangkat hilir dapat terhubung dengan aman. Siapkan gateway untuk menerima pesan dari perangkat hilir dan merutekannya ke tujuan yang tepat. Untuk langkah-langkah tersebut, lihat Mengonfigurasi perangkat IoT Edge untuk bertindak sebagai gateway transparan.

  2. Buat identitas perangkat untuk perangkat hilir sehingga dapat mengautentikasi dengan IoT Hub. Konfigurasikan perangkat hilir untuk mengirim pesan melalui perangkat gateway. Untuk langkah-langkah tersebut, lihat Mengautentikasi perangkat hilir ke Azure IoT Hub.

  3. Sambungkan perangkat hilir ke perangkat gateway dan mulai mengirim pesan.

Artikel ini menjelaskan komponen koneksi perangkat hilir, seperti:

  • Keamanan lapisan transportasi (TLS) dan dasar-dasar sertifikat
  • Pustaka TLS yang bekerja di berbagai sistem operasi dan menangani sertifikat secara berbeda

Anda menelusuri sampel Azure IoT dalam bahasa pilihan Anda untuk membuat perangkat Anda mengirim pesan ke gateway.

Prasyarat

Dapatkan hal berikut untuk menyiapkan perangkat hilir Anda:

Catatan

Perangkat IoT yang terdaftar di IoT Hub dapat menggunakan modul kembar untuk mengisolasi berbagai proses, perangkat keras, atau fungsi pada satu perangkat. Gateway IoT Edge mendukung koneksi modul hilir menggunakan autentikasi kunci simetris, tetapi bukan autentikasi sertifikat X.509.

Memahami dasar-dasar TLS dan sertifikat

Menghubungkan perangkat hilir dengan aman ke IoT Edge mirip dengan komunikasi klien dan server aman lainnya melalui internet. Klien dan server berkomunikasi dengan aman melalui internet menggunakan Keamanan lapisan transportasi (TLS). TLS menggunakan konstruksi Infrastruktur kunci publik (PKI) standar yang disebut sertifikat. TLS adalah spesifikasi terperinci yang mencakup banyak topik yang terkait dengan mengamankan dua titik akhir. Bagian ini meringkas konsep yang Anda butuhkan untuk menghubungkan perangkat dengan aman ke gateway IoT Edge.

Ketika klien terhubung ke server, server menyajikan rantai sertifikat yang disebut rantai sertifikat server. Rantai sertifikat biasanya memiliki sertifikat otoritas sertifikat akar (CA), satu atau beberapa sertifikat CA menengah, dan sertifikat server. Klien mempercayai server dengan memverifikasi secara kriptografis seluruh rantai sertifikat server. Proses ini disebut validasi rantai server. Klien juga menantang server untuk membuktikan bahwa server memiliki kunci privat untuk sertifikat server, yang disebut bukti kepemilikan. Bersama-sama, validasi rantai server dan bukti kepemilikan disebut autentikasi server. Untuk memvalidasi rantai sertifikat server, klien memerlukan salinan sertifikat OS akar yang digunakan untuk menerbitkan sertifikat server. Saat menyambungkan ke situs web, browser telah dikonfigurasi sebelumnya dengan sertifikat CA umum, sehingga proses klien mulus.

Saat perangkat terhubung ke Azure IoT Hub, perangkat adalah klien dan layanan cloud IoT Hub adalah server. Layanan cloud IoT Hub menggunakan sertifikat CA akar yang disebut Baltimore CyberTrust Root, yang tersedia untuk umum dan digunakan secara luas. Karena sertifikat CA IoT Hub sudah diinstal di sebagian besar perangkat, banyak implementasi TLS (OpenSSL, Schannel, LibreSSL) secara otomatis menggunakannya selama validasi sertifikat server. Namun, perangkat yang tersambung ke IoT Hub dapat mengalami masalah saat menyambungkan ke gateway IoT Edge.

Saat perangkat tersambung ke gateway IoT Edge, perangkat hilir adalah klien dan perangkat gateway adalah server. Azure IoT Edge memungkinkan Anda membangun rantai sertifikat gateway sesuai kebutuhan. Anda dapat menggunakan sertifikat CA publik, seperti Baltimore, atau sertifikat CA root (atau internal) yang ditandatangani sendiri. Sertifikat CA publik sering memiliki biaya, sehingga biasanya digunakan dalam skenario produksi. Sertifikat CA yang ditandatangani sendiri lebih disukai untuk pengembangan dan pengujian. Sertifikat demo adalah sertifikat OS akar yang ditandatangani sendiri.

Saat Anda menggunakan sertifikat OS akar yang ditandatangani sendiri untuk gateway IoT Edge, Anda perlu menginstalnya atau menyediakannya ke semua perangkat hilir yang tersambung ke gateway.

Cuplikan layar penyiapan sertifikat gateway.

Untuk mempelajari selengkapnya tentang sertifikat IoT Edge dan implikasi produksi, lihat Detail penggunaan sertifikat IoT Edge.

Berikan sertifikat CA akar

Untuk memverifikasi sertifikat perangkat gateway, perangkat hilir memerlukan salinan sertifikat CA akarnya sendiri. Jika Anda menggunakan skrip di repositori git IoT Edge untuk membuat sertifikat pengujian, sertifikat CA akar disebut azure-iot-test-only.root.ca.cert.pem.

Jika Anda belum melakukannya, pindahkan file sertifikat ini ke direktori apa pun di perangkat hilir Anda. Pindahkan file dengan menginstal sertifikat CA di penyimpanan sertifikat sistem operasi, atau dengan merujuk sertifikat dalam aplikasi yang menggunakan Azure IoT SDK.

Gunakan layanan seperti Azure Key Vault atau alat seperti Protokol salin aman untuk memindahkan file sertifikat.

Memasang sertifikat di OS

Setelah Anda menyalin sertifikat OS akar ke perangkat hilir, pastikan aplikasi yang tersambung ke gateway dapat mengakses sertifikat.

Instal sertifikat CA root di penyimpanan sertifikat sistem operasi agar sebagian besar aplikasi dapat menggunakannya. Beberapa aplikasi, seperti Node.js, jangan gunakan penyimpanan sertifikat OS dan sebagai gantinya gunakan penyimpanan sertifikat internal runtime Node. Jika Anda tidak dapat menginstal sertifikat di tingkat sistem operasi, buka bagian menggunakan sertifikat dengan Azure IoT SDK .

Pasang sertifikat CA root pada Ubuntu atau Windows.

Gunakan perintah berikut untuk menginstal sertifikat CA pada host Ubuntu. Contoh ini menggunakan sertifikat azure-iot-test-only.root.ca.cert.pem dari artikel prasyarat dan mengasumsikan Anda telah menyalin sertifikat ke lokasi di perangkat hilir.

sudo cp <file path>/azure-iot-test-only.root.ca.cert.pem /usr/local/share/ca-certificates/azure-iot-test-only.root.ca.cert.pem.crt
sudo update-ca-certificates

Setelah selesai, Anda akan melihat Memperbarui sertifikat di /etc/ssl/certs... 1 ditambahkan, 0 dihapus; pesan selesai .

Menggunakan sertifikat dengan Azure IoT SDK

Azure IoT SDK terhubung ke perangkat IoT Edge menggunakan aplikasi sampel sederhana. Tujuan sampel adalah untuk menghubungkan klien perangkat dan mengirim pesan telemetri perangkat ke gateway, lalu menutup koneksi dan keluar.

Sebelum menggunakan sampel tingkat aplikasi, dapatkan item berikut:

  • String koneksi IoT Hub Anda, dari perangkat hilir Anda, dimodifikasi untuk mengarahkan ke perangkat gateway.

  • Sertifikat apa pun yang diperlukan untuk mengautentikasi perangkat hilir Anda ke IoT Hub. Untuk informasi selengkapnya, lihat Mengautentikasi perangkat hilir ke Azure IoT Hub.

  • Jalur lengkap ke sertifikat CA akar yang Anda salin dan simpan di suatu tempat di perangkat hilir Anda.

    Misalnya: <file path>/azure-iot-test-only.root.ca.cert.pem.

Sekarang Anda siap untuk menggunakan sertifikat dengan sampel dalam bahasa pilihan Anda:

Bagian ini menyediakan aplikasi sampel untuk menyambungkan klien perangkat Azure IoT Node.js ke gateway IoT Edge. Untuk aplikasi Node.js, Anda harus menginstal sertifikat OS akar di tingkat aplikasi seperti yang ditunjukkan di sini. Node.js aplikasi tidak menggunakan penyimpanan sertifikat sistem.

  1. Dapatkan sampel untuk edge_downstream_device.js dari SDK perangkat Azure IoT untuk repo sampel Node.js.
  2. Pastikan Anda memiliki semua prasyarat untuk menjalankan sampel dengan meninjau file readme.md.
  3. Dalam file edge_downstream_device.js, perbarui connectionString dan variabel edge_ca_cert_path.
  4. Lihat dokumentasi SDK untuk petunjuk tentang cara menjalankan sampel di perangkat Anda.

Untuk memahami sampel yang Anda jalankan, cuplikan kode berikut adalah cara SDK klien membaca file sertifikat dan menggunakannya untuk membuat koneksi TLS yang aman:

// Provide the Azure IoT device client via setOptions with the X509
// Edge root CA certificate that was used to setup the Edge runtime
var options = {
    ca : fs.readFileSync(edge_ca_cert_path, 'utf-8'),
};

Menguji koneksi gateway

Jalankan perintah sampel ini pada perangkat hilir untuk menguji bahwa ia dapat tersambung ke perangkat gateway:

openssl s_client -connect mygateway.contoso.com:8883 -CAfile <CERTDIR>/certs/azure-iot-test-only.root.ca.cert.pem -showcerts

Perintah ini memeriksa koneksi melalui MQTTS (port 8883). Jika Anda menggunakan protokol yang berbeda, sesuaikan perintah untuk AMQPS (5671) atau HTTPS (443).

Hasil perintah ini bisa panjang dan mencakup informasi tentang semua sertifikat dalam rangkaian. Jika koneksi berhasil, Anda akan melihat baris seperti Verification: OK atau Verify return code: 0 (ok).

Cuplikan layar saat memverifikasi koneksi gateway.

Memecahkan masalah koneksi gateway

Jika koneksi perangkat hilir Anda ke perangkat gatewaynya tidak stabil, pertimbangkan pertanyaan-pertanyaan ini untuk membantu memperbaiki masalah.

  • Apakah nama host gateway dalam string koneksi sama dengan nilai hostname dalam file konfigurasi IoT Edge di perangkat gateway?
  • Bisakah nama host gateway dipetakan menjadi alamat IP? Perbaiki koneksi terputus-terputus dengan menggunakan DNS atau menambahkan entri file host pada perangkat hilir.
  • Apakah port komunikasi terbuka di dalam firewall Anda? Pastikan port protokol yang diperlukan (MQTTS:8883, AMQPS:5671, HTTPS:433) terbuka antara perangkat hilir dan perangkat IoT Edge transparan.

Langkah berikutnya

Pelajari cara IoT Edge memperluas kemampuan offline ke perangkat hilir.