Skip to content

Commit 5ccd5a7

Browse files
authored
Merge pull request #296102 from PatAltimore/patricka-est
Update EST dockerfile and clarify use
2 parents 3864c75 + b602edb commit 5ccd5a7

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed
Binary file not shown.

articles/iot-edge/tutorial-configure-est-server.md

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Tutorial - Configure Enrollment over Secure Transport Server (EST) for Az
33
description: This tutorial shows you how to set up an Enrollment over Secure Transport (EST) server for Azure IoT Edge.
44
author: PatAltimore
55
ms.author: patricka
6-
ms.date: 11/07/2024
6+
ms.date: 03/10/2025
77
ms.topic: tutorial
88
ms.service: azure-iot-edge
99
services: iot-edge
@@ -15,16 +15,14 @@ services: iot-edge
1515

1616
With Azure IoT Edge, you can configure your devices to use an Enrollment over Secure Transport (EST) server to manage x509 certificates.
1717

18-
This tutorial walks you through hosting a test EST server and configuring an IoT Edge device for the enrollment and renewal of x509 certificates. In this tutorial, you learn how to:
18+
This tutorial walks you through hosting a test EST server and configuring an IoT Edge device for the enrollment and renewal of device identity x509 certificates. In this tutorial, you learn how to:
1919

2020
> [!div class="checklist"]
2121
>
22-
> * Create and host a test EST server
22+
> * Create and host a test EST server for device identity certificates
2323
> * Configure DPS group enrollment
2424
> * Configure device
2525
26-
:::image type="content" source="./media/tutorial-configure-est-server/est-procedure.png" alt-text="Diagram showing high-level overview of the three steps needed to complete this tutorial.":::
27-
2826
## Prerequisites
2927

3028
* An existing IoT Edge device with the [latest Azure IoT Edge runtime](how-to-update-iot-edge.md) installed. If you need to create a test device, complete [Quickstart: Deploy your first IoT Edge module to a virtual Linux device](quickstart-linux.md).
@@ -43,7 +41,9 @@ Enrollment over Secure Transport (EST) is a cryptographic protocol that automate
4341
For certificate issuance and renewal, you need an EST server accessible to your devices.
4442

4543
> [!IMPORTANT]
46-
> For enterprise grade solutions, consider: [GlobalSign IoT Edge Enroll](https://www.globalsign.com/en/iot-edge-enroll) or [DigiCert IoT Device Manager](https://www.digicert.com/iot/iot-device-manager).
44+
> For production, use [GlobalSign IoT Edge Enroll](https://www.globalsign.com/en/iot-edge-enroll) or [DigiCert IoT Device Manager](https://www.digicert.com/iot/iot-device-manager).
45+
>
46+
> For more information using GlobalSign's EST service, see [Automatic IoT Edge Certificate Management with GlobalSign EST](https://techcommunity.microsoft.com/blog/iotblog/automatic-iot-edge-certificate-management-with-globalsign-est/4384385).
4747
4848
For testing and development, you can use a test EST server. In this tutorial, we'll create a test EST server.
4949

@@ -68,7 +68,7 @@ The Dockerfile uses Ubuntu 18.04, a [Cisco library called `libest`](https://gith
6868
> If you want to host your EST server in Azure Container Instance, change `myestserver.westus.azurecontainer.io` to the DNS name of your EST server. When choosing a DNS name, be aware the DNS label for an Azure Container instance must be at least five characters in length.
6969
7070
```dockerfile
71-
# DO NOT USE IN PRODUCTION - Use only for testing #
71+
# DO NOT USE IN PRODUCTION - Use only for testing
7272

7373
FROM ubuntu:18.04
7474

@@ -83,11 +83,27 @@ The Dockerfile uses Ubuntu 18.04, a [Cisco library called `libest`](https://gith
8383

8484
# Setting the root CA expiration to 20 years
8585
RUN sed -i "s|-days 365|-days 7300 |g" ./createCA.sh
86-
86+
87+
## If you want to use the EST server to issue Edge CA certificates,
88+
## uncomment the RUN sed section after this comment block.
89+
## The sed commands add special extensions for Edge CA certificates. For more information see:
90+
## https://learn.microsoft.com/azure/iot-edge/how-to-manage-device-certificates?tabs=windows#edge-ca-in-production
91+
##
92+
## IMPORTANT:
93+
## DO NOT issue Edge CA certificates in production.
94+
## For production, use digital certificates from a trusted CA.
95+
## See https://techcommunity.microsoft.com/blog/iotblog/automatic-iot-edge-certificate-management-with-globalsign-est/4384385
96+
##
97+
## Using EST for Edge CA is for demonstration and learning purposes only.
98+
##
99+
# RUN sed -i "s|basicConstraints=CA:FALSE|basicConstraints=critical,CA:TRUE,pathlen:0|g" ./estExampleCA.cnf && \
100+
# sed -i "s|keyUsage=digitalSignature|keyUsage=critical,digitalSignature,keyCertSign|g" ./estExampleCA.cnf && \
101+
# sed -i "s|authorityKeyIdentifier=keyid|authorityKeyIdentifier=keyid:always|g" ./estExampleCA.cnf
102+
87103
## If you want to host your EST server remotely (for example, an Azure Container Instance),
88104
## change myestserver.westus.azurecontainer.io to the fully qualified DNS name of your EST server
89105
## OR, change the IP address
90-
## and uncomment the corresponding line.
106+
## and uncomment the corresponding lines.
91107
# RUN sed -i "s|DNS.2 = ip6-localhost|DNS.2 = myestserver.westus.azurecontainer.io|g" ./ext.cnf
92108
# RUN sed -i "s|IP.2 = ::1|IP.2 = <YOUR EST SERVER IP ADDRESS>|g" ./ext.cnf
93109

0 commit comments

Comments
 (0)