X.509 sertifikalarını kullanarak Windows'ta IoT Edge cihazı oluşturma ve sağlama

Şunlar için geçerlidir: evet simgesi IoT Edge 1.1

Önemli

IoT Edge 1.1 destek sonu tarihi 13 Aralık 2022'ydi. Bu ürünün, hizmetin, teknolojinin veya API’nin nasıl desteklendiği hakkında bilgi edinmek için Microsoft Ürün Yaşam Döngüsü’ne göz atın. IoT Edge'in en son sürümüne güncelleştirme hakkında daha fazla bilgi için bkz . IoT Edge'i güncelleştirme.

Bu makalede, Bir Windows IoT Edge cihazı kaydetme ve sağlama için uçtan uca yönergeler sağlanır.

Not

Windows kapsayıcıları ile Azure IoT Edge, Azure IoT Edge'in 1.2 sürümünden itibaren desteklenmeyecektir.

Windows cihazlarda IoT Edge, Windows üzerinde Linux için Azure IoT Edge çalıştırmak için yeni yöntemi kullanmayı göz önünde bulundurun.

Windows üzerinde Linux için Azure IoT Edge kullanmak istiyorsanız, eşdeğer nasıl yapılır kılavuzundaki adımları izleyebilirsiniz.

IoT hub'ına bağlanan her cihazda, buluttan cihaza veya cihazdan buluta iletişimi izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı IoT hub ana bilgisayar adı, cihaz kimliği ve cihazın IoT Hub'da kimlik doğrulaması için kullandığı bilgileri içeren bağlantı bilgileriyle yapılandırabilirsiniz.

Bu makaledeki adımlarda, tek bir cihazı IoT hub'ına bağladığınız el ile sağlama adlı işlem adım adım izlenmiştir. El ile sağlama için IoT Edge cihazlarının kimliğini doğrulamak için iki seçeneğiniz vardır:

  • Simetrik anahtarlar: IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda hizmet iki anahtar oluşturur. Anahtarlardan birini cihaza yerleştirirsiniz ve kimlik doğrulaması sırasında anahtarı IoT Hub'a sunar.

    Bu kimlik doğrulama yöntemini kullanmaya başlamak daha hızlıdır, ancak bu kadar güvenli değildir.

  • X.509 otomatik olarak imzalanan: İki X.509 kimlik sertifikası oluşturur ve bunları cihaza yerleştirirsiniz. IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda, her iki sertifikadan da parmak izi sağlarsınız. Cihaz IoT Hub'da kimlik doğrulaması yaparken bir sertifika sunar ve IoT Hub sertifikanın parmak iziyle eşleşip eşleşmediğini doğrular.

    Bu kimlik doğrulama yöntemi daha güvenlidir ve üretim senaryoları için önerilir.

Bu makale, kimlik doğrulama yönteminiz olarak X.509 sertifikalarını kullanmayı kapsar. Simetrik anahtarlar kullanmak istiyorsanız bkz . Simetrik anahtarları kullanarak Windows'ta IoT Edge cihazı oluşturma ve sağlama.

Not

Ayarlayıp her birini el ile sağlamak istemiyorsanız, IoT Edge'in IoT Hub cihaz sağlama hizmetiyle nasıl çalıştığını öğrenmek için aşağıdaki makalelerden birini kullanın:

Önkoşullar

Bu makale, IoT Edge cihazınızı kaydetmeyi ve üzerine IoT Edge yüklemeyi kapsar. Bu görevlerin farklı önkoşulları ve bunları gerçekleştirmek için kullanılan yardımcı programları vardır. Devam etmeden önce tüm önkoşulları karşıladığınızdan emin olun.

Cihaz yönetimi araçları

Cihazınızı kaydetme adımları için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz. Her yardımcı programın kendi önkoşulları vardır:

Azure aboneliğinizde ücretsiz veya standart bir IoT hub'ı .

Cihaz gereksinimleri

Bir Windows cihazı.

Windows kapsayıcıları ile IoT Edge, en son Windows uzun vadeli destek derlemesi olan Windows sürüm 1809/derleme 17763 gerektirir. Desteklenen SKU'ların listesi için desteklenen sistemler listesini gözden geçirmeyi unutmayın.

