Membuat dan memprovisikan IoT Edge untuk Linux di perangkat Windows menggunakan sertifikat X.509

Berlaku untuk:Tanda centang IoT Edge 1.4 IoT Edge 1.4

Penting

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

Artikel ini memberikan instruksi menyeluruh guna mendaftarkan dan memprovisikan IoT Edge untuk Linux di perangkat Windows.

Setiap perangkat yang tersambung ke hub IoT memiliki ID perangkat yang digunakan untuk melacak komunikasi cloud-to-device atau device-to-cloud. Anda mengonfigurasi perangkat dengan informasi koneksinya, yang mencakup nama host hub IoT, ID perangkat, dan informasi yang digunakan perangkat untuk mengautentikasi ke IoT Hub.

Langkah-langkah dalam artikel ini melalui proses yang disebut penyediaan manual, di mana Anda menghubungkan satu perangkat ke hub IoT-nya. Untuk penyediaan manual, Anda memiliki dua opsi untuk mengautentikasi perangkat IoT Edge:

  • Kunci simetris: Saat Anda membuat identitas perangkat baru di IoT Hub, layanan ini membuat dua kunci. Anda menempatkan salah satu kunci pada perangkat, dan menyajikan kunci ke IoT Hub saat mengautentikasi.

    Metode autentikasi ini lebih cepat untuk memulai, tetapi tidak sama amannya.

  • X.509 self-signed: Anda membuat dua sertifikat identitas X.509 dan menempatkannya di perangkat. Saat Anda membuat identitas perangkat baru di IoT Hub, Anda menyediakan thumbprint dari kedua sertifikat. Saat perangkat mengautentikasi ke IoT Hub, perangkat menyajikan satu sertifikat dan IoT Hub memverifikasi bahwa sertifikat cocok dengan thumbprint-nya.

    Metode autentikasi ini lebih aman dan disarankan untuk skenario produksi.

Artikel ini mencakup penggunaan sertifikat X.509 sebagai metode autentikasi Anda. Jika Anda ingin menggunakan kunci simetris, lihat Membuat dan memprovisikan IoT Edge untuk Linux di perangkat Windows menggunakan kunci simetris.

Catatan

Jika Anda memiliki banyak perangkat untuk disiapkan dan tidak ingin memprovisikan masing-masing perangkat secara manual, gunakan salah satu artikel berikut untuk mempelajari cara kerja IoT Edge dengan layanan provisi perangkat IoT Hub:

Prasyarat

Artikel ini mencakup mendaftarkan perangkat IoT Edge Anda dan memasang IoT Edge untuk Linux di Windows. Tugas-tugas ini memiliki prasyarat dan utilitas berbeda yang digunakan untuk menyelesaikannya. Pastikan Anda memiliki semua prasyarat yang tercakup sebelum melanjutkan.

Alat manajemen perangkat

Anda dapat menggunakan portal Azure, Visual Studio Code, atau Azure CLI untuk langkah-langkah mendaftarkan perangkat Anda. Setiap utilitas memiliki prasyaratnya sendiri atau mungkin perlu diinstal:

Hub IoT gratis atau standar di langganan Azure Anda.

Persyaratan perangkat

Perangkat Windows dengan persyaratan minimum berikut:

  • Persyaratan Sistem

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 dan Windows Server 2019 build minimum 17763 dengan semua pembaruan kumulatif saat ini terinstal.
  • Persyaratan perangkat keras

    • Memori Kosong Minimum: 1 GB
    • Ruang Disk Kosong Minimum: 10 GB
  • Dukungan virtualisasi

  • Dukungan Jaringan

    • Windows Server tidak dilengkapi dengan sakelar default. Sebelum Anda dapat menyebarkan EFLOW untuk perangkat Windows Server, Anda harus membuat sakelar virtual. Untuk informasi selengkapnya, lihat Membuat sakelar virtual untuk Linux di Windows.
    • Versi Windows Desktop hadir dengan sakelar default yang dapat digunakan untuk pemasangan EFLOW. Jika diperlukan, Anda dapat membuat sakelar virtual kustom Anda sendiri.

