IoT Edge デバイスの機能をテストするためのデモ用の証明書を作成するCreate demo certificates to test IoT Edge device features

ランタイム、モジュール、およびダウンストリーム デバイスとの間の通信をセキュリティで保護するため、IoT Edge デバイスには証明書が必要です。IoT Edge devices require certificates for secure communication between the runtime, the modules, and any downstream devices. 必要な証明書を作成するための証明機関がない場合は、デモ用の証明書を使用し、テスト環境で IoT Edge の機能を試すことができます。If you don't have a certificate authority to create the required certificates, you can use demo certificates to try out IoT Edge features in your test environment. この記事では、IoT Edge でテスト用に提供されている証明書生成スクリプトの機能について説明します。This article describes the functionality of the certificate generation scripts that IoT Edge provides for testing.

これらの証明書の有効期限は 30 日です。運用環境のシナリオでは使用しないでください。These certificates expire in 30 days, and should not be used in any production scenario.

任意のマシンで証明書を生成してから、お使いの IoT Edge デバイスに証明書をコピーできます。You can create certificates on any machine, and then copy them over to your IoT Edge device. IoT Edge デバイス自体で証明書を生成するのではなく、プライマリ マシンを使用して証明書を作成する方が容易です。It's easier to use your primary machine to create the certificates rather than generating them on your IoT Edge device itself. プライマリ マシンを使用することで、スクリプトを 1 回設定すれば、その後は複数のデバイスに対して証明書を作成するのに使用できます。By using your primary machine, you can set up the scripts once and then use them to create certificates for multiple devices.

IoT Edge シナリオをテストするためのデモ証明書を作成するには、次の手順に従います。Follow these steps to create demo certificates for testing your IoT Edge scenario:

  1. デバイスで証明書を生成するためのスクリプトを設定しますSet up scripts for certificate generation on your device.
  2. シナリオに応じて、他のすべての証明書の署名に使用するルート CA 証明書を作成します。Create the root CA certificate that you use to sign all the other certificates for your scenario.
  3. テストするシナリオに必要な証明書を生成します。Generate the certificates you need for the scenario you want to test:

前提条件Prerequisites

Git がインストールされた開発用マシン。A development machine with Git installed.

スクリプトの設定Set up scripts

GitHub の IoT Edge リポジトリには、デモ用の証明書を作成するのに使用できる証明書生成スクリプトが含まれています。The IoT Edge repository on GitHub includes certificate generation scripts that you can use to create demo certificates. このセクションでは、Windows または Linux のいずれかのコンピューターで実行するスクリプトを準備する手順について説明します。This section provides instructions for preparing the scripts to run on your computer, either on Windows or Linux. Linux マシンを使用する場合は、「Linux での設定」まで進んでください。If you're on a Linux machine, skip ahead to Set up on Linux.

Windows での設定Set up on Windows

Windows デバイスでデモ用の証明書を作成するには、OpenSSL をインストールしてから生成スクリプトを複製し、ローカルで実行されるように PowerShell でスクリプトを設定する必要があります。To create demo certificates on a Windows device, you need to install OpenSSL and then clone the generation scripts and set them up to run locally in PowerShell.

OpenSSL のインストールInstall OpenSSL

証明書を生成するために使用するマシンに OpenSSL for Windows をインストールします。Install OpenSSL for Windows on the machine that you're using to generate the certificates. ご使用の Windows デバイスに既に OpenSSL がインストールされている場合は、openssl.exe がご自分の PATH 環境変数で使用可能であることを確認してください。If you already have OpenSSL installed on your Windows device, ensure that openssl.exe is available in your PATH environment variable.

