Skip to content

Commit ec411bb

Browse files
Merge pull request #287600 from Mzamankhan/patch-9
Update concept-default-root-ca.md
2 parents 7663a74 + f39d1e6 commit ec411bb

File tree

4 files changed

+93
-91
lines changed

4 files changed

+93
-91
lines changed

articles/iot-operations/.openpublishing.redirection.iot-operations.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,5 +480,11 @@
480480
"redirect_url": "/azure/iot-operations/connect-to-cloud/howto-create-dataflow",
481481
"redirect_document_id": false
482482
}
483+
,
484+
{
485+
"source_path_from_root": "/articles/iot-operations/manage-mqtt-broker/concept-default-root-ca.md",
486+
"redirect_url": "/azure/iot-operations/deploy-iot-ops/concept-default-root-ca",
487+
"redirect_document_id": false
488+
}
483489
]
484490
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: Certificate management for Azure IoT Operations Preview internal communication
3+
description: Azure IoT Operations Preview uses TLS to encrypt communication. Learn about the default setup and also how to bring your own CA for production.
4+
author: PatAltimore
5+
ms.author: patricka
6+
ms.subservice: azure-mqtt-broker
7+
ms.topic: concept-article
8+
ms.date: 10/01/2024
9+
10+
#CustomerIntent: As an operator, I want to configure Azure IoT Operations components to use TLS so that I have secure communication between all components.
11+
---
12+
13+
# Certificate management for Azure IoT Operations Preview internal communication
14+
15+
All communication within Azure IoT Operations Preview is encrypted using TLS. To help you get started, Azure IoT Operations is deployed with a default root CA and issuer for TLS server certificates. You can use the default setup for development and testing purposes. For a production deployment, we recommend using your own CA issuer and an enterprise PKI solution.
16+
17+
## Default root CA and issuer for TLS server certificates
18+
19+
To help you get started, Azure IoT Operations Preview is deployed with a default root CA and issuer for TLS server certificates. You can use this issuer for development and testing. Azure IoT Operations uses [cert-manager](https://cert-manager.io/docs/) to manage TLS certificates, and [trust-manager](https://cert-manager.io/docs/trust/) to distribute trust bundles to components.
20+
21+
* The CA certificate is self-signed and not trusted by any clients outside of Azure IoT Operations. The subject of the CA certificate is `CN=Azure IoT Operations Quickstart Root CA - Not for Production`. The CA certificate is automatically rotated by cert-manager.
22+
23+
* The root CA certificate is stored in a Kubernetes secret called `azure-iot-operations-aio-ca-certificate` under the `cert-manager` namespace.
24+
25+
* The public portion of the root CA certificate is stored in a ConfigMap called `azure-iot-operations-aio-ca-trust-bundle` under the `azure-iot-operations` namespace. You can retrieve the CA certificate from the ConfigMap and inspect it with kubectl and openssl. The ConfigMap is kept updated by trust-manager when the CA certificate is rotated by cert-manager.
26+
27+
```bash
28+
kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -noout
29+
```
30+
31+
```Output
32+
Certificate:
33+
Data:
34+
Version: 3 (0x2)
35+
Serial Number:
36+
<SERIAL-NUMBER>
37+
Signature Algorithm: sha256WithRSAEncryption
38+
Issuer: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production
39+
Validity
40+
Not Before: Sep 18 20:42:19 2024 GMT
41+
Not After : Sep 18 20:42:19 2025 GMT
42+
Subject: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production
43+
Subject Public Key Info:
44+
Public Key Algorithm: rsaEncryption
45+
Public-Key: (2048 bit)
46+
Modulus: <MODULUS>
47+
Exponent: 65537 (0x10001)
48+
X509v3 extensions:
49+
X509v3 Key Usage: critical
50+
Certificate Sign, CRL Sign
51+
X509v3 Basic Constraints: critical
52+
CA:TRUE
53+
X509v3 Subject Key Identifier:
54+
<SUBJECT-KEY-IDENTIFIER>
55+
Signature Algorithm: sha256WithRSAEncryption
56+
[Signature]
57+
```
58+
59+
* By default, there's already a CA issuer configured in the `azure-iot-operations namespace` called `azure-iot-operations-aio-certificate-issuer`. It's used as the common CA issuer for all TLS server certificates for IoT Operations. MQTT broker uses an issuer created from the same CA certificate to issue TLS server certificates for the default TLS listener on port 18883. You can inspect the issuer with the following command:
60+
61+
```bash
62+
kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yaml
63+
```
64+
65+
```Output
66+
apiVersion: cert-manager.io/v1
67+
kind: ClusterIssuer
68+
metadata:
69+
creationTimestamp: "2024-09-18T20:42:17Z"
70+
generation: 1
71+
name: azure-iot-operations-aio-certificate-issuer
72+
resourceVersion: "36665"
73+
uid: 592700a6-95e0-4788-99e4-ea93934bd330
74+
spec:
75+
ca:
76+
secretName: azure-iot-operations-aio-ca-certificate
77+
status:
78+
conditions:
79+
- lastTransitionTime: "2024-09-18T20:42:22Z"
80+
message: Signing CA verified
81+
observedGeneration: 1
82+
reason: KeyPairVerified
83+
status: "True"
84+
type: Ready
85+
```

articles/iot-operations/manage-mqtt-broker/concept-default-root-ca.md

Lines changed: 0 additions & 91 deletions
This file was deleted.

articles/iot-operations/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ items:
2929
href: deploy-iot-ops/howto-manage-secrets.md
3030
- name: Manage, update, or uninstall
3131
href: deploy-iot-ops/howto-manage-update-uninstall.md
32+
- name: Certificate management
33+
href: deploy-iot-ops/concept-default-root-ca.md
3234
- name: Discover and manage assets
3335
items:
3436
- name: Asset management overview

0 commit comments

Comments
 (0)