Tip

Jika Anda ingin menggunakan modul Linux GPU terakselerasi di Azure IoT Edge untuk Linux pada penyebaran Windows Anda, ada beberapa opsi konfigurasi yang perlu dipertimbangkan.

Anda perlu memasang driver yang benar sesuai dengan arsitektur GPU Anda, dan Anda mungkin memerlukan akses ke build Windows Insider Program. Untuk menentukan kebutuhan konfigurasi Anda dan mengikuti prasyarat ini, lihat akselerasi GPU untuk Azure IoT Edge untuk Linux di Windows.

Pastikan Anda meluangkan waktu untuk memenuhi prasyarat akselerasi GPU sekarang. Anda perlu memulai ulang proses instalasi jika memutuskan ingin akselerasi GPU selama instalasi.

Alat pengembang

Siapkan perangkat target Anda untuk penginstalan Azure IoT Edge untuk Linux di Windows dan penyebaran komputer virtual Linux:

  1. Tetapkan kebijakan eksekusi pada perangkat target ke AllSigned. Anda dapat memeriksa kebijakan eksekusi saat ini dalam permintaan PowerShell yang ditingkatkan menggunakan perintah berikut:

    Get-ExecutionPolicy -List
    

    Jika kebijakan eksekusi local machine tidak AllSigned, Anda dapat menetapkan kebijakan eksekusi menggunakan:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Untuk informasi selengkapnya tentang Azure IoT Edge untuk Linux pada modul Windows PowerShell, lihat referensi fungsi PowerShell.

Hasilkan sertifikat identitas perangkat

Penyediaan manual dengan sertifikat X.509 memerlukan IoT Edge versi 1.0.10 atau yang lebih baru.

Saat Anda memprovisikan perangkat IoT Edge dengan sertifikat X.509, Anda menggunakan apa yang disebut sertifikat identitas perangkat. Sertifikat ini hanya digunakan untuk menyediakan perangkat IoT Edge dan mengautentikasi perangkat dengan Azure IoT Hub. Ini adalah sertifikat daun yang tidak menandatangani sertifikat lain. Sertifikat identitas perangkat terpisah dari sertifikat otoritas sertifikat (CA) yang disajikan perangkat IoT Edge ke modul atau perangkat hilir untuk verifikasi.

Untuk autentikasi sertifikat X.509, informasi autentikasi setiap perangkat disediakan dalam bentuk thumbprint yang diambil dari sertifikat identitas perangkat Anda. Thumbprint ini diberikan kepada IoT Hub pada saat pendaftaran perangkat sehingga layanan dapat mengenali perangkat saat terhubung.

Untuk informasi selengkapnya tentang cara sertifikat CA digunakan di perangkat IoT Edge, lihat Memahami bagaimana Azure IoT Edge menggunakan sertifikat.

Anda memerlukan file berikut untuk penyediaan manual dengan X.509:

  • Dua sertifikat identitas perangkat dengan sertifikat kunci privat yang cocok dalam format .cer atau .pem. Anda memerlukan dua sertifikat identitas perangkat untuk rotasi sertifikat. Praktik terbaik adalah menyiapkan dua sertifikat identitas perangkat yang berbeda dengan tanggal kedaluwarsa yang berbeda. Jika satu sertifikat kedaluwarsa, sertifikat lainnya masih valid dan memberi Anda waktu untuk memutar sertifikat yang kedaluwarsa.

    Satu set sertifikat dan file kunci disediakan untuk runtime IoT Edge. Saat Anda membuat sertifikat identitas perangkat, atur nama umum sertifikat (CN) dengan ID perangkat yang Anda inginkan untuk perangkat di hub IoT Anda.

  • Thumbprint diambil dari kedua sertifikat identitas perangkat. IoT Hub memerlukan dua thumbprint saat mendaftarkan perangkat IoT Edge. Anda hanya dapat menggunakan satu sertifikat untuk pendaftaran. Untuk menggunakan satu sertifikat, atur thumbprint sertifikat yang sama untuk thumbprint utama dan sekunder saat mendaftarkan perangkat.

    Nilai thumbprint adalah karakter 40 hex untuk hash SHA-1 atau karakter 64 hex untuk hash SHA-256. Kedua thumbprint disediakan untuk IoT Hub pada saat pendaftaran perangkat.

    Salah satu cara untuk mengambil thumbprint dari sertifikat adalah dengan perintah openssl berikut:

    openssl x509 -in <certificate filename>.pem -text -fingerprint
    

    Thumbprint disertakan dalam output perintah ini. Contohnya:

    SHA1 Fingerprint=D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
    