OpenSSL のインストール方法はいくつかあり、以下のような選択肢があります。There are several ways to install OpenSSL, including the following options:

  • 簡単: サードパーティの OpenSSL バイナリを (たとえば、 SourceForge の OpenSSL から) ダウンロードしてインストールします。Easier: Download and install any third-party OpenSSL binaries, for example, from OpenSSL on SourceForge. openssl.exe への完全なパスを PATH 環境変数に追加します。Add the full path to openssl.exe to your PATH environment variable.

  • 推奨: OpenSSL ソース コードをダウンロードし、お使いのコンピューター上または vcpkg 経由でバイナリをビルドします。Recommended: Download the OpenSSL source code and build the binaries on your machine by yourself or via vcpkg. 以下に示す指示では、vcpkg を使用してソース コードのダウンロード、コンパイル、および Windows コンピューターへの OpenSSL のインストールを、簡単な手順で実行します。The instructions listed below use vcpkg to download source code, compile, and install OpenSSL on your Windows machine with easy steps.

    1. vcpkg をインストールするディレクトリに移動します。Navigate to a directory where you want to install vcpkg. 指示に従って vcpkg インストーラーをダウンロードし、実行します。Follow the instructions to download and install vcpkg.

    2. vcpkg がインストールされたら、PowerShell プロンプトから次のコマンドを実行して、Windows x64 用の OpenSSL パッケージをインストールします。Once vcpkg is installed, run the following command from a PowerShell prompt to install the OpenSSL package for Windows x64. インストールが完了するまで、通常は約 5 分かかります。The installation typically takes about 5 minutes to complete.

      .\vcpkg install openssl:x64-windows
      
    3. ご自分の PATH 環境変数に <vcpkg path>\installed\x64-windows\tools\openssl を追加して、openssl.exe ファイルを呼び出せるようにします。Add <vcpkg path>\installed\x64-windows\tools\openssl to your PATH environment variable so that the openssl.exe file is available for invocation.

PowerShell でのスクリプトの準備Prepare scripts in PowerShell

Azure IoT Edge の Git リポジトリには、テスト証明書の生成に使用できるスクリプトが含まれています。The Azure IoT Edge git repository contains scripts that you can use to generate test certificates. このセクションでは、IoT Edge リポジトリを複製して、スクリプトを実行します。In this section, you clone the IoT Edge repo and execute the scripts.

  1. 管理者モードで PowerShell ウィンドウを開きます。Open a PowerShell window in administrator mode.

  2. デモ用の証明書を生成するスクリプトが含まれている IoT Edge git リポジトリを複製します。Clone the IoT Edge git repo, which contains scripts to generate demo certificates. git clone コマンドを使用するか、ZIP をダウンロードしますUse the git clone command or download the ZIP.

    git clone https://github.com/Azure/iotedge.git
    
  3. 作業するディレクトリに移動します。Navigate to the directory in which you want to work. この記事では、このディレクトリを <WRKDIR> と呼びます。Throughout this article, we'll call this directory <WRKDIR>. すべての証明書とキーは、この作業ディレクトリに作成されます。All certificates and keys will be created in this working directory.

  4. 構成ファイルとスクリプト ファイルを、複製したリポジトリから作業ディレクトリにコピーします。Copy the configuration and script files from the cloned repo into your working directory.

    copy <path>\iotedge\tools\CACertificates\*.cnf .
    copy <path>\iotedge\tools\CACertificates\ca-certs.ps1 .
    

    ZIP ファイルとしてリポジトリをダウンロードした場合、フォルダー名は iotedge-master で、パスの残りの部分は同じです。If you downloaded the repo as a ZIP, then the folder name is iotedge-master and the rest of the path is the same.

  5. PowerShell でスクリプトの実行を有効にします。Enable PowerShell to run the scripts.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
    
  6. スクリプトで使用される関数を PowerShell のグローバル名前空間に取り込みます。Bring the functions used by the scripts into PowerShell's global namespace.

    . .\ca-certs.ps1
    

    このスクリプトによって生成された証明書はテスト目的専用であり、運用シナリオでは使用してはならないという警告が PowerShell ウィンドウに表示されます。The PowerShell window will display a warning that the certificates generated by this script are only for testing purposes, and should not be used in production scenarios.

  7. OpenSSL が正しくインストールされていることを確認し、既存証明書と名前の競合がないことを確認します。Verify that OpenSSL has been installed correctly and make sure that there won't be name collisions with existing certificates. 問題がある場合は、スクリプト出力に、システムで問題を修正する方法が記述されているはずです。If there are problems, the script output should describe how to fix them on your system.

    Test-CACertsPrerequisites
    

Linux での設定Set up on Linux

