Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure IoT Operations använder TLS för att kryptera kommunikationen mellan alla komponenter. Den här artikeln beskriver hur du hanterar certifikat för intern och extern kommunikation och hur du tar med din egen certifikatutfärdare (CA) för intern kommunikation i en produktionsdistribution.
Förutsättningar
- För att hantera certifikat för extern kommunikation behöver du en Azure IoT Operations-instans som distribueras med säkra inställningar. Om du har distribuerat Azure IoT Operations med testinställningar måste du först aktivera säkra inställningar.
Hantera certifikat för intern kommunikation
All kommunikation i Azure IoT Operations krypteras med hjälp av TLS. För att hjälpa dig att komma igång distribueras Azure IoT Operations med en standardrotcertifikatutfärdare och utfärdare för TLS-servercertifikat. Du kan använda standardinställningen för utveckling och testning. För en produktionsdistribution rekommenderar vi att du använder en egen CA-utfärdare och en PKI-lösning för företag.
Standard självsignerad utfärdare och rotcertifikatutfärdarcertifikat för TLS-servercertifikat
För att hjälpa dig att komma igång distribueras Azure IoT Operations med en självsignerad standardutfärdare och rotcertifikatutfärdarcertifikat för TLS-servercertifikat. Du kan använda den här utfärdaren för utveckling och testning. Azure IoT Operations använder cert-manager för att hantera TLS-certifikat och trust-manager för att distribuera förtroendepaket till komponenter.
- CA-certifikatet är självsignerat och inte betrott av några klienter utanför Azure IoT Operations. Certifikatutfärdarcertifikatets ämne är - CN=Azure IoT Operations Quickstart Root CA - Not for Production. CA-certifikatet roteras automatiskt av cert-manager.
- Rotcertifikatutfärdarcertifikatet lagras i en Kubernetes-hemlighet som anropas - azure-iot-operations-aio-ca-certificateunder- cert-managernamnområdet.
- Den offentliga delen av rotcertifikatutfärdarcertifikatet lagras i en ConfigMap som anropas - azure-iot-operations-aio-ca-trust-bundleunder- azure-iot-operationsnamnområdet. Du kan hämta CA-certifikatet från ConfigMap och inspektera det med kubectl och openssl. ConfigMap hålls uppdaterad av trust-manager när CA-certifikatet roteras av cert-manager.- kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -noout- Certificate: Data: Version: 3 (0x2) Serial Number: <SERIAL-NUMBER> Signature Algorithm: sha256WithRSAEncryption Issuer: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production Validity Not Before: Sep 18 20:42:19 2024 GMT Not After : Sep 18 20:42:19 2025 GMT Subject: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: <MODULUS> Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Key Usage: critical Certificate Sign, CRL Sign X509v3 Basic Constraints: critical CA:TRUE X509v3 Subject Key Identifier: <SUBJECT-KEY-IDENTIFIER> Signature Algorithm: sha256WithRSAEncryption [Signature]
- Som standard finns det redan en utfärdare som har konfigurerats i namnet - azure-iot-operations namespace- azure-iot-operations-aio-certificate-issuer. Den används som vanlig utfärdare för alla TLS-servercertifikat för IoT-åtgärder. MQTT Broker använder en utfärdare som skapats från samma CA-certifikat som är signerat av den självsignerade utfärdaren för att utfärda TLS-servercertifikat för TLS-standardlyssnaren på port 18883. Du kan inspektera utfärdaren med följande kommando:- kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yaml- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: creationTimestamp: "2024-09-18T20:42:17Z" generation: 1 name: azure-iot-operations-aio-certificate-issuer resourceVersion: "36665" uid: 592700a6-95e0-4788-99e4-ea93934bd330 spec: ca: secretName: azure-iot-operations-aio-ca-certificate status: conditions: - lastTransitionTime: "2024-09-18T20:42:22Z" message: Signing CA verified observedGeneration: 1 reason: KeyPairVerified status: "True" type: Ready
Ta med din egen utfärdare
För produktionsdistributioner rekommenderar vi att du konfigurerar Azure IoT-åtgärder med en företags-PKI för att hantera certifikat och att du tar med din egen CA-utfärdare som fungerar med företagets PKI i stället för att använda den självsignerade standardutfärdaren för att utfärda TLS-certifikat för intern kommunikation.
Om du vill konfigurera Azure IoT Operations med din egen utfärdare för intern kommunikation använder du följande steg innan du distribuerar en instans till klustret:
- Följ stegen i Förbered klustret för att konfigurera klustret. 
- Installera cert-manager. Cert-manager hanterar TLS-certifikat. 
- Installera trust-manager. När du installerar förtroendehanteraren anger du - trust namespacetill cert-manager. Till exempel:- helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --wait- Trust-manager används för att distribuera ett förtroendepaket till komponenter. 
- Skapa Azure IoT Operations-namnområdet. - kubectl create namespace azure-iot-operations
- Distribuera en utfärdare som fungerar med cert-manager. En lista över alla utfärdare som stöds finns i utfärdare av certifikathanterare. - Utfärdaren kan vara av typen - ClusterIssuereller- Issuer. Om du använder- Issuermåste utfärdarresursen skapas i Azure IoT Operations-namnområdet.
- Konfigurera förtroendepaket i Azure IoT Operations-namnområdet. - Om du vill konfigurera förtroendepaket skapar du en ConfigMap i Azure IoT Operations-namnområdet. Placera den offentliga nyckeldelen av certifikatutfärdarcertifikatet i konfigurationskartan med ett valfritt nyckelnamn. 
- Hämta den offentliga nyckeldelen av certifikatutfärdarcertifikatet. Stegen för att hämta den offentliga nyckeln beror på vilken utfärdare du väljer. 
- Skapa ConfigMap. Till exempel: - kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
 