Jika Anda tidak memiliki sertifikat, Anda bisa Membuat sertifikat demo untuk menguji fitur perangkat IoT Edge. Ikuti instruksi dalam artikel tersebut untuk menyiapkan skrip pembuatan sertifikat, membuat sertifikat OS akar, dan membuat sertifikat identitas perangkat IoT Edge. Untuk pengujian, Anda dapat membuat satu sertifikat identitas perangkat dan menggunakan thumbprint yang sama untuk nilai thumbprint primer dan sekunder saat mendaftarkan perangkat di IoT Hub.

Mendaftarkan perangkat Anda

Anda dapat menggunakan portal Microsoft Azure, Visual Studio Code, atau CLI Azure untuk mendaftarkan perangkat, tergantung pada preferensi Anda.

Di hub IoT Anda di portal Azure, perangkat IoT Edge dibuat dan dikelola secara terpisah dari perangkat IoT yang tidak diaktifkan edge.

  1. Masuk ke portal Azure dan navigasikan ke IoT hub Anda.

  2. Di panel kiri, pilih Perangkat dari menu, lalu pilih Tambahkan Perangkat.

  3. Pada halaman Buat perangkat, berikan informasi berikut ini:

    • Membuat ID perangkat deskriptif. Catat ID perangkat ini, saat Anda menggunakannya nanti.
    • Centang kotak IoT Edge Device .
    • Pilih X.509 yang Ditandatangani Sendiri sebagai jenis autentikasi.
    • Berikan thumbprint sertifikat identitas utama dan sekunder. Nilai thumbprint adalah karakter 40 hex untuk hash SHA-1 atau karakter 64 hex untuk hash SHA-256. portal Azure hanya mendukung nilai heksadesimal. Hapus pemisah kolom dan spasi dari nilai thumbprint sebelum memasukkannya di portal. Misalnya, D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12 dimasukkan sebagai D268D9049F1A4D6AFD8477687BC633C032375112.

    Tip

    Jika Anda menguji dan ingin menggunakan satu sertifikat, Anda dapat menggunakan sertifikat yang sama untuk thumbprint primer dan sekunder.

  4. Pilih Simpan.

Setelah Anda memiliki perangkat yang terdaftar di IoT Hub, ambil informasi yang Anda gunakan untuk menyelesaikan instalasi dan provisi runtime IoT Edge.

Melihat perangkat terdaftar dan mengambil informasi provisi

Perangkat yang menggunakan autentikasi sertifikat X.509 memerlukan nama IoT hub, nama perangkat, dan file sertifikat mereka untuk menyelesaikan instalasi dan provisi runtime IoT Edge.

Perangkat berkemampuan tepi yang tersambung ke hub IoT Anda tercantum di halaman Perangkat . Anda dapat memfilter daftar menurut jenis perangkat perangkat perangkat IoT Edge.

Pasang IoT Edge

Sebarkan Azure IoT Edge untuk Linux di Windows di perangkat target Anda.

Catatan