Windows デバイスでデモ用の証明書を作成するには、生成スクリプトを複製し、ローカルで実行されるように bash でスクリプトを設定する必要があります。To create demo certificates on a Windows device, you need clone the generation scripts and set them up to run locally in bash.

  1. デモ用の証明書を生成するスクリプトが含まれている IoT Edge git リポジトリを複製します。Clone the IoT Edge git repo, which contains scripts to generate demo certificates.

    git clone https://github.com/Azure/iotedge.git
    
  2. 作業するディレクトリに移動します。Navigate to the directory in which you want to work. この記事では、このディレクトリを <WRKDIR> と呼びます。We'll refer to this directory throughout the article as <WRKDIR>. すべての証明書ファイルとキー ファイルがこのディレクトリに作成されます。All certificate and key files will be created in this directory.

  3. 構成ファイルとスクリプト ファイルを、複製した IoT Edge リポジトリから作業ディレクトリにコピーします。Copy the config and script files from the cloned IoT Edge repo into your working directory.

    cp <path>/iotedge/tools/CACertificates/*.cnf .
    cp <path>/iotedge/tools/CACertificates/certGen.sh .
    

ルート CA 証明書の作成Create root CA certificate

ルート CA 証明書は、IoT Edge シナリオをテストするための、その他すべてのデモ用証明書を作成するために使用されます。The root CA certificate is used to make all the other demo certificates for testing an IoT Edge scenario. 同じルート CA 証明書を使用し続けて、複数の IoT Edge やダウンストリーム デバイスのためにデモ用の証明書を作成できます。You can keep using the same root CA certificate to make demo certificates for multiple IoT Edge or downstream devices.

作業フォルダーにルート CA 証明書が既に 1 つある場合は、新しいものを作成しないでください。If you already have one root CA certificate in your working folder, don't create a new one. 新しいルート CA 証明書によって古い証明書が上書きされるので、古い証明書から作成されたダウンストリームの証明書がすべて機能しなくなります。The new root CA certificate will overwrite the old, and any downstream certificates made from the old one will stop working. 複数のルート CA 証明書が必要な場合は、それらを別個のフォルダーで管理してください。If you want multiple root CA certificates, be sure to manage them in separate folders.

このセクションの手順を続ける前に、「スクリプトの設定」セクションの手順に従って、デモ用の証明書生成スクリプトがある作業ディレクトリを準備してください。Before proceeding with the steps in this section, follow the steps in the Set up scripts section to prepare a working directory with the demo certificate generation scripts.

WindowsWindows

  1. 証明書生成スクリプトを配置した作業ディレクトリに移動します。Navigate to the working directory where you placed the certificate generation scripts.

  2. ルート CA 証明書を作成し、1 つの中間証明書に署名させます。Create the root CA certificate and have it sign one intermediate certificate. 証明書はすべて作業ディレクトリに配置されます。The certificates are all placed in your working directory.

    New-CACertsCertChain rsa
    

    このスクリプト コマンドでは、証明書とキーのファイルが複数作成されますが、記事で ルート CA 証明書 が求められた場合は次のファイルを使用します。This script command creates several certificate and key files, but when articles ask for the root CA certificate , use the following file:

    • <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem

LinuxLinux

  1. 証明書生成スクリプトを配置した作業ディレクトリに移動します。Navigate to the working directory where you placed the certificate generation scripts.

  2. ルート CA 証明書と 1 つの中間証明書を作成します。Create the root CA certificate and one intermediate certificate.

    ./certGen.sh create_root_and_intermediate
    

    このスクリプト コマンドでは、証明書とキーのファイルが複数作成されますが、記事で ルート CA 証明書 が求められた場合は次のファイルを使用します。This script command creates several certificate and key files, but when articles ask for the root CA certificate , use the following file:

    • <WRKDIR>/certs/azure-iot-test-only.root.ca.cert.pem

IoT Edge デバイス ID 証明書の作成Create IoT Edge device identity certificates

デバイス ID 証明書は、Azure IoT Hub Device Provisioning Service (DPS) を介して IoT Edge デバイスをプロビジョニングするために使用されます。Device identity certificates are used to provision IoT Edge devices through the Azure IoT Hub Device Provisioning Service (DPS).

デバイス ID 証明書は、IoT Edge デバイス上の config.yaml ファイルの プロビジョニング セクションにあります。Device identity certificates go in the Provisioning section of the config.yaml file on the IoT Edge device.

このセクションの手順を続ける前に、「スクリプトの設定」セクションと「ルート CA 証明書の作成」セクションの手順に従います。Before proceeding with the steps in this section, follow the steps in the Set up scripts and Create root CA certificate sections.

WindowsWindows

次のコマンドを使用して、IoT Edge デバイス ID 証明書と秘密キーを作成します。Create the IoT Edge device identity certificate and private key with the following command:

New-CACertsEdgeDeviceIdentity "<name>"

このコマンドに渡す名前が、IoT Hub の IoT Edge デバイス用のデバイス ID になります。The name that you pass in to this command will be the device ID for the IoT Edge device in IoT Hub.

新しいデバイス ID コマンドでは、複数の証明書とキー ファイルが作成されます。それには、DPS で個別登録を作成して IoT Edge ランタイムをインストールするときに使用する 3 つが含まれます。The new device identity command creates several certificate and key files, including three that you'll use when creating an individual enrollment in DPS and installing the IoT Edge runtime:

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

LinuxLinux

次のコマンドを使用して、IoT Edge デバイス ID 証明書と秘密キーを作成します。Create the IoT Edge device identity certificate and private key with the following command:

./certGen.sh create_edge_device_identity_certificate "<name>"

このコマンドに渡す名前が、IoT Hub の IoT Edge デバイス用のデバイス ID になります。The name that you pass in to this command will be the device ID for the IoT Edge device in IoT Hub.

スクリプトでは、複数の証明書とキー ファイルが作成されます。それには、DPS で個別登録を作成して IoT Edge ランタイムをインストールするときに使用する 2 つが含まれます。The script creates several certificate and key files, including three that you'll use when creating an individual enrollment in DPS and installing the IoT Edge runtime:

  • <WRKDIR>\certs\iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>/certs/iot-edge-device-identity-<name>.cert.pem
  • <WRKDIR>/private/iot-edge-device-identity-<name>.key.pem

IoT Edge デバイス CA 証明書の作成Create IoT Edge device CA certificates

運用環境に移行するすべての IoT Edge デバイスには、config.yaml ファイルから参照されるデバイス CA 証明書が必要です。Every IoT Edge device going to production needs a device CA certificate that's referenced from the config.yaml file. デバイス CA 証明書により、デバイスで実行されるモジュールのために証明書の作成が行われます。The device CA certificate is responsible for creating certificates for modules running on the device. また、デバイス CA 証明書は、IoT Edge デバイスがダウンストリーム デバイスに対して ID を検証する手段であるため、ゲートウェイのシナリオにも必要です。It's also necessary for gateway scenarios, because the device CA certificate is how the IoT Edge device verifies its identity to downstream devices.

デバイス CA の証明書は、IoT Edge デバイス上の config.yaml ファイルの 証明書 セクションにあります。Device CA certificates go in the Certificate section of the config.yaml file on the IoT Edge device.

このセクションの手順を続ける前に、「スクリプトの設定」セクションと「ルート CA 証明書の作成」セクションの手順に従います。Before proceeding with the steps in this section, follow the steps in the Set up scripts and Create root CA certificate sections.

WindowsWindows

  1. 証明書生成スクリプトとルート CA 証明書がある作業ディレクトリに移動します。Navigate to the working directory that has the certificate generation scripts and root CA certificate.

  2. 次のコマンドを使用して、IoT Edge デバイス CA 証明書と秘密キーを作成します。Create the IoT Edge device CA certificate and private key with the following command. CA 証明書の名前を入力します。Provide a name for the CA certificate.

    New-CACertsEdgeDevice "<CA cert name>"
    

    このコマンドでは、証明書とキーのファイルがいくつか作成されます。This command creates several certificate and key files. 次の証明書とキーのペアを IoT Edge デバイスにコピーし、config.yaml ファイルでそれらを参照する必要があります。The following certificate and key pair needs to be copied over to an IoT Edge device and referenced in the config.yaml file:

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

New-CACertsEdgeDevice コマンドに渡される名前は、config.yaml の hostname パラメーターや IoT Hub のデバイス ID と同じにしないでください。The name passed to the New-CACertsEdgeDevice command should not be the same as the hostname parameter in config.yaml, or the device's ID in IoT Hub.

LinuxLinux

  1. 証明書生成スクリプトとルート CA 証明書がある作業ディレクトリに移動します。Navigate to the working directory that has the certificate generation scripts and root CA certificate.

  2. 次のコマンドを使用して、IoT Edge デバイス CA 証明書と秘密キーを作成します。Create the IoT Edge device CA certificate and private key with the following command. CA 証明書の名前を入力します。Provide a name for the CA certificate.

    ./certGen.sh create_edge_device_ca_certificate "<CA cert name>"
    

    このスクリプト コマンドでは、証明書とキーのファイルがいくつか作成されます。This script command creates several certificate and key files. 次の証明書とキーのペアを IoT Edge デバイスにコピーし、config.yaml ファイルでそれらを参照する必要があります。The following certificate and key pair needs to be copied over to an IoT Edge device and referenced in the config.yaml file:

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

create_edge_device_ca_certificate コマンドに渡される名前は、config.yaml の hostname パラメーターや IoT Hub のデバイス ID と同じにしないでください。The name passed to the create_edge_device_ca_certificate command should not be the same as the hostname parameter in config.yaml, or the device's ID in IoT Hub.

ダウンストリーム デバイス証明書の作成Create downstream device certificates

ゲートウェイ シナリオのためにダウンストリーム IoT デバイスを設定しており、X.509 認証を使用する場合は、ダウンストリーム デバイスのためのデモ用証明書を生成できます。If you're setting up a downstream IoT device for a gateway scenario and want to use X.509 authentication, you can generate demo certificates for the downstream device. 対称キー認証を使用する場合は、ダウンストリーム デバイスの追加の証明書を作成する必要はありません。If you want to use symmetric key authentication, you don't need to create additional certificates for the downstream device. X.509 証明書を使用して IoT デバイスを認証する方法は 2 つあります。自己署名証明書を使用する方法、または証明機関 (CA) の署名付き証明書を使用する方法です。There are two ways to authenticate an IoT device using X.509 certificates: using self-signed certs or using certificate authority (CA) signed certs. X.509 自己署名認証 (拇印認証とも呼ばれます) の場合、お使いの IoT デバイス上に配置する新しい証明書を作成する必要があります。For X.509 self-signed authentication, sometimes referred to as thumbprint authentication, you need to create new certificates to place on your IoT device. これらの証明書には、認証のために IoT Hub と共有する拇印が含まれています。These certificates have a thumbprint in them that you share with IoT Hub for authentication. X.509 証明機関 (CA) の署名済みの認証の場合、お使いの IoT デバイスの証明書の署名に使用する IoT Hub に登録されているルート CA 証明書が必要です。For X.509 certificate authority (CA) signed authentication, you need a root CA certificate registered in IoT Hub that you use to sign certificates for your IoT device. ルート CA 証明書または中間証明書のいずれかで発行された証明書を使用しているデバイスはすべて、認証が許可されます。Any device using a certificate that was issued by the root CA certificate or any of its intermediate certificates will be permitted to authenticate.

証明書生成スクリプトは、これらの認証シナリオのいずれかをテストするデモ用の証明書を作成するのに役立ちます。The certificate generation scripts can help you make demo certificates to test out either of these authentication scenarios.

このセクションの手順を続ける前に、「スクリプトの設定」セクションと「ルート CA 証明書の作成」セクションの手順に従います。Before proceeding with the steps in this section, follow the steps in the Set up scripts and Create root CA certificate sections.

自己署名証明書Self-signed certificates

自己署名証明書を使用して IoT デバイスを認証する場合は、お使いのソリューションのルート CA 証明書に基づくデバイス証明書を作成する必要があります。When you authenticate an IoT device with self-signed certificates, you need to create device certificates based on the root CA certificate for your solution. 次に、その証明書から 16 進数の "フィンガープリント" を取得し、IoT Hub に提供します。Then, you retrieve a hexadecimal "fingerprint" from the certificates to provide to IoT Hub. IoT Hub で認証できるように、IoT デバイスにはデバイス証明書のコピーも必要です。Your IoT device also needs a copy of its device certificates so that it can authenticate with IoT Hub.

WindowsWindows

  1. 証明書生成スクリプトとルート CA 証明書がある作業ディレクトリに移動します。Navigate to the working directory that has the certificate generation scripts and root CA certificate.

  2. ダウンストリーム デバイス用に 2 つの証明書 (プライマリとセカンダリ) を作成します。Create two certificates (primary and secondary) for the downstream device. 簡単に使える名前付け規則として、IoT デバイスの名前の後に primary または secondary のラベルを付けて証明書を作成します。An easy naming convention to use is to create the certificates with the name of the IoT device and then the primary or secondary label. 次に例を示します。For example:

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

    このスクリプト コマンドでは、証明書とキーのファイルがいくつか作成されます。This script command creates several certificate and key files. 以下の証明書とキーのペアをダウンストリーム IoT デバイスにコピーし、IoT Hub に接続するアプリケーション内で、それらのペアを参照する必要があります。The following certificate and key pairs needs to be copied over to the downstream IoT device and referenced in the applications that connect to IoT Hub:

    • <WRKDIR>\certs\iot-device-<device name>-primary-full-chain.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-secondary-full-chain.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-primary.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-secondary.cert.pem
    • <WRKDIR>\certs\iot-device-<device name>-primary.cert.pfx
    • <WRKDIR>\certs\iot-device-<device name>-secondary.cert.pfx
    • <WRKDIR>\private\iot-device-<device name>-primary.key.pem
    • <WRKDIR>\private\iot-device-<device name>-secondary.key.pem
  3. 各証明書から SHA1 フィンガープリント (IoT Hub のコンテキストではサムプリントと呼ばれます) を取得します。Retrieve the SHA1 fingerprint (called a thumbprint in IoT Hub contexts) from each certificate. フィンガープリントは、40 文字の 16 進数文字列です。The fingerprint is a 40 hexadecimal character string. 次の openssl コマンドを使用して、証明書を表示し、フィンガープリントを見つけます。Use the following openssl command to view the certificate and find the fingerprint:

    openssl x509 -in <WRKDIR>\certs\iot-device-<device name>-primary.cert.pem -text -fingerprint
    

    このコマンドは 2 回実行します。1 回目はプライマリ証明書、2 回目はセカンダリ証明書に対して実行します。Run this command twice, once for the primary certificate and once for the secondary certificate. 自己署名 X.509 証明書を使用して新しい IoT デバイスを登録する場合は、両方の証明書のフィンガープリントを指定します。You provide fingerprints for both certificates when you register a new IoT device using self-signed X.509 certificates.

LinuxLinux

  1. 証明書生成スクリプトとルート CA 証明書がある作業ディレクトリに移動します。Navigate to the working directory that has the certificate generation scripts and root CA certificate.

  2. ダウンストリーム デバイス用に 2 つの証明書 (プライマリとセカンダリ) を作成します。Create two certificates (primary and secondary) for the downstream device. 簡単に使える名前付け規則として、IoT デバイスの名前の後に primary または secondary のラベルを付けて証明書を作成します。An easy naming convention to use is to create the certificates with the name of the IoT device and then the primary or secondary label. 次に例を示します。For example:

    ./certGen.sh create_device_certificate "<device name>-primary"
    ./certGen.sh create_device_certificate "<device name>-secondary"
    

    このスクリプト コマンドでは、証明書とキーのファイルがいくつか作成されます。This script command creates several certificate and key files. 以下の証明書とキーのペアをダウンストリーム IoT デバイスにコピーし、IoT Hub に接続するアプリケーション内で、それらのペアを参照する必要があります。The following certificate and key pairs needs to be copied over to the downstream IoT device and referenced in the applications that connect to IoT Hub:

    • <WRKDIR>/certs/iot-device-<device name>-primary-full-chain.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-secondary-full-chain.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-primary.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-secondary.cert.pem
    • <WRKDIR>/certs/iot-device-<device name>-primary.cert.pfx
    • <WRKDIR>/certs/iot-device-<device name>-secondary.cert.pfx
    • <WRKDIR>/private/iot-device-<device name>-primary.key.pem
    • <WRKDIR>/private/iot-device-<device name>-secondary.key.pem
  3. 各証明書から SHA1 フィンガープリント (IoT Hub のコンテキストではサムプリントと呼ばれます) を取得します。Retrieve the SHA1 fingerprint (called a thumbprint in IoT Hub contexts) from each certificate. フィンガープリントは、40 文字の 16 進数文字列です。The fingerprint is a 40 hexadecimal character string. 次の openssl コマンドを使用して、証明書を表示し、フィンガープリントを見つけます。Use the following openssl command to view the certificate and find the fingerprint:

    openssl x509 -in <WRKDIR>/certs/iot-device-<device name>-primary.cert.pem -text -fingerprint | sed 's/[:]//g'
    

    自己署名 X.509 証明書を使用して新しい IoT デバイスを登録する場合は、プライマリとセカンダリの両方のフィンガープリントを指定します。You provide both the primary and secondary fingerprint when you register a new IoT device using self-signed X.509 certificates.

CA 署名証明書CA-signed certificates

自己署名証明書を使用して IoT デバイスを認証する場合は、お使いのソリューションのルート CA 証明書を IoT Hub にアップロードする必要があります。When you authenticate an IoT device with self-signed certificates, you need to upload the root CA certificate for your solution to IoT Hub. 次に、ルート CA 証明書を所有している IoT Hub を証明するための検証を実行します。Then, you perform a verification to prove to IoT Hub that you own the root CA certificate. 最後に、同じルート CA 証明書を使用して、IoT デバイスが IoT Hub で認証できるように、そのデバイスに配置するデバイス証明書を作成します。Finally, you use the same root CA certificate to create device certificates to put on your IoT device so that it can authenticate with IoT Hub.

このセクションの証明書は、「Azure IoT Hub での X.509 セキュリティの設定」の手順に向けたものです。The certificates in this section are for the steps in Set up X.509 security in your Azure IoT hub.

WindowsWindows

  1. 作業ディレクトリからルート CA 証明書ファイル <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem をお使いの IoT ハブにアップロードします。Upload the root CA certificate file from your working directory, <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem, to your IoT hub.

  2. Azure portal で提供されているコードを使用して、そのルート CA 証明書を所有していることを確認します。Use the code provided in the Azure portal to verify that you own that root CA certificate.

    New-CACertsVerificationCert "<verification code>"
    
  3. お使いのダウンストリーム デバイスに証明書チェーンを作成します。Create a certificate chain for your downstream device. IoT Hub でデバイスの登録に使われたのと同じデバイス ID を使用します。Use the same device ID that the device is registered with in IoT Hub.

    New-CACertsDevice "<device id>"
    

    このスクリプト コマンドでは、証明書とキーのファイルがいくつか作成されます。This script command creates several certificate and key files. 以下の証明書とキーのペアをダウンストリーム IoT デバイスにコピーし、IoT Hub に接続するアプリケーション内で、それらのペアを参照する必要があります。The following certificate and key pairs needs to be copied over to the downstream IoT device and referenced in the applications that connect to IoT Hub:

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

LinuxLinux

  1. 作業ディレクトリからルート CA 証明書ファイル <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem をお使いの IoT ハブにアップロードします。Upload the root CA certificate file from your working directory, <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem, to your IoT hub.

  2. Azure portal で提供されているコードを使用して、そのルート CA 証明書を所有していることを確認します。Use the code provided in the Azure portal to verify that you own that root CA certificate.

    ./certGen.sh create_verification_certificate "<verification code>"
    
  3. お使いのダウンストリーム デバイスに証明書チェーンを作成します。Create a certificate chain for your downstream device. IoT Hub でデバイスの登録に使われたのと同じデバイス ID を使用します。Use the same device ID that the device is registered with in IoT Hub.

    ./certGen.sh create_device_certificate "<device id>"
    

    このスクリプト コマンドでは、証明書とキーのファイルがいくつか作成されます。This script command creates several certificate and key files. 以下の証明書とキーのペアをダウンストリーム IoT デバイスにコピーし、IoT Hub に接続するアプリケーション内で、それらのペアを参照する必要があります。The following certificate and key pairs needs to be copied over to the downstream IoT device and referenced in the applications that connect to IoT Hub:

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