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
Replace the placeholder values for `{scope_id}`, `{registration_id}`, and `{symmetric_key}` with the data you collected earlier. Make sure the **provisioning:** line has no preceding whitespace and that nested items are indented by two spaces.
180
+
Replace the placeholder values for `<SCOPE_ID>`, `<REGISTRATION_ID>`, and `<SYMMETRIC_KEY>` with the data you collected earlier. Make sure the **provisioning:** line has no preceding whitespace and that nested items are indented by two spaces.
Copy file name to clipboardExpand all lines: articles/iot-edge/how-to-create-test-certificates.md
+61-6Lines changed: 61 additions & 6 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.
@@ -49,7 +58,7 @@ There are several ways to install OpenSSL, including the following options:
49
58
50
59
1. Navigate to a directory where you want to install vcpkg. Follow the instructions to download and install [vcpkg](https://github.com/Microsoft/vcpkg).
51
60
52
-
2. Once vcpkg is installed, run the following command from a powershell prompt to install the OpenSSL package for Windows x64. The installation typically takes about 5 minutes to complete.
61
+
2. Once vcpkg is installed, run the following command from a PowerShell prompt to install the OpenSSL package for Windows x64. The installation typically takes about 5 minutes to complete.
53
62
54
63
```powershell
55
64
.\vcpkg install openssl:x64-windows
@@ -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: 03/02/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.
0 commit comments