IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma

Şunlar için geçerlidir:IoT Edge 1.4 checkmark IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

IoT Edge cihazları çalışma zamanı, modüller ve aşağı akış cihazları arasında güvenli iletişim için sertifikalar gerektirir. Gerekli sertifikaları oluşturmak için bir sertifika yetkiliniz yoksa test ortamınızda IoT Edge özelliklerini denemek için tanıtım sertifikalarını kullanabilirsiniz. Bu makalede, IoT Edge'in test için sağladığı sertifika oluşturma betiklerinin işlevselliği açıklanmaktadır.

Uyarı

Bu sertifikaların süresi 30 gün içinde dolar ve hiçbir üretim senaryosunda kullanılmamalıdır.

Herhangi bir makinede sertifika oluşturabilir ve ardından bunları IoT Edge cihazınıza kopyalayabilir veya sertifikaları doğrudan IoT Edge cihazında oluşturabilirsiniz.

Ön koşullar

Git'in yüklü olduğu bir geliştirme makinesi.

Test sertifikası betiklerini indirme ve çalışma dizinini ayarlama

GitHub'daki IoT Edge deposu, tanıtım sertifikaları oluşturmak için kullanabileceğiniz sertifika oluşturma betikleri içerir. Bu bölümde, windows veya Linux'ta bilgisayarınızda çalıştırılacak betikleri hazırlama yönergeleri sağlanır.

Bir Windows cihazında tanıtım sertifikaları oluşturmak için OpenSSL'yi yüklemeniz ve ardından oluşturma betiklerini kopyalamanız ve bunları PowerShell'de yerel olarak çalışacak şekilde ayarlamanız gerekir.

OpenSSL'i yükleme

Sertifikaları oluşturmak için kullandığınız makineye Windows için OpenSSL yükleyin. Windows cihazınızda OpenSSL zaten yüklüyse, opensl.exe dosyasının PATH ortam değişkeninizde kullanılabilir olduğundan emin olun.

Aşağıdaki seçenekler de dahil olmak üzere OpenSSL'yi yüklemenin çeşitli yolları vardır:

  • Daha kolay: SourceForge'da OpenSSL'den üçüncü taraf OpenSSL ikili dosyalarını indirin ve yükleyin. PATH ortam değişkeninize openssl.exe dosyasının tam yolunu ekleyin.

  • Önerilen: OpenSSL kaynak kodunu indirin ve makinenizde ikili dosyaları kendiniz veya vcpkg aracılığıyla oluşturun. Aşağıda listelenen yönergeler, kolay adımlarla kaynak kodu indirmek, derlemek ve Windows makinenize OpenSSL yüklemek için vcpkg kullanır.

    1. vcpkg yüklemek istediğiniz dizine gidin. vcpkg'yi indirip yüklemek için yönergeleri izleyin.

    2. vcpkg yüklendikten sonra, Windows x64 için OpenSSL paketini yüklemek üzere bir PowerShell isteminden aşağıdaki komutu çalıştırın. Yüklemenin tamamlanması genellikle yaklaşık 5 dakika sürer.

      .\vcpkg install openssl:x64-windows
      
    3. openssl.exe dosyasının çağrılabilmesi için PATH ortam değişkeninize ekleyin <vcpkg path>\installed\x64-windows\tools\openssl .

PowerShell'de betikleri hazırlama

Azure IoT Edge git deposu, test sertifikaları oluşturmak için kullanabileceğiniz betikler içerir. Bu bölümde IoT Edge depoyu kopyalayıp betikleri yürütürsiniz.

  1. Yönetici modunda bir PowerShell penceresi açın.

  2. Tanıtım sertifikaları oluşturmak için betikler içeren IoT Edge git deposunu kopyalayın. git clone komutunu kullanın veya ZIP'i indirin.

    git clone https://github.com/Azure/iotedge.git
    
  3. Çalışmak istediğiniz bir dizin oluşturun ve sertifika betiklerini oraya kopyalayın. Tüm sertifika ve anahtar dosyaları bu dizinde oluşturulur.

    mkdir wrkdir
    cd .\wrkdir\
    cp ..\iotedge\tools\CACertificates\*.cnf .
    cp ..\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    Depoyu ZIP olarak indirdiyseniz, klasör adı iotedge-master ve yolun geri kalanı aynıdır.

  4. Betikleri çalıştırmak için PowerShell'i etkinleştirin.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  5. Betikler tarafından kullanılan işlevleri PowerShell'in genel ad alanına getirin.

    . .\ca-certs.ps1
    

    PowerShell penceresinde, bu betik tarafından oluşturulan sertifikaların yalnızca test amaçlı olduğuna ve üretim senaryolarında kullanılmaması gerektiğine ilişkin bir uyarı görüntülenir.

  6. OpenSSL'nin doğru yüklendiğini doğrulayın ve mevcut sertifikalarla ad çakışmaları olmayacağına emin olun. Sorun varsa, betik çıktısı bunları sisteminizde nasıl düzeltileceğini açıklamalıdır.

    Test-CACertsPrerequisites
    