Cihaz kimliği sertifikaları oluşturma

X.509 sertifikalarıyla el ile sağlama için IoT Edge sürüm 1.0.10 veya üzeri gerekir.

X.509 sertifikalarına sahip bir IoT Edge cihazı sağladığınızda, cihaz kimliği sertifikası olarak adlandırılan değeri kullanırsınız. Bu sertifika yalnızca bir IoT Edge cihazı sağlamak ve Cihazın kimliğini Azure IoT Hub ile doğrulamak için kullanılır. Diğer sertifikaları imzalamayan bir yaprak sertifikadır. Cihaz kimliği sertifikası, IoT Edge cihazının doğrulama için modüllere veya aşağı akış cihazlarına sunduğu sertifika yetkilisi (CA) sertifikalarından ayrıdır.

X.509 sertifika kimlik doğrulaması için her cihazın kimlik doğrulama bilgileri, cihaz kimliği sertifikalarınızdan alınan parmak izleri biçiminde sağlanır. Bu parmak izleri cihaz kaydı sırasında IoT Hub'a verilir, böylece hizmet bağlandığında cihazı tanıyabilir.

CA sertifikalarının IoT Edge cihazlarında nasıl kullanıldığı hakkında daha fazla bilgi için bkz . Azure IoT Edge'in sertifikaları nasıl kullandığını anlama.

X.509 ile el ile sağlama için aşağıdaki dosyalara ihtiyacınız vardır:

  • .cer veya .pem biçimlerinde eşleşen özel anahtar sertifikalarına sahip iki cihaz kimliği sertifikası.

    IoT Edge çalışma zamanına bir sertifika/anahtar dosyası kümesi sağlanır. Cihaz kimliği sertifikaları oluşturduğunuzda, cihazın IoT hub'ınızda olmasını istediğiniz cihaz kimliğiyle sertifika ortak adını (CN) ayarlayın.

  • Her iki cihaz kimliği sertifikasından alınan parmak izleri.

    Parmak izi değerleri SHA-1 karmaları için 40 onaltılık karakter veya SHA-256 karmaları için 64 onaltılık karakterlerdir. Her iki parmak izi de cihaz kaydı sırasında IoT Hub'a sağlanır.

Kullanılabilir sertifikalarınız yoksa IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturabilirsiniz. Sertifika oluşturma betiklerini ayarlamak, kök CA sertifikası oluşturmak ve ardından iki IoT Edge cihaz kimliği sertifikası oluşturmak için bu makaledeki yönergeleri izleyin.

Bir sertifikadan parmak izini alma yollarından biri aşağıdaki openssl komutudur:

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

Cihazınızı kaydetme

Tercihinize bağlı olarak cihazınızı kaydetmek için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz.

Azure portalındaki IoT hub'ınızda IoT Edge cihazları, edge etkin olmayan IoT cihazlarından ayrı olarak oluşturulur ve yönetilir.

  1. Azure portalında oturum açın ve IoT hub'ınıza gidin.

  2. Sol bölmede menüden Cihazlar'ı ve ardından Cihaz Ekle'yi seçin.

  3. Cihaz oluştur sayfasında aşağıdaki bilgileri sağlayın:

    • Açıklayıcı bir cihaz kimliği oluşturun. Daha sonra kullanacağınız için bu cihaz kimliğini not edin.
    • IoT Edge Cihazı onay kutusunu işaretleyin.
    • Kimlik doğrulama türü olarak X.509 Otomatik İmzalı seçeneğini belirleyin.
    • Birincil ve ikincil kimlik sertifikası parmak izlerini sağlayın. Parmak izi değerleri SHA-1 karmaları için 40 onaltılık karakter veya SHA-256 karmaları için 64 onaltılık karakterlerdir.
  4. Kaydet'i seçin.

IoT Hub'a kayıtlı bir cihazınız olduğuna göre, IoT Edge çalışma zamanını yükleme ve sağlama işlemini tamamlamak için kullandığınız bilgileri alın.

