Skip to content

Commit db4cb95

Browse files
committed
Rewording some lines
1 parent 7f8e304 commit db4cb95

File tree

4 files changed

+41
-19
lines changed

4 files changed

+41
-19
lines changed

articles/iot-edge/how-to-create-transparent-gateway.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ If you don't have a device ready, you should create one before continuing with t
6060

6161
All IoT Edge gateways need a device CA certificate installed on them. The IoT Edge security daemon uses the IoT Edge device CA certificate to sign a workload CA certificate, which in turn signs a server certificate for IoT Edge hub. The gateway presents its server certificate to the downstream device during the initiation of the connection. The downstream device checks to make sure that the server certificate is part of a certificate chain that rolls up to the root CA certificate. This process allows the downstream device to confirm that the gateway comes from a trusted source. For more information, see [Understand how Azure IoT Edge uses certificates](iot-edge-certs.md).
6262

63-
![Gateway certificate setup](./media/how-to-create-transparent-gateway/gateway-setup.png)
63+
:::image type="content" source="./media/how-to-create-transparent-gateway/gateway-setup.png" alt-text="Screenshot that shows the gateway certificate setup." lightbox="./media/how-to-create-transparent-gateway/gateway-setup.png":::
6464

6565
The root CA certificate and the device CA certificate (with its private key) need to be present on the IoT Edge gateway device and configured in the IoT Edge config file. Remember that in this case *root CA certificate* means the topmost certificate authority for this IoT Edge scenario. The gateway device CA certificate and the downstream device certificates need to roll up to the same root CA certificate.
6666

@@ -120,6 +120,8 @@ If you don't have your own certificate authority and want to use demo certificat
120120

121121
Now, you need to copy the certificates to the Azure IoT Edge for Linux on Windows virtual machine.
122122

