Konfigurera OPC UA-certifikatinfrastruktur för anslutningsappen för OPC UA
I den här artikeln får du lära dig hur du konfigurerar OPC UA-certifikatinfrastrukturen för anslutningsappen för OPC UA. Med den här konfigurationen kan du avgöra vilka OPC UA-servrar som du litar på för att upprätta en session på ett säkert sätt.
Baserat på OPC UA-specifikationen fungerar anslutningsappen för OPC UA som ett enda OPC UA-program när den upprättar säker kommunikation med OPC UA-servrar. Anslutningsappen för OPC UA använder samma programinstanscertifikat för alla säkra kanaler som öppnas för dina OPC UA-servrar.
Mer information finns i OPC UA-certifikatinfrastruktur för anslutningsappen för OPC UA.
Förutsättningar
En distribuerad instans av Azure IoT Operations. Information om hur du distribuerar Azure IoT-åtgärder i demonstrations- och utforskningssyfte finns i Snabbstart: Köra Azure IoT-åtgärder i GitHub Codespaces med K3s.
Aktivera säkra inställningar i Azure IoT Operations-distribution
Konfigurera ett självsignerat programinstanscertifikat
Standarddistributionen av anslutningsappen för OPC UA installerar alla resurser som krävs av cert-manager för att skapa ett självsignerat OPC UA-kompatibelt certifikat. Det här certifikatet lagras i hemligheten aio-opc-opcuabroker-default-application-cert
. Den här hemligheten mappas till alla anslutningsappar för OPC UA-poddar och fungerar som OPC UA-klientprogrammets instanscertifikat. cert-manager
hanterar den automatiska förnyelsen av det här programinstanscertifikatet.
Den här konfigurationen räcker vanligtvis för kompatibel och säker kommunikation mellan dina OPC UA-servrar och anslutningsappen för OPC UA i en demonstrations- eller utforskningsmiljö. För en produktionsmiljö använder du programinstanscertifikat i företagsklass i distributionen.
Konfigurera listan över betrodda certifikat
För att ansluta till en tillgång måste du först upprätta ömsesidigt förtroende för programautentisering. Utför följande steg för anslutningsprogrammet för OPC UA:
Hämta OPC UA-serverprogrammets instanscertifikat som en fil. Dessa filer har vanligtvis ett .der- eller .crt-tillägg. Detta är endast den offentliga nyckeln.
Dricks
Vanligtvis har en OPC UA-server ett gränssnitt som gör att du kan exportera dess programinstanscertifikat. Det här gränssnittet är inte standardiserat. För servrar som KEPServerEx finns det ett Windows-baserat konfigurationsgränssnitt för certifikathantering. Andra servrar kan ha ett webbgränssnitt eller använda operativsystemmappar för att lagra certifikaten. Se användarhandboken för servern för att ta reda på hur du exporterar programinstanscertifikatet. När du har certifikatet kontrollerar du att det är antingen DER- eller PEM-kodat. Lagras vanligtvis i filer med tillägget .der eller .crt. Om certifikatet inte finns i något av dessa filformat använder du ett verktyg som till exempel för att omvandla certifikatet till det format som
openssl
krävs.Lägg till OPC UA-serverns programinstanscertifikat i listan över betrodda certifikat. Den här listan implementeras som en inbyggd Kubernetes-hemlighet med namnet aio-opc-ua-broker-trust-list som skapas när du distribuerar Azure IoT Operations.
Kör följande kommando för ett DER-kodat certifikat i en fil som ./my-server.der:
# Append my-server.der OPC UA server certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.der"
Kör följande kommando för ett PEM-kodat certifikat i en fil som ./my-server.crt:
# Append my-server.crt OPC UA server certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.crt"
Om din OPC UA-server använder ett certifikat som utfärdats av en certifikatutfärdare (CA) kan du lita på certifikatutfärdare genom att lägga till dess offentliga nyckelcertifikat i anslutningsappen för listan över betrodda OPC UA-certifikat. Anslutningsappen för OPC UA litar nu automatiskt på alla servrar som använder ett giltigt certifikat som utfärdats av certifikatutfärdare. Därför behöver du inte uttryckligen lägga till OPC UA-serverns certifikat i anslutningsappen för OPC UA-listan över betrodda certifikat.
Utför följande steg för att lita på en ca:
Hämta certifikatutfärdarens offentliga nyckelkod i DER- eller PEM-format. Dessa certifikat lagras vanligtvis i filer med tillägget .der eller .crt. Hämta ca:ets crl. Den här listan finns vanligtvis i en fil med .crl. Mer information finns i dokumentationen för OPC UA-servern.
Spara CA-certifikatet och CRL i den interna kubernetes-hemligheten aio-opc-ua-broker-trust-list .
Kör följande kommandon för ett DER-kodat CA-certifikat i en fil som ./my-server-ca.der:
# Append CA certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der" # Append the CRL to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file= my-server-ca.crl=./ my-server-ca.crl --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
Kör följande kommandon för ett PEM-kodat CA-certifikat i en fil som ./my-server-ca.crt:
# Append CA certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt" # Append the CRL to the trusted certificates list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.crl=./my-server-ca.crl --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
Konfigurera listan med utfärdarcertifikat
Om din OPC UA-server använder ett certifikat som utfärdats av en certifikatutfärdare, men du inte vill lita på alla certifikat som utfärdats av certifikatutfärdare, utför du följande steg:
Lita på OPC UA-serverns programinstanscertifikat genom att följa de tre första stegen i föregående avsnitt.
Förutom själva certifikatet behöver anslutningsappen för OPC UA CA-certifikatet för att korrekt verifiera utfärdarkedjan för OPC UA-serverns certifikat. Lägg till CA-certifikatet och dess lista över återkallade certifikat (CRL) i en separat lista med namnet aio-opc-ua-broker-issuer-list som implementeras som en Kubernetes-hemlighet.
Spara CA-certifikatet och CRL i hemligheten
aio-opc-ua-broker-issuer-list
.# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
Kör följande kommandon för ett PEM-kodat certifikat i en fil som ./my-server-ca.crt:
# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
Konfigurera OPC UA-servern
För att slutföra konfigurationen av ömsesidigt förtroende för programautentisering måste du konfigurera OPC UA-servern för att lita på anslutningsappen för OPC UA-programinstanscertifikatet:
Om du vill extrahera anslutningsappen för OPC UA-certifikat i en
opcuabroker.crt
fil kör du följande kommando:kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
Många OPC UA-servrar stöder endast certifikat i DER-format. Använd vid behov följande kommando för att konvertera opcuabroker.crt-certifikatet till opcuabroker.der:
openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
Läs dokumentationen för din OPC UA-server för att lära dig hur du lägger
opcuabroker.crt
till certifikatfilen elleropcuabroker.der
i serverns lista över betrodda certifikat.
Konfigurera ett programinstanscertifikat i företagsklass
För produktionsmiljöer kan du konfigurera anslutningsappen för OPC UA för att använda ett programinstanscertifikat i företagsklass. Vanligtvis utfärdar en företagscertifikatutfärdare det här certifikatet och du behöver certifikatutfärdarcertifikatet i konfigurationen. Ofta finns det en hierarki med certifikatutfärdare och du måste lägga till den fullständiga valideringskedjan med certifikatutfärdare i konfigurationen.
Följande exempel refererar till följande objekt:
Objekt | beskrivning |
---|---|
opcuabroker-certificate.der | Fil som innehåller den offentliga nyckeln för programinstanscertifikatet i företagsklass. |
opcuabroker-certificate.pem | Fil som innehåller den privata nyckeln för programinstanscertifikatet i företagsklass. |
subjectName |
Ämnesnamnsträngen som är inbäddad i programinstanscertifikatet. |
applicationUri |
URI:n för programinstansen inbäddad i programinstansen. |
enterprise-grade-ca-1.der | Fil som innehåller den offentliga certifikatnyckeln för ca-certifikat i företagsklass. |
enterprise-grade-ca-1.crl | CA:ens CRL-fil. |
Precis som i föregående exempel använder du en dedikerad Kubernetes-hemlighet för att lagra certifikaten och CRL:erna. Utför följande steg för att konfigurera certifikatet för programinstansen i företagsklass:
Spara certifikaten och CRL i hemligheten aio-opc-ua-broker-client-certificate med hjälp av följande kommando:
# Create aio-opc-ua-broker-client-certificate secret # Upload OPC UA public key certificate as an entry to the secret # Upload OPC UA private key certificate as an entry to the secret az iot ops connector opcua client add \ --instance <your instance name> \ -g <your resource group> \ --public-key-file "./opcuabroker-certificate.der" \ --private-key-file "./opcuabroker-certificate.pem" \ --subject-name <subject name from the public key cert> \ --application-uri <application uri from the public key cert>
Om du använder certifikatutfärdaren för att utfärda certifikat för din OPC UA-koordinator konfigurerar du hemligheten aio-opc-ua-broker-issuer-list . Använd en Kubernetes-klient, till exempel
kubectl
för att konfigurera hemligheterna enterprise-grade-ca-1.der och enterprise-grade-ca-1.crl:# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.der" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.crl"
Nu när anslutningsappen för OPC UA använder företagscertifikatet ska du inte glömma att lägga till det nya certifikatets offentliga nyckel i listan över betrodda certifikat för alla OPC UA-servrar som det behöver ansluta till.