Kayıtlı cihazları görüntüleme ve sağlama bilgilerini alma

X.509 sertifika kimlik doğrulaması kullanan cihazların IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için IoT hub'ının adı, cihaz adı ve sertifika dosyaları gerekir.

IoT hub'ınıza bağlanan uç özellikli cihazlar Cihazlar sayfasında listelenir. Listeyi Iot Edge Cihazı türüne göre filtreleyebilirsiniz.

IoT hub'ınızdaki tüm IoT Edge cihazlarını görüntüleme ekran görüntüsü.

IoT Edge'i yükleme

Bu bölümde, Windows VM'nizi veya fiziksel cihazınızı IoT Edge için hazırlarsınız. Ardından IoT Edge'i yüklersiniz.

Azure IoT Edge, OCI uyumlu bir kapsayıcı çalışma zamanı kullanır. Moby tabanlı bir altyapı olan Moby, yükleme betiğine dahil edilir, bu da motoru yüklemek için ek adımlar olmadığı anlamına gelir.

IoT Edge çalışma zamanını yüklemek için:

  1. PowerShell'i yönetici olarak çalıştırın.

    PowerShell(x86) yerine PowerShell'in AMD64 oturumlarını kullanın. Hangi oturum türünü kullandığınızdan emin değilseniz aşağıdaki komutu çalıştırın:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Aşağıdaki görevleri gerçekleştiren Deploy-IoTEdge komutunu çalıştırın:

    • Windows makinenizin desteklenen bir sürümde olup olmadığını denetler
    • Kapsayıcılar özelliğini açar
    • Moby altyapısını ve IoT Edge çalışma zamanını indirir
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. İstenirse cihazınızı yeniden başlatın.

IoT Edge'i bir cihaza yüklediğinizde, işlemi değiştirmek için aşağıdakiler dahil olmak üzere ek parametreler kullanabilirsiniz:

  • Trafiği bir ara sunucudan geçmek için yönlendirme
  • Yükleyiciyi çevrimdışı yükleme için yerel bir dizine işaret etme

Bu ek parametreler hakkında daha fazla bilgi için bkz . Windows kapsayıcıları ile IoT Edge için PowerShell betikleri.

Cihazı bulut kimliğiyle sağlama

Kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınıza yüklendiğinden, cihazı bulut kimliği ve kimlik doğrulama bilgileriyle ayarlamak için bir sonraki adıma hazırsınız demektir.

  1. IoT Edge cihazında PowerShell'i yönetici olarak çalıştırın.

  2. Makinenizde IoT Edge çalışma zamanını yapılandırmak için Initialize-IoTEdge komutunu kullanın.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualX509
    
    • IoTEdgeSecurityDaemon.ps1 betiğini çevrimdışı veya belirli bir sürüm yüklemesi için cihazınıza indirdiyseniz betiğin yerel kopyasına başvurdığınızdan emin olun.

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualX509
      
  3. İstendiğinde aşağıdaki bilgileri girin:

    • IotHubHostName: Cihazın bağlanacağı IoT hub'ının ana bilgisayar adı. Örneğin, {IoT_hub_name}.azure-devices.net.
    • DeviceId: Cihazı kaydederken sağladığınız kimlik.
    • X509IdentityCertificate: Cihazdaki bir kimlik sertifikasının mutlak yolu. Örneğin, C:\path\identity_certificate.pem.
    • X509IdentityPrivateKey: Sağlanan kimlik sertifikası için özel anahtar dosyasının mutlak yolu. Örneğin, C:\path\identity_key.pem.

Bir cihazı el ile sağlarken, işlemi değiştirmek için aşağıdakiler dahil olmak üzere ek parametreler kullanabilirsiniz:

  • Trafiği bir ara sunucudan geçmek için yönlendirme
  • Belirli bir edgeAgent kapsayıcı görüntüsü bildirin ve özel bir kayıt defterindeyse kimlik bilgilerini sağlayın

Bu ek parametreler hakkında daha fazla bilgi için bkz . Windows kapsayıcıları ile IoT Edge için PowerShell betikleri.