123+
[PowerShell functions reference](reference-iot-edge-for-linux-on-windows-functions.md)
124+
123125
1. Check the certificate meets [format requirements](how-to-manage-device-certificates.md#format-requirements).
124126

125127
1. Copy the certificates to the EFLOW virtual machine to a directory where you have write access. For example, the `/home/iotedge-user` home directory.

articles/iot-edge/how-to-manage-device-certificates.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@ services: iot-edge
1313

1414
[!INCLUDE [iot-edge-version-1.4](includes/iot-edge-version-1.4.md)]
1515

16-
All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too. For more information about the function of the different certificates on an IoT Edge device, see [Understand how Azure IoT Edge uses certificates](iot-edge-certs.md).
16+
All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too.
1717

1818
> [!NOTE]
19-
> The term *root CA* used throughout this article refers to the topmost authority's certificate in the certificate chain for your IoT solution. You do not need to use the certificate root of a syndicated certificate authority, or the root of your organization's certificate authority. In many cases, it is actually an intermediate CA certificate.
19+
> The term *root CA* used throughout this article refers to the topmost authority's certificate in the certificate chain for your IoT solution. You do not need to use the certificate root of a syndicated certificate authority, or the root of your organization's certificate authority. In many cases, it's actually an intermediate CA certificate.
2020
2121
## Prerequisites
2222

23-
* [Understand how Azure IoT Edge uses certificates](iot-edge-certs.md).
23+
* You should be familiar with the concepts in [Understand how Azure IoT Edge uses certificates](iot-edge-certs.md), in particular how IoT Edge uses certificates.
2424

25-
* An IoT Edge device.
26-
If you don't have an IoT Edge device set up, you can create one in an Azure virtual machine. Follow the steps in one of the quickstart articles to [Create a virtual Linux device](quickstart-linux.md) or [Create a virtual Windows device](quickstart.md).
25+
* An IoT Edge device.<br>
26+
If you don't have an IoT Edge device set up, you can create one in an Azure virtual machine. Follow the steps in one of these quickstart articles to [Create a virtual Linux device](quickstart-linux.md) or [Create a virtual Windows device](quickstart.md).
2727

2828
* Ability to edit the IoT Edge configuration file `config.toml` following the [configuration template](https://github.com/Azure/iotedge/blob/main/edgelet/contrib/config/linux/template.toml).
2929

@@ -39,10 +39,10 @@ All IoT Edge devices use certificates to create secure connections between the r
3939

4040
> [!TIP]
4141
>
42-
> * A certificate can be encoded in a binary representation called DER, or a textual representation called PEM. The PEM format is a `-----BEGIN CERTIFICATE-----` header followed by the base64-encoded DER followed by a `-----END CERTIFICATE-----` footer.
42+
> * A certificate can be encoded in a binary representation called DER (Distinguished Encoding Rules), or a textual representation called PEM (Privacy Enhanced Mail). The PEM format has a `-----BEGIN CERTIFICATE-----` header followed by the base64-encoded DER followed by an `-----END CERTIFICATE-----` footer.
4343
> * Similar to the certificate, the private key can be encoded in binary DER or textual representation PEM.
44-
> * Because PEM is delineated, it is also possible to construct a PEM that combines both the `CERTIFICATE` and `PRIVATE KEY` sequentially in the same file.
45-
> * Lastly, the certificate and private key can be encoded together in a binary representation called *PKCS#12*, that is encrypted with an optional password.
44+
> * Because PEM is delineated, it's also possible to construct a PEM that combines both the `CERTIFICATE` and `PRIVATE KEY` sequentially in the same file.
45+
> * Lastly, the certificate and private key can be encoded together in a binary representation called *PKCS#12*, that's encrypted with an optional password.
4646
>
4747
> File extensions are arbitrary and you need to run the `file` command or view the file verify the type. In general, files use the following extension conventions:
4848
>
@@ -132,7 +132,7 @@ Using a self-signed certificate authority (CA) certificate as a root of trust wi
132132

133133
1. Get a publicly trusted root CA certificate from a PKI provider.
134134

135-
1. Check the certificate meets [format requirements](#format-requirements).
135+
1. Check that the certificate meets the [format requirements](#format-requirements).
136136

137137
1. Copy the PEM file and give IoT Edge's certificate service access. For example, with `/var/aziot/certs` directory:
138138

@@ -152,12 +152,12 @@ Using a self-signed certificate authority (CA) certificate as a root of trust wi
152152
sudo chmod 644 /var/aziot/certs/root-ca.pem
153153
```
154154

155-
1. In the IoT Edge configuration file `config.toml`, find **Trust bundle cert** section. If the section is missing, you can copy it from the configuration template file.
155+
1. In the IoT Edge configuration file `config.toml`, find the **Trust bundle cert** section. If the section is missing, you can copy it from the configuration template file.
156156

157157
>[!TIP]
158158
>If the config file doesn't exist on your device yet, then use `/etc/aziot/config.toml.edge.template` as a template to create one.
159159
160-
1. Set `trust_bundle_cert` key to the certificate file location.
160+
1. Set the `trust_bundle_cert` key to the certificate file location.
161161

162162
```toml
163163
trust_bundle_cert = "file:///var/aziot/certs/root-ca.pem"
@@ -196,7 +196,7 @@ IoT Edge can use existing certificate and private key files to authenticate or a
196196

197197
1. Check the certificate and private key files meet the [format requirements](#format-requirements).
198198

199-
1. Copy the PEM file to the IoT Edge device where IoT Edge modules can have access. For example, `/var/aziot/` directory.
199+
1. Copy the PEM file to the IoT Edge device where IoT Edge modules can have access. For example, the `/var/aziot/` directory.
200200

201201
```bash
202202
# If the certificate and keys directories don't exist, create, set ownership, and set permissions

articles/iot-edge/how-to-vs-code-develop-module.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,24 @@ To build and deploy your module image, you need Docker to build the module image
7070
7171
- Install the [Azure CLI](/cli/azure/install-azure-cli).
7272

73+
::: zone pivot="iotedge-dev-cli"
74+
75+
- Install the Python-based [Azure IoT Edge Dev Tool](https://pypi.org/project/iotedgedev/) in order to set up your local development environment to debug, run, and test your IoT Edge solution. If you haven't already done so, install [Python (3.6/3.7) and Pip3](https://www.python.org/) and then install the IoT Edge Dev Tool (iotedgedev) by running the following command in your terminal.
76+
77+
```cmd
78+
pip3 install iotedgedev
79+
```
80+
81+
> [!NOTE]
82+
>
83+
> If you have multiple Python including pre-installed Python 2.7 (for example, on Ubuntu or macOS), make sure you are using `pip3` to install *IoT Edge Dev Tool (iotedgedev)*.
84+
>
85+
> For more information setting up your development machine, see [iotedgedev development setup](https://github.com/Azure/iotedgedev/blob/main/docs/environment-setup/manual-dev-machine-setup.md).
86+
87+
To stay current on the testing environment for IoT Edge, see the [test-coverage](https://github.com/Azure/iotedgedev/blob/main/docs/test-coverage.md) list.
88+
89+
::: zone-end
90+
7391
Install prerequisites specific to the language you're developing in:
7492
7593
# [C\# / Azure Functions](#tab/csharp+azfunctions)
@@ -240,7 +258,7 @@ There are four items within the solution:
240258

241259
### Set IoT Edge runtime version
242260

243-
The IoT Edge extension defaults to the latest stable version of the IoT Edge runtime when it creates your deployment assets. Currently, the latest stable version is version 1.4. If you're developing modules for devices running the 1.1 long-term support version or the earlier 1.0 version, update the IoT Edge runtime version in Visual Studio Code to match.
261+
The IoT Edge extension defaults to the latest stable version of the IoT Edge runtime when it creates your deployment assets.
244262

245263
::: zone pivot="iotedge-dev-ext"
246264

articles/iot-edge/iot-edge-certs.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ These core scenarios are where IoT Edge uses certificates. Use the links to lear
4343

4444
To help understand IoT Edge certificate concepts, imagine a scenario where an IoT Edge device named *EdgeGateway* connects to an Azure IoT Hub named *ContosoIotHub*. In this example, all authentication is done with X.509 certificate authentication rather than symmetric keys. To establish trust in this scenario, we need to guarantee the IoT Hub and IoT Edge device are authentic: *"Is this device genuine and valid?"* and *"Is the identity of the IoT Hub correct?"*. The scenario can be illustrated as follows:
4545

46-
:::image type="content" source="./media/iot-edge-certs/trust-scenario.svg" alt-text="Trust scenario state diagram showing connection between IoT Edge device and IoT Hub.":::
46+
:::image type="content" source="./media/iot-edge-certs/trust-scenario.svg" alt-text="Trust scenario state diagram showing connection between IoT Edge device and IoT Hub." lightbox="./media/iot-edge-certs/trust-scenario.svg":::
4747

4848
<!-- mermaid
4949
stateDiagram-v2
@@ -95,11 +95,11 @@ The root certificate authority (CA) is the [Baltimore CyberTrust Root](https://w
9595

9696
Windows certificate store:
9797

98-
:::image type="content" source="./media/iot-edge-certs/baltimore-windows.png" alt-text="Screenshot showing Baltimore CyberTrust Root certificate listed in the Windows certificate store.":::
98+
:::image type="content" source="./media/iot-edge-certs/baltimore-windows.png" alt-text="Screenshot showing Baltimore CyberTrust Root certificate listed in the Windows certificate store." lightbox="./media/iot-edge-certs/baltimore-windows.png":::
9999

100100
Ubuntu certificate store:
101101

102-
:::image type="content" source="./media/iot-edge-certs/ubuntu-baltimore.png" alt-text="Screenshot showing Baltimore CyberTrust Root certificate listed in the Ubuntu certificate store.":::
102+
:::image type="content" source="./media/iot-edge-certs/ubuntu-baltimore.png" alt-text="Screenshot showing Baltimore CyberTrust Root certificate listed in the Ubuntu certificate store." lightbox="./media/iot-edge-certs/ubuntu-baltimore.png":::
103103

104104
When a device checks for the *Baltimore CyberTrust Root* certificate, it's preinstalled in the OS. From *EdgeGateway* perspective, since the certificate chain presented by *ContosoIotHub* is signed by a root CA that the OS trusts, the certificate is considered trustworthy. The certificate is known as **IoT Hub server certificate**. To learn more about the IoT Hub server certificate, see [Transport Layer Security (TLS) support in IoT Hub](../iot-hub/iot-hub-tls-support.md).
105105

@@ -148,7 +148,9 @@ If we view the thumbprint value for the *EdgeGateway* device in the Azure portal
148148

149149
:::image type="content" source="./media/iot-edge-certs/edge-id-thumbprint.png" alt-text="Screenshot from Azure portal of EdgeGateway device's thumbprint in ContosoIotHub.":::
150150

151-
In summary, *ContosoIotHub* can trust *EdgeGateway* because *EdgeGateway* presents a valid **IoT Edge device identity certificate** whose thumbprint matches the one registered in IoT Hub.
151+
In summary, *ContosoIotHub* can trust *EdgeGateway* because *EdgeGateway* presents a valid **IoT Edge device identity certificate** whose thumbprint matches the one registered in IoT Hub.
152+
153+
For more information about the certificate process, see [Create and provision an IoT Edge device on Linux using X.509 certificates](how-to-provision-single-device-linux-x509.md).
152154

153155
> [!NOTE]
154156
> This example doesn't address Azure IoT Hub Device Provisioning Service (DPS), which has support for X.509 CA authentication with IoT Edge when provisioned with an enrollment group. Using DPS, you upload the CA certificate or an intermediate certificate, the certificate chain is verified, then the device is provisioned. To learn more, see [DPS X.509 certificate attestation](../iot-dps/concepts-x509-attestation.md).
@@ -169,7 +171,7 @@ You now have a good understanding of a simple interaction IoT Edge between and I
169171

170172
We add a regular IoT device named *TempSensor*, which connects to its parent IoT Edge device *EdgeGateway* that connects to IoT Hub *ContosoIotHub*. Similar to before, all authentication is done with X.509 certificate authentication. Our new scenario raises two new questions: *"Is the TempSensor device legitimate?"* and *"Is the identity of the EdgeGateway correct?"*. The scenario can be illustrated as follows:
171173

172-
:::image type="content" source="./media/iot-edge-certs/trust-scenario-ext.svg" alt-text="Trust scenario state diagram showing connection between IoT Edge device, an IoT Edge gateway, and IoT Hub.":::
174+
:::image type="content" source="./media/iot-edge-certs/trust-scenario-ext.svg" alt-text="Trust scenario state diagram showing connection between IoT Edge device, an IoT Edge gateway, and IoT Hub." lightbox="./media/iot-edge-certs/trust-scenario-ext.svg":::
173175

174176
<!-- mermaid
175177
stateDiagram-v2

0 commit comments

Comments
 (0)