Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird gezeigt, wie Sie Ihren eigenen Zertifizierungsstelle-Aussteller für die interne Kommunikation in Azure IoT Einsatz bereitstellen, anstatt den standardmäßigen selbstsignierten Aussteller zu verwenden.
Festlegen Ihrer Umgebungsvariablen
Die Azure CLI Beispiele in diesem Artikel verwenden Umgebungsvariablen, sodass Sie jeden Wert einmal festlegen und dann die Befehle as-iskopieren und einfügen können. Wenn Sie die Azure IoT Einsatz Codespaces-Umgebung aus dem Quickstart verwenden, sind diese Variablen bereits für Sie festgelegt und Sie können diesen Schritt überspringen. Ansonsten setze die folgenden Umgebungsvariablen in deiner Shell, bevor du die Befehle ausführst.
Die folgenden Skripte legen die am häufigsten verwendeten Umweltvariablen fest:
| Umgebungsvariable | Description |
|---|---|
SUBSCRIPTION_ID |
Die ID des Abonnements, das Ihre Azure IoT Einsatz-Instanz enthält. |
RESOURCE_GROUP |
Der Name der Ressourcengruppe, die Ihre Azure IoT Einsatz-Instanz enthält. |
AIO_INSTANCE_NAME |
Der Name Ihrer Azure IoT Einsatz Instanz. Um deine Instanzen aufzulisten, führe az iot ops list -o table. |
CLUSTER_NAME |
Der Name des Azure Arc-fähigen Kubernetes-Clusters, der deine Instanz hostet. |
LOCATION |
Die Azure-Region zur Nutzung für neue Ressourcen, zum Beispiel eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Du musst nur die Variablen festlegen, die dieser Artikel verwendet. Dieser Artikel könnte zusätzliche Umgebungsvariablen für die von Ihnen gewählten Ressourcennamen verwenden. Der Artikel erklärt, wie man sie dort platziert, wo sie eingeführt werden.
Dieser Artikel verwendet außerdem die folgenden Umgebungsvariablen für die von Ihnen gewählten Werte: CONFIG_MAP_NAME, CA_CERTIFICATE_FILE, , CUSTOM_LOCATION_NAMESCHEMA_REGISTRY_RESOURCE_ID, CONFIG_MAP_KEY, , ISSUER_KINDund ISSUER_NAME. Stelle jede einzelne ein, bevor du die zugehörigen Befehle ausführst.
Standardmäßiges selbstsigniertes Aussteller- und Stammzertifizierungsstellenzertifikat
Um Ihnen den Einstieg zu erleichtern, wird „Azure IoT Einsatz“ mit einem standardmäßigen selbstsignierten Aussteller und einem Stamm-CA-Zertifikat für TLS-Serverzertifikate bereitgestellt. Sie können diesen Zertifikataussteller für Entwicklungs- und Testzwecke nutzen. Azure IoT Einsatz verwendet cert-manager zum Verwalten von TLS-Zertifikaten und trust-manager zum Verteilen von Vertrauenspaketen an Komponenten.
Das Zertifizierungsstellenzertifikat ist selbstsigniert, daher vertrauen ihm keine Clients außerhalb von Azure IoT Einsatz. Der Betreff des ZS-Zertifikats lautet
CN=Azure IoT Einsatz Quickstart Root CA - Not for Production. Der Zertifikat-Manager dreht automatisch das Zertifizierungsstellenzertifikat.Das Zertifikat der Stammzertifizierungsstelle wird in einem Kubernetes-Geheimnis namens
azure-iot-operations-aio-ca-certificateim Namespacecert-managergespeichert.Eine ConfigMap namens
azure-iot-operations-aio-ca-trust-bundleimazure-iot-operations-Namespace speichert den öffentlichen Teil des Stamm-CA-Zertifikats. Sie können das Zertifizierungsstellenzertifikat aus der ConfigMap abrufen und mit kubectl und openssl überprüfen. Trust-manager hält die ConfigMap auf dem neuesten Stand, wenn cert-manager das CA-Zertifikat rotiert.kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -nooutStandardmäßig ist bereits ein Aussteller namens
azure-iot-operations namespaceim Namespaceazure-iot-operations-aio-certificate-issuerkonfiguriert. Er wird als gemeinsamer Aussteller für alle TLS-Serverzertifikate für IoT Einsatz verwendet. Der MQTT-Broker verwendet einen Aussteller, der aus demselben CA-Zertifikat erstellt wurde, welches vom selbstsignierten Aussteller signiert ist, um TLS-Serverzertifikate für den Standard-TLS-Listener auf Port 18883 auszustellen.
Nutzen Sie Ihren eigenen Zertifikataussteller
Für Produktionsbereitstellungen empfehlen wir, Azure IoT Einsatz mit einer Unternehmens-PKI zum Verwalten von Zertifikaten einzurichten und Ihren eigenen Zertifizierungsstellenherausgeber, der mit Ihrer Unternehmens-PKI arbeitet, zu verwenden, anstatt den standardmäßigen selbstsignierten Aussteller zum Ausgeben von TLS-Zertifikaten für die interne Kommunikation zu verwenden.
Wenn Sie Azure IoT Einsatz mit Ihrem eigenen Aussteller für interne Kommunikation einrichten möchten, führen Sie die folgenden Schritte aus, bevor Sie eine Instanz in Ihrem Cluster bereitstellen:
Führen Sie die Schritte unter Vorbereiten des Clusters aus, um das Cluster einzurichten.
Installieren Sie cert-manager. Der Cert-Manager verwaltet TLS-Zertifikate.
Installieren Sie trust-manager. Legen Sie beim Installieren des Trust-Managers
trust namespaceauf Cert-Manager fest. Beispiel:helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --waitDer Trust-Manager wird verwendet, um ein Trust-Bundle an Komponenten zu verteilen.
Erstellen Sie den Azure IoT Einsatz-Namespace.
kubectl create namespace azure-iot-operationsStellen Sie einen Zertifikataussteller bereit, der mit Cert-Manager funktioniert. Eine Liste aller unterstützten Zertifikataussteller finden Sie unter Zertifikataussteller für Cert-Manager.
Der Zertifikataussteller kann vom Typ
ClusterIssueroderIssuer. Bei Verwendung vonIssuermuss die Ausstellerressource im Azure IoT Einsatz-Namespace erstellt werden.Richten Sie das Trust-Bundle im Azure IoT Einsatz-Namespace ein.
Um ein Trust-Bundle einzurichten, erstellen Sie eine ConfigMap im Azure IoT Einsatz-Namespace. Platzieren Sie den öffentlichen Schlüsselteil Ihres Zertifizierungsstellenzertifikats in der Konfigurationszuordnung mit einem Schlüsselnamen Ihrer Wahl.
Rufen Sie den öffentlichen Schlüsselteil Ihres Zertifizierungsstellenzertifikats ab. Die Schritte zum Abrufen des öffentlichen Schlüssels hängen vom ausgewählten Zertifikataussteller ab.
Erstellen Sie die ConfigMap. Beispiel:
kubectl create configmap -n azure-iot-operations $CONFIG_MAP_NAME --from-file=$CA_CERTIFICATE_FILE
Führen Sie die Schritte in Bereitstellen von Azure IoT-Vorgängen für die Bereitstellung mit einigen Änderungen aus.
Fügen Sie den
--user-trust-Parameter beim Vorbereiten des Clusters hinzu. Beispiel:az iot ops init --subscription $SUBSCRIPTION_ID --cluster $CLUSTER_NAME -g $RESOURCE_GROUP --user-trustFügen Sie den
--trust-settings-Parameter mit den erforderlichen Informationen hinzu, während Sie Azure IoT Einsatz bereitstellen. Beispiel:az iot ops create --subscription $SUBSCRIPTION_ID -g $RESOURCE_GROUP --cluster $CLUSTER_NAME --custom-location $CUSTOM_LOCATION_NAME -n $AIO_INSTANCE_NAME --sr-resource-id $SCHEMA_REGISTRY_RESOURCE_ID --trust-settings configMapName=$CONFIG_MAP_NAME configMapKey=$CONFIG_MAP_KEY issuerKind=$ISSUER_KIND issuerName=$ISSUER_NAME
Weitere Informationen zum Verwalten von Zertifikaten finden Sie unter Verwalten von Zertifikaten für Ihre Azure IoT Einsatz Bereitstellung.