Kök CA sertifikası oluşturma

Bu betiği çalıştırarak bu makaledeki her adım için gerekli olan bir kök CA oluşturun.

Kök CA sertifikası, ioT Edge senaryolarını test etmek için diğer tüm tanıtım sertifikalarını oluşturmak için kullanılır. Birden çok IoT Edge veya aşağı akış cihazı için tanıtım sertifikaları oluşturmak için aynı kök CA sertifikasını kullanmaya devam edebilirsiniz.

Çalışma klasörünüzde zaten bir kök CA sertifikanız varsa yeni bir sertifika oluşturmayın. Yeni kök CA sertifikası eskinin üzerine yazılır ve eskisinden yapılan tüm aşağı akış sertifikaları çalışmayı durdurur. Birden çok kök CA sertifikası istiyorsanız, bunları ayrı klasörlerde yönettiğinize emin olun.

  1. Sertifika oluşturma betiklerini yerleştirdiğiniz çalışma dizinine wrkdir gidin.

  2. Kök CA sertifikasını oluşturun ve bir ara sertifika imzalamasını sağlayın. Sertifikaların tümü çalışma dizininize yerleştirilir.

    New-CACertsCertChain rsa
    

    Bu betik komutu birkaç sertifika ve anahtar dosyası oluşturur, ancak makaleler kök CA sertifikasını sorduğunda aşağıdaki dosyayı kullanın:

    certs\azure-iot-test-only.root.ca.cert.pem

Bu sertifika, sonraki bölümlerde açıklandığı gibi IoT Edge cihazlarınız ve aşağı akış cihazlarınız için daha fazla sertifika oluşturabilmeniz için gereklidir.

IoT Edge cihazı için kimlik sertifikası oluşturma

X.509 sertifika kimlik doğrulamasını kullanmayı seçerseniz IoT Edge cihaz kimliği sertifikaları IoT Edge cihazları sağlamak için kullanılır. IoT Hub veya DPS'de kimlik doğrulaması için simetrik anahtar kullanıyorsanız, bu sertifikalar gerekli değildir ve bu bölümü atlayabilirsiniz.

Bu sertifikalar, Azure IoT Hub Cihazı Sağlama Hizmeti (DPS) aracılığıyla el ile sağlamayı veya otomatik sağlamayı kullanmanız farketmeksizin çalışır.

Cihaz kimliği sertifikaları, IoT Edge cihazındaki yapılandırma dosyasının Sağlama bölümüne gider.

  1. Sertifika oluşturma betiklerinin ve kök CA sertifikasının yer aldığı çalışma dizinine wrkdir gidin.

  2. Aşağıdaki komutla IoT Edge cihaz kimliği sertifikasını ve özel anahtarı oluşturun:

    New-CACertsEdgeDeviceIdentity "<device-id>"
    

    Bu komuta geçirdiğiniz ad, IoT Hub'daki IoT Edge cihazının cihaz kimliğidir.

  3. Yeni cihaz kimliği komutu birkaç sertifika ve anahtar dosyası oluşturur:

    Tür Dosya Tanım
    Cihaz kimliği sertifikası certs\iot-edge-device-identity-<device-id>.cert.pem Daha önce oluşturulan ara sertifika tarafından imzalandı. Yalnızca kimlik sertifikasını içerir. DPS bireysel kaydı veya IoT Hub sağlama için yapılandırma dosyasında belirtin.
    Tam zincir sertifikası certs\iot-edge-device-identity-<device-id>-full-chain.cert.pem Ara sertifika dahil olmak üzere tam sertifika zincirini içerir. Grup kaydı sağlama için IoT Edge'in DPS'ye sunacağını yapılandırma dosyasında belirtin.
    Özel anahtar private\iot-edge-device-identity-<device-id>.key.pem Cihaz kimliği sertifikasıyla ilişkili özel anahtar. DPS veya IoT Hub için bir tür sertifika kimlik doğrulaması (parmak izi veya CA) kullandığınız sürece yapılandırma dosyasında belirtilmelidir.