Başarılı yapılandırmayı doğrulama

Çalışma zamanının IoT Edge cihazınıza başarıyla yüklendiğini ve yapılandırıldığını doğrulayın.

IoT Edge hizmetinin durumunu kontrol edin.

Get-Service iotedge

Hizmet günlüklerini inceleyin.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Çalışan modülleri listeleyin.

iotedge list

Çevrimdışı veya belirli bir sürüm yüklemesi (isteğe bağlı)

Bu bölümdeki adımlar, standart yükleme adımları kapsamında olmayan senaryolara yöneliktir. Bu şunları içerebilir:

  • Çevrimdışıyken IoT Edge'i yükleme
  • Sürüm adayı sürümünü yükleme
  • En son sürüm dışında bir sürüm yükleme

Yükleme sırasında üç dosya indirilir:

  • Yükleme yönergelerini içeren bir PowerShell betiği
  • IoT Edge güvenlik daemon'unu (iotedged), Moby kapsayıcı altyapısını ve Moby CLI'yı içeren Microsoft Azure IoT Edge kabini
  • Visual C++ yeniden dağıtılabilir paket (VC çalışma zamanı) yükleyicisi

Cihazınız yükleme sırasında çevrimdışı olacaksa veya IoT Edge'in belirli bir sürümünü yüklemek istiyorsanız, bu dosyaları önceden cihaza indirebilirsiniz. Yükleme zamanı geldiğinde, yükleme betiğini indirilen dosyaları içeren dizine işaret edin. Yükleyici önce bu dizini denetler ve ardından yalnızca bulunmayan bileşenleri indirir. Tüm dosyalar çevrimdışı kullanılabilir durumdaysa, İnternet bağlantısı olmadan yükleyebilirsiniz.

  1. Önceki sürümlerle birlikte en son IoT Edge yükleme dosyaları için bkz . Azure IoT Edge sürümleri.

  2. Yüklemek istediğiniz sürümü bulun ve aşağıdaki dosyaları sürüm notlarının Varlıklar bölümünden IoT cihazınıza indirin:

    • IoTEdgeSecurityDaemon.ps1
    • 1.1 yayın kanalından Microsoft-Azure-IoTEdge-amd64.cab.

    İşlevler her sürümdeki özellikleri destekleyecek şekilde değiştiğinden, PowerShell betiğini kullandığınız .cab dosyasıyla aynı sürümde kullanmak önemlidir.

  3. İndirdiğiniz .cab dosyasında mimari soneki varsa dosyayı yalnızca Microsoft-Azure-IoTEdge.cab olarak yeniden adlandırın.

  4. İsteğe bağlı olarak, Visual C++ yeniden dağıtılabilir için bir yükleyici indirin. Örneğin, PowerShell betiği şu sürümü kullanır: vc_redist.x64.exe. Yükleyiciyi IoT cihazınızdaki IoT Edge dosyalarıyla aynı klasöre kaydedin.

  5. Çevrimdışı bileşenlerle yüklemek için PowerShell betiğinin yerel kopyasını nokta kaynağı yapın.

  6. Parametresiyle -OfflineInstallationPath Deploy-IoTEdge komutunu çalıştırın. Dosya dizininin mutlak yolunu belirtin. Örneğin,

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    Dağıtım komutu, sağlanan yerel dosya dizininde bulunan tüm bileşenleri kullanır. .cab dosyası veya Visual C++ yükleyicisi eksikse, bunları indirmeye çalışır.

IoT Edge'i kaldırma

Windows cihazınızdan IoT Edge yüklemesini kaldırmak istiyorsanız, yönetim PowerShell penceresinden Uninstall-IoTEdge komutunu kullanın. Bu komut, ioT Edge çalışma zamanını ve mevcut yapılandırmanızı ve Moby altyapısı verilerini kaldırır.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

Kaldırma seçenekleri hakkında daha fazla bilgi için komutunu Get-Help Uninstall-IoTEdge -fullkullanın.

Sonraki adımlar

Modülleri cihazınıza dağıtmayı öğrenmek için IoT Edge modüllerini dağıtmaya devam edin.