Proses PowerShell berikut menjabarkan cara menyebarkan IoT Edge untuk Linux di Windows ke perangkat lokal. Untuk menyebarkan ke perangkat target jarak jauh menggunakan PowerShell, Anda dapat menggunakan PowerShell Jarak Jauh untuk membuat koneksi ke perangkat jarak jauh dan menjalankan perintah ini dari jarak jauh pada perangkat tersebut.

  1. Dalam sesi PowerShell yang ditinggikan, jalankan salah satu perintah berikut tergantung pada arsitektur perangkat target Anda untuk mengunduh IoT Edge untuk Linux di Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. Instal IoT Edge untuk Linux di Windows di perangkat Anda.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Anda dapat menentukan pemasangan IoT Edge kustom untuk Linux di Windows dan direktori VHDX dengan menambahkan parameter INSTALLDIR="<FULLY_QUALIFIED_PATH>" dan VHDXDIR="<FULLY_QUALIFIED_PATH>" ke perintah instal. Misalnya, jika Anda ingin menggunakan folder D:\EFLOW untuk penginstalan dan D:\EFLOW-VHDX untuk VHDX, Anda dapat menggunakan cmdlet PowerShell berikut.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Tetapkan kebijakan eksekusi pada perangkat target ke AllSigned jika belum ada. Lihat prasyarat PowerShell untuk perintah untuk memeriksa kebijakan eksekusi saat ini dan mengatur kebijakan eksekusi ke AllSigned.

  4. Buat IoT Edge untuk Linux pada penyebaran Windows. Penyebaran ini akan membuat mesin virtual Linux Anda dan menginstal runtime IoT Edge untuk Anda.

    Deploy-Eflow
    

    Tip

    Secara default, Deploy-Eflow perintah membuat komputer virtual Linux Anda dengan RAM 1 GB, inti 1 vCPU, dan ruang disk 16 GB. Namun, sumber daya yang dibutuhkan mesin virtual Anda sangat tergantung pada beban kerja yang Anda sebar. Jika mesin virtual Anda tidak memiliki memori yang cukup untuk mendukung beban kerja Anda, perintah akan gagal dimulai.

    Anda dapat menyesuaikan sumber daya mesin virtual yang tersedia menggunakan parameter opsional perintah Deploy-Eflow. Ini diperlukan untuk menyebarkan EFLOW pada perangkat dengan persyaratan perangkat keras minimum.

    Misalnya, perintah di bawah ini membuat komputer virtual dengan 1 inti vCPU, RAM 1 GB (diwakili dalam MB), dan ruang disk 2 GB:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Untuk informasi tentang semua parameter opsional yang tersedia, lihat Fungsi PowerShell untuk IoT Edge untuk Linux di Windows.

    Peringatan

    Secara default, komputer virtual EFLOW Linux tidak memiliki konfigurasi DNS. Penyebaran menggunakan DHCP akan mencoba mendapatkan konfigurasi DNS yang disebarkan oleh server DHCP. Silakan periksa konfigurasi DNS Anda untuk memastikan konektivitas internet. Untuk informasi selengkapnya, lihat AzEFLOW-DNS.

    Anda dapat menetapkan GPU ke penyebaran Anda untuk mengaktifkan modul Linux GPU terakselerasi. Untuk mendapatkan akses ke fitur-fitur ini, Anda perlu memasang prasyarat yang dirinci dalam akselerasi GPU untuk Azure IoT Edge untuk Linux di Windows.

    Untuk menggunakan passthrough GPU, tambahkan parameter gpuName, gpuPassthroughType, dan gpuCount untuk perintah Deploy-Eflow Anda. Untuk informasi tentang semua parameter opsional yang tersedia, lihat Fungsi PowerShell untuk IoT Edge untuk Linux di Windows.

    Peringatan

    Mengaktifkan passthrough perangkat keras dapat meningkatkan risiko keamanan. Microsoft menyarankan driver mitigasi perangkat dari vendor GPU Anda, bila dapat diterapkan. Untuk informasi selengkapnya, lihat Menyebarkan perangkat grafis menggunakan penugasan perangkat terpisah.

  5. Masukkan 'Y' untuk menyetujui ketentuan lisensi.

  6. Masukkan 'O' atau 'R' untuk mengaktifkan/menonaktifkan Data diagnostik opsional, bergantung pada preferensi Anda.

  7. Setelah penyebaran selesai, jendela PowerShell melaporkan Penyebaran berhasil.

    Penyebaran yang berhasil akan menampilkan pesan 'Deployment berhasil' di akhir pesan, PNG.

    Setelah penyebaran berhasil, Anda siap untuk memprovisikan perangkat Anda.

