You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-create-test-certificates.md
+60-5Lines changed: 60 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Create test certificates and learn how to install them on an Azure
4
4
author: kgremban
5
5
manager: philmea
6
6
ms.author: kgremban
7
-
ms.date: 12/07/2019
7
+
ms.date: 02/26/2020
8
8
ms.topic: conceptual
9
9
ms.service: iot-edge
10
10
services: iot-edge
@@ -22,6 +22,15 @@ You can create certificates on any machine, and then copy them over to your IoT
22
22
It's easier to use your primary machine to create the certificates rather than generating them on your IoT Edge device itself.
23
23
By using your primary machine, you can set up the scripts once and then repeat the process to create certificates for multiple devices.
24
24
25
+
Follow these steps to create demo certificates for testing your IoT Edge scenario:
26
+
27
+
1.[Set up scripts](#set-up-scripts) for certificate generation on your device.
28
+
2.[Create the root CA certificate](#create-root-ca-certificate) that you use to sign all the other certificates for your scenario.
29
+
3. Generate the certificates you need for the scenario you want to test:
30
+
*[Create IoT Edge device identity certificates](#create-iot-edge-device-identity-certificates) to test automatic provisioning with the IoT Hub Device Provisioning Service.
31
+
*[Create IoT Edge device CA certificates](#create-iot-edge-device-ca-certificates) to test production scenarios or gateway scenarios.
32
+
*[Create downstream device certificates](#create-downstream-device-certificates) to test authenticating downstream devices to IoT Hub in a gateway scenario.
33
+
25
34
## Prerequisites
26
35
27
36
A development machine with Git installed.
@@ -169,7 +178,11 @@ Before proceeding with the steps in this section, follow the steps in the [Set u
169
178
170
179
## Create IoT Edge device CA certificates
171
180
172
-
Every IoT Edge device going to production needs a device CA certificate that's referenced from the config.yaml file. The device CA certificate is responsible for creating certificates for modules running on the device. It's also how the IoT Edge device verifies its identity when connecting to downstream devices.
181
+
Every IoT Edge device going to production needs a device CA certificate that's referenced from the config.yaml file.
182
+
The device CA certificate is responsible for creating certificates for modules running on the device.
183
+
It's also how the IoT Edge device verifies its identity when connecting to downstream devices.
184
+
185
+
Device CA certificates go in the **Certificate** section of the config.yaml file on the IoT Edge device.
173
186
174
187
Before proceeding with the steps in this section, follow the steps in the [Set up scripts](#set-up-scripts) and [Create root CA certificate](#create-root-ca-certificate) sections.
175
188
@@ -188,7 +201,9 @@ Before proceeding with the steps in this section, follow the steps in the [Set u
The gateway device name passed into those scripts should not be the same as the "hostname" parameter in config.yaml. The scripts help you avoid any issues by appending a ".ca" string to the gateway device name to prevent the name collision in case a user sets up IoT Edge using the same name in both places. However, it's good practice to avoid using the same name.
204
+
The gateway device name passed into those scripts should not be the same as the "hostname" parameter in config.yaml, or the device's ID in IoT Hub.
205
+
The scripts help you avoid any issues by appending a ".ca" string to the gateway device name to prevent the name collision in case a user sets up IoT Edge using the same name in both places.
206
+
However, it's good practice to avoid using the same name.
192
207
193
208
### Linux
194
209
@@ -205,9 +220,49 @@ The gateway device name passed into those scripts should not be the same as the
The gateway device name passed into those scripts should not be the same as the "hostname" parameter in config.yaml. The scripts help you avoid any issues by appending a ".ca" string to the gateway device name to prevent the name collision in case a user sets up IoT Edge using the same name in both places. However, it's good practice to avoid using the same name.
223
+
The gateway device name passed into those scripts should not be the same as the "hostname" parameter in config.yaml, or the device's ID in IoT Hub.
224
+
The scripts help you avoid any issues by appending a ".ca" string to the gateway device name to prevent the name collision in case a user sets up IoT Edge using the same name in both places.
225
+
However, it's good practice to avoid using the same name.
226
+
227
+
## Create IoT Edge device identity certificates
228
+
229
+
Device identity certificates are used to provision IoT Edge devices through the [Azure IoT Hub Device Provisioning Service (DPS)](../iot-dps/index.yml).
230
+
231
+
Device identity certificates go in the **Provisioning** section of the config.yaml file on the IoT Edge device.
232
+
233
+
Before proceeding with the steps in this section, follow the steps in the [Set up scripts](#set-up-scripts) and [Create root CA certificate](#create-root-ca-certificate) sections.
234
+
235
+
### Windows
236
+
237
+
Create the IoT Edge device identity certificate and private key with the following command:
238
+
239
+
```powershell
240
+
New-CACertsEdgeDeviceIdentity "<name>"
241
+
```
242
+
243
+
The name that you pass in to this command will be the device ID for the IoT Edge device in IoT Hub.
244
+
245
+
The new device identity command creates several certificate and key files, including two that you'll use when creating an individual enrollment in DPS and installing the IoT Edge runtime:
The name that you pass in to this command will be the device ID for the IoT Edge device in IoT Hub.
259
+
260
+
The script creates several certificate and key files, including two that you'll use when creating an individual enrollment in DPS and installing the IoT Edge runtime:
title: Built-in edgeAgent direct methods - Azure IoT Edge
3
+
description: Monitor and manage an IoT Edge deployment using built-in direct methods in the IoT Edge agent runtime module
4
+
author: kgremban
5
+
manager: philmea
6
+
ms.author: kgremban
7
+
ms.date: 02/19/2020
8
+
ms.topic: conceptual
9
+
ms.reviewer: veyalla
10
+
ms.service: iot-edge
11
+
services: iot-edge
12
+
---
13
+
14
+
# Communicate with edgeAgent using built-in direct methods
15
+
16
+
Monitor and manage IoT Edge deployments by using the direct methods included in the IoT Edge agent module. Direct methods are implemented on the device, and then can be invoked from the cloud. The IoT Edge agent includes direct methods that help you monitor and manage your IoT Edge devices remotely.
17
+
18
+
For more information about direct methods, how to use them, and how to implement them in your own modules, see [Understand and invoke direct methods from IoT Hub](../iot-hub/iot-hub-devguide-direct-methods.md).
19
+
20
+
## Ping
21
+
22
+
The **ping** method is useful for checking whether IoT Edge is running on a device, or whether the device has an open connection to ioT Hub. Use this direct method to ping the IoT Edge agent and get its status. A successful ping returns an empty payload and **"status": 200**.
In the Azure portal, invoke the method with the method name `ping` and an empty JSON payload `{}`.
31
+
32
+

33
+
34
+
## Restart module
35
+
36
+
The **RestartModule** method allows for remote management of modules running on an IoT Edge device. If a module is reporting a failed state or other unhealthy behavior, you can trigger the IoT Edge agent to restart it. A successful restart command returns an empty payload and **"status": 200**.
37
+
38
+
The RestartModule method is available in IoT Edge version 1.0.9 and later.
39
+
40
+
You can use the RestartModule direct method on any module running on an IoT Edge device, including the edgeAgent module itself. However, if you use this direct method to shut down the edgeAgent, you won't receive a success result since the connection is disrupted while the module restarts.
Find the provisioning configurations of the file and uncomment the **Manual provisioning configuration** section. Update the value of **device_connection_string** with the connection string from your IoT Edge device. Make sure any other provisioning sections are commented out. Make sure the **provisioning:** line has no preceding whitespace and that nested items are indented by two spaces.
To automatically provision a device, [set up Device Provisioning Service and retrieve your device registration ID](how-to-auto-provision-simulated-device-linux.md). There are a number of attestation mechanisms supported by IoT Edge when using automatic provisioning but your hardware requirements also impact your choices. For example, Raspberry Pi devices do not come with a Trusted Platform Module (TPM) chip by default.
199
+
IoT Edge devices can be automatically provisioned using the [Azure IoT Hub Device Provisioning Service (DPS)](../iot-dps/index.yml). Currently, IoT Edge supports two attestation mechanisms when using automatic provisioning, but your hardware requirements may impact your choices. For example, Raspberry Pi devices do not come with a Trusted Platform Module (TPM) chip by default. For more information, refer to the following articles:
200
+
201
+
* [Create and provision an IoT Edge device with a virtual TPM on a Linux VM](how-to-auto-provision-simulated-device-linux.md)
202
+
* [Create and provision an IoT Edge device using X.509 certificates](how-to-auto-provision-x509-certs.md)
203
+
* [Create and provision an IoT Edge device using symmetric key attestation](how-to-auto-provision-symmetric-keys.md)
204
+
205
+
Those articles walk you through setting up enrollments in DPS, and generating the proper certificates or keys for attestation. Regardless of which attestation mechanism you choose, the provisioning information is added to the IoT Edge configuration file on your IoT Edge device.
208
206
209
207
Open the configuration file.
210
208
211
209
```bash
212
210
sudo nano /etc/iotedge/config.yaml
213
211
```
214
212
215
-
Find the provisioning configurations of the file and uncomment the section appropriate for your attestation mechanism. When using TPM attestation, for example, update the values of **scope_id** and **registration_id** with the values from your IoT Hub Device Provisioning service and your IoT Edge device with TPM, respectively. Make sure the **provisioning:** line has no preceding whitespace and that nested items are indented by two spaces.
213
+
Find the provisioning configurations of the file and uncomment the section appropriate for your attestation mechanism. Make sure any other provisioning sections are commented out. The **provisioning:** line should have no preceding whitespace, and nested items should be indented by two spaces. Update the value of **scope_id** with the value from your IoT Hub Device Provisioning Service instance, and provide the appropriate values for the attestation fields.
0 commit comments