- Följ stegen i Distribuera Azure IoT-åtgärder att distribuera med några ändringar. - Lägg till parametern - --user-trustnär du förbereder klustret. Till exempel:- az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME> -g <RESOURCE_GROUP> --user-trust
- Lägg till parametern - --trust-settingsmed nödvändig information när du distribuerar Azure IoT Operations. Till exempel:- az iot ops create --subscription <SUBSCRIPTION_ID> -g <RESOURCE_GROUP> --cluster <CLUSTER_NAME> --custom-location <CUSTOM_LOCATION> -n <INSTANCE_NAME> --sr-resource-id <SCHEMAREGISTRY_RESOURCE_ID> --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
 - Anmärkning - Det anpassade platsnamnet har en maximal längd på 63 tecken. 
Hantera certifikat för extern kommunikation
Certifikathanteringsmiljön för extern kommunikation använder Azure Key Vault som lösning för hanterat valv i molnet. Certifikat läggs till i nyckelvalvet som hemligheter och synkroniseras till gränsen som Kubernetes-hemligheter via Azure Key Vault Secret Store-tillägget.
Anslutningar använder certifikathanteringsupplevelsen för att konfigurera klientautentisering till externa servrar. Mer information om hur anslutningsappar använder certifikat för att upprätta ömsesidigt förtroende med externa servrar finns i dokumentationen för anslutningsspecifik certifikathantering.
När du distribuerar Azure IoT-operationer med säkra inställningar kan du börja lägga till certifikat i Azure Key Vault och synkronisera dem till Kubernetes-klustret för användning i listan över betrodda och utfärdarlistan för externa anslutningar.
Följ dessa steg för att hantera certifikat för extern kommunikation:
- Gå till Azure IoT Operations-upplevelsen och välj din webbplats och Azure IoT Operations-instans. 
- I det vänstra navigeringsfönstret väljer du Enheter. 
- Klicka på Hantera certifikat och hemligheter. 
- På sidan Certifikat och hemligheter klickar du på Lägg till nytt certifikat. 
- Du kan lägga till ett nytt certifikat på två sätt: - Ladda upp certifikat: Laddar upp ett certifikat som sedan läggs till som en hemlighet i Azure Key Vault och synkroniseras automatiskt till klustret med hjälp av Secret Store-tillägget. - Visa certifikatinformationen när du har laddat upp för att se till att du har rätt certifikat innan du lägger till i Azure Key Vault och synkroniserar till klustret.
- Använd ett intuitivt namn så att du kan känna igen vilken hemlighet som representerar din hemlighet i framtiden.
 - Anmärkning - Om du bara laddar upp certifikatet läggs inte hemligheten till i Azure Key Vault och synkroniseras till klustret. Du måste välja Tillämpa för att ändringarna ska tillämpas. 
- Lägg till från Azure Key Vault: Lägg till en befintlig hemlighet från Azure Key Vault som ska synkroniseras till klustret. - Anmärkning - Välj den hemlighet som innehåller det certifikat som du vill synkronisera med klustret. Om du väljer en hemlighet som inte är rätt certifikat misslyckas anslutningen. 
 
- Med listvyn kan du hantera de synkroniserade certifikaten. Du kan visa alla synkroniserade certifikat och vilket certifikatarkiv det synkroniseras med: 
Mer information om hur betrodda certifikat hanteras för specifika anslutningsappar finns i dokumentationen för hantering av anslutningsappsspecifika certifikat.
Du kan också ta bort synkroniserade certifikat. När du tar bort ett synkroniserat certifikat tar det bara bort det synkroniserade certifikatet från Kubernetes-klustret och tar inte bort den inneslutna hemliga referensen från Azure Key Vault. Du måste ta bort certifikathemligheten manuellt från nyckelvalvet.
 
              
               
              
               
              
               
              
              