Uç CA sertifikaları oluşturma

Uç CA sertifikası, IoT Edge cihazının aşağı akış cihazlarına kimliğini nasıl doğruladığı olduğundan bu sertifikalar ağ geçidi senaryoları için gereklidir. IoT Edge'e herhangi bir aşağı akış cihazı bağlamıyorsanız bu bölümü atlayabilirsiniz.

CA sertifikası, cihazda çalışan modüller için sertifika oluşturmakla da sorumludur, ancak Edge CA yapılandırılmamışsa IoT Edge çalışma zamanı geçici sertifikalar oluşturabilir. Edge CA sertifikaları, IoT Edge cihazında dosyanın Edge CA bölümüne config.toml gider. Daha fazla bilgi edinmek için bkz . Azure IoT Edge'in sertifikaları nasıl kullandığını anlama.

  1. Sertifika oluşturma betiklerinin ve kök CA sertifikasının yer aldığı çalışma dizinine wrkdir gidin.

  2. Aşağıdaki komutla IoT Edge CA sertifikasını ve özel anahtarı oluşturun. CA sertifikası için bir ad belirtin. New-CACertsEdgeDevice komutuna geçirilen ad, yapılandırma dosyasındaki konak adı parametresiyle veya IoT Hub'daki cihazın kimliğiyle aynı olmamalıdır.

    New-CACertsEdgeDevice "<CA cert name>"
    
  3. Bu komut birkaç sertifika ve anahtar dosyası oluşturur. Aşağıdaki sertifika ve anahtar çiftinin bir IoT Edge cihazına kopyalanması ve yapılandırma dosyasında başvurulmalıdır:

    • certs\iot-edge-device-ca-<CA cert name>-full-chain.cert.pem
    • private\iot-edge-device-ca-<CA cert name>.key.pem

Aşağı akış cihaz sertifikaları oluşturma

Bu sertifikalar bir ağ geçidi senaryosu için aşağı akış IoT cihazı ayarlamak için gereklidir ve IoT Hub veya DPS ile X.509 kimlik doğrulamasını kullanmak ister. Simetrik anahtar kimlik doğrulaması kullanmak istiyorsanız aşağı akış cihazı için sertifika oluşturmanız gerekmez ve bu bölümü atlayabilirsiniz.

X.509 sertifikalarını kullanarak ioT cihazının kimliğini doğrulamanın iki yolu vardır: otomatik olarak imzalanan sertifikaları veya sertifika yetkilisi (CA) imzalı sertifikaları kullanma.

  • Bazen parmak izi kimlik doğrulaması olarak da adlandırılan X.509 otomatik olarak imzalanan kimlik doğrulaması için IoT cihazınıza yerleştirmek için yeni sertifikalar oluşturmanız gerekir. Bu sertifikaların içinde kimlik doğrulaması için IoT Hub ile paylaştığınız bir parmak izi vardır.
  • X.509 sertifika yetkilisi (CA) imzalı kimlik doğrulaması için, IoT cihazınız için sertifika imzalamak için kullandığınız IoT Hub'a veya DPS'ye kaydedilmiş bir kök CA sertifikasına ihtiyacınız vardır. Kök CA sertifikası veya ara sertifikalarından herhangi biri tarafından verilen bir sertifikayı kullanan tüm cihazlar, tam zincir cihaz tarafından sunulduğu sürece kimlik doğrulaması yapabilir.

Sertifika oluşturma betikleri, bu kimlik doğrulama senaryolarından herhangi birini test etmek için tanıtım sertifikaları oluşturmanıza yardımcı olabilir.

Otomatik olarak imzalanan sertifikalar