Menentukan perangkat dengan identitas cloud-nya

Anda siap menyiapkan perangkat dengan identitas cloud dan informasi autentikasinya.

Untuk memprovisikan perangkat Anda menggunakan sertifikat X.509, Anda memerlukan nama hub IoT, ID perangkat, dan jalur absolut ke sertifikat identitas dan kunci privat di komputer host Windows Anda.

Siapkan sertifikat identitas perangkat dan kunci privat yang cocok di perangkat target Anda. Mengetahui jalur absolut untuk kedua file.

Jalankan perintah berikut dalam sesi PowerShell yang ditinggikan di perangkat target Anda. Ganti teks tempat penampung dengan nilai Anda sendiri.

Provision-EflowVm -provisioningType ManualX509 -iotHubHostname "HUB_HOSTNAME_HERE" -deviceId "DEVICE_ID_HERE" -identityCertPath "ABSOLUTE_PATH_TO_IDENTITY_CERT_HERE" -identityPrivKeyPath "ABSOLUTE_PATH_TO_PRIVATE_KEY_HERE"

Untuk informasi selengkapnya tentang perintah Provision-EflowVM, lihat fungsi PowerShell untuk IoT Edge untuk Linux pada Windows.

Memverifikasi konfigurasi yang berhasil

Verifikasi bahwa IoT Edge untuk Linux di Windows berhasil diinstal dan dikonfigurasi pada perangkat IoT Edge Anda.

  1. Masuk ke IoT Edge untuk Linux di mesin virtual Windows menggunakan perintah berikut di sesi PowerShell Anda:

    Connect-EflowVm
    

    Catatan

    Satu-satunya akun yang diizinkan untuk SSH ke komputer virtual adalah pengguna yang membuatnya.

  2. Setelah Masuk, Anda dapat memeriksa daftar modul IoT Edge yang berjalan menggunakan perintah Linux berikut:

    sudo iotedge list
    
  3. Jika Anda perlu memecahkan masalah layanan IoT Edge, gunakan perintah Linux berikut.

    1. Mengambil log layanan.

      sudo iotedge system logs
      
    2. Gunakan alat check untuk memverifikasi konfigurasi dan status koneksi perangkat.

      sudo iotedge check
      

    Catatan

    Pada perangkat yang baru disediakan, Anda mungkin melihat kesalahan yang terkait dengan IoT Edge Hub:

    × kesiapan produksi: Direktori penyimpanan Edge Hub dipertahankan pada sistem file host - Kesalahan

    Tidak dapat memeriksa status kontainer edgeHub saat ini

    Kesalahan ini diharapkan pada perangkat yang baru disediakan karena modul IoT Edge Hub tidak berjalan. Untuk mengatasi kesalahan, di IoT Hub, atur modul untuk perangkat dan buat penyebaran. Membuat penyebaran untuk perangkat memulai modul pada perangkat termasuk modul IoT Edge Hub.

Saat Anda membuat perangkat IoT Edge baru, akan ditampilkan kode status 417 -- The device's deployment configuration is not set di portal Microsoft Azure. Status ini normal, dan berarti perangkat siap untuk menerima penyebaran modul.

Menghapus instalan IoT Edge untuk Linux di Windows

Jika Anda ingin menghapus Azure IoT Edge untuk Linux pada penginstalan Windows dari perangkat Anda, gunakan perintah berikut.

  1. Buka Pengaturan di Windows
  2. Pilih Tambahkan atau Hapus Program
  3. Pilih aplikasi Azure IoT Edge
  4. Pilih Hapus instalan

Langkah berikutnya