IoT cihazının kimliğini otomatik olarak imzalanan sertifikalarla doğruladığınızda, çözümünüz için kök CA sertifikasını temel alan cihaz sertifikaları oluşturmanız gerekir. Ardından, IoT Hub'a sağlamak üzere sertifikalardan onaltılık bir "parmak izi" alırsınız. IoT cihazınızın IoT Hub ile kimlik doğrulaması yapması için cihaz sertifikalarının bir kopyasına da ihtiyacı vardır.

  1. Sertifika oluşturma betiklerinin ve kök CA sertifikasının yer aldığı çalışma dizinine wrkdir gidin.

  2. Aşağı akış cihazı için iki sertifika (birincil ve ikincil) oluşturun. Kullanımı kolay bir adlandırma kuralı, IoT cihazının ve ardından birincil veya ikincil etiketin adıyla sertifikaları oluşturmaktır. Örnek:

    New-CACertsDevice "<device ID>-primary"
    New-CACertsDevice "<device ID>-secondary"
    

    Bu betik komutu birkaç sertifika ve anahtar dosyası oluşturur. Aşağıdaki sertifika ve anahtar çiftlerinin aşağı akış IoT cihazına kopyalanması ve IoT Hub'a bağlanan uygulamalarda başvurulması gerekir:

    • certs\iot-device-<device ID>-primary-full-chain.cert.pem
    • certs\iot-device-<device ID>-secondary-full-chain.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pem
    • certs\iot-device-<device ID>-secondary.cert.pem
    • certs\iot-device-<device ID>-primary.cert.pfx
    • certs\iot-device-<device ID>-secondary.cert.pfx
    • private\iot-device-<device ID>-primary.key.pem
    • private\iot-device-<device ID>-secondary.key.pem
  3. Her sertifikadan SHA1 parmak izini (IoT Hub bağlamlarında parmak izi olarak adlandırılır) alın. Parmak izi 40 onaltılık karakter dizesidir. Sertifikayı görüntülemek ve parmak izini bulmak için aşağıdaki openssl komutunu kullanın:

    Write-Host (Get-Pfxcertificate -FilePath certs\iot-device-<device name>-primary.cert.pem).Thumbprint
    

    Bu komutu, birincil sertifika için bir kez ve ikincil sertifika için bir kez iki kez çalıştırın. Otomatik olarak imzalanan X.509 sertifikalarını kullanarak yeni bir IoT cihazı kaydederken her iki sertifika için de parmak izi sağlarsınız.

CA imzalı sertifikalar

Ca imzalı sertifikalarla bir IoT cihazının kimliğini doğruladığınızda, çözümünüz için kök CA sertifikasını IoT Hub'a yüklemeniz gerekir. IoT Hub ile kimlik doğrulaması yapmak üzere IoT cihazınıza yerleştirecek cihaz sertifikaları oluşturmak için aynı kök CA sertifikasını kullanın.

Bu bölümdeki sertifikalar, IoT Hub X.509 sertifika öğreticisi serisindeki adımlar içindir. Bu serinin tanıtımı için bkz . Ortak Anahtar Şifrelemesi ve X.509 Ortak Anahtar Altyapısını Anlama.

  1. Kök CA sertifika dosyasını çalışma dizininizden certs\azure-iot-test-only.root.ca.cert.pemIoT hub'ınıza yükleyin.

  2. Otomatik doğrulama seçili değilse, azure portalında sağlanan kodu kullanarak bu kök CA sertifikasına sahip olduğunuzu doğrulayın.

    New-CACertsVerificationCert "<verification code>"
    
  3. Aşağı akış cihazınız için bir sertifika zinciri oluşturun. Cihazın IoT Hub'a kayıtlı olduğu cihaz kimliğini kullanın.

    New-CACertsDevice "<device id>"
    

    Bu betik komutu birkaç sertifika ve anahtar dosyası oluşturur. Aşağıdaki sertifika ve anahtar çiftlerinin aşağı akış IoT cihazına kopyalanması ve IoT Hub'a bağlanan uygulamalarda başvurulması gerekir:

    • certs\iot-device-<device id>.cert.pem
    • certs\iot-device-<device id>.cert.pfx
    • certs\iot-device-<device id>-full-chain.cert.pem
    • private\iot-device-<device id>.key.pem