Konfigurace infrastruktury certifikátů OPC UA pro konektor pro OPC UA
Důležité
Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi Preview. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.
Až bude dostupná obecně dostupná verze, budete muset nasadit novou instalaci operací Azure IoT. Nebudete moct upgradovat instalaci verze Preview.
Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
V tomto článku se dozvíte, jak nakonfigurovat infrastrukturu certifikátů OPC UA pro konektor pro OPC UA. Tato konfigurace umožňuje určit servery OPC UA, kterým důvěřujete, aby bylo možné bezpečně navázat relaci.
Na základě specifikace OPC UA funguje konektor pro OPC UA jako jedna aplikace OPC UA při vytváření zabezpečené komunikace se servery OPC UA. Konektor pro OPC UA používá stejný certifikát instance aplikace pro všechny zabezpečené kanály, které se otevře na serverech OPC UA.
Další informace najdete v tématu Infrastruktura certifikátů OPC UA pro konektor pro OPC UA.
Požadavky
Nasazená instance Azure IoT Operations Preview. Pokud chcete nasadit operace Azure IoT pro demonstrační a průzkumné účely, projděte si rychlý start: Spuštění Azure IoT Operations Preview v GitHub Codespaces s využitím K3s.
Konfigurace certifikátu instance aplikace podepsaného svým držitelem
Výchozí nasazení konektoru pro OPC UA nainstaluje všechny prostředky potřebné nástrojem cert-manager k vytvoření certifikátu podepsaného svým držitelem kompatibilního s OPC UA. Tento certifikát je uložený v tajném aio-opc-opcuabroker-default-application-cert
kódu. Tento tajný klíč se mapuje na všechny konektory pro pody OPC UA a funguje jako certifikát instance klientské aplikace OPC UA. cert-manager
zpracovává automatické prodlužování platnosti tohoto certifikátu instance aplikace.
Tato konfigurace obvykle stačí pro vyhovující a zabezpečenou komunikaci mezi servery OPC UA a konektorem pro OPC UA v ukázkovém nebo průzkumovém prostředí. V produkčním prostředí použijte v nasazení certifikáty instance aplikace podnikové úrovně.
Konfigurace seznamu důvěryhodných certifikátů
Pokud se chcete připojit k prostředku, musíte nejprve vytvořit vzájemné vztahy důvěryhodnosti ověřování aplikace. Pro konektor pro OPC UA proveďte následující kroky:
Získejte certifikát instance serverové aplikace OPC UA jako soubor. Tyto soubory obvykle mají příponu .der nebo .crt. Toto je jenom veřejný klíč.
Tip
Server OPC UA má obvykle rozhraní, které umožňuje exportovat certifikát instance aplikace. Toto rozhraní není standardizované. Pro servery, jako je KEPServerEx, existuje uživatelské rozhraní konfigurace založené na Systému Windows pro správu certifikátů. Jiné servery můžou mít webové rozhraní nebo používat složky operačního systému k ukládání certifikátů. Informace o exportu certifikátu instance aplikace najdete v uživatelské příručce k vašemu serveru. Jakmile certifikát máte, ujistěte se, že je zakódovaný buď DER, nebo PEM. Obvykle jsou uložené v souborech s příponou .der nebo .crt. Pokud certifikát není v jednom z těchto formátů souborů, použijte nástroj, například
openssl
k transformaci certifikátu do požadovaného formátu.Přidejte certifikát instance aplikace serveru OPC UA do seznamu důvěryhodných certifikátů. Tento seznam se implementuje jako nativní tajný klíč Kubernetes s názvem aio-opc-ua-broker-trust-list , který se vytvoří při nasazení operací Azure IoT.
V případě certifikátu s kódováním DER v souboru, jako je ./my-server.der, spusťte následující příkaz:
# Append my-server.der OPC UA server certificate to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server.der=./my-server.der --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{\"data\": $data}"
Pro certifikát s kódováním PEM v souboru, například ./my-server.crt, spusťte následující příkaz:
# Append my-server.crt OPC UA server certificate to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server.crt=./my-server.crt --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{\"data\": $data}"
Pokud váš server OPC UA používá certifikát vydaný certifikační autoritou (CA), můžete certifikační autoritě důvěřovat tak, že do konektoru přidáte certifikát veřejného klíče pro seznam důvěryhodných certifikátů OPC UA. Konektor pro OPC UA teď automaticky důvěřuje všem serverům, které používají platný certifikát vydaný certifikační autoritou. Proto nemusíte explicitně přidávat certifikát serveru OPC UA do konektoru pro seznam důvěryhodných certifikátů OPC UA.
Pokud chcete certifikační autoritě důvěřovat, proveďte následující kroky:
Získejte veřejný klíč certifikátu certifikační autority ve formátu DER nebo PEM. Tyto certifikáty jsou obvykle uložené v souborech s příponou .der nebo .crt. Získejte seznam CRL certifikační autority. Tento seznam je obvykle v souboru s příponou .crl. Podrobnosti najdete v dokumentaci k vašemu serveru OPC UA.
Uložte certifikát certifikační autority a seznam CRL v nativním tajném kódu Kubernetes aio-opc-ua-broker-trust-list .
Pro certifikát certifikační autority zakódované pomocí der DER v souboru, jako je ./my-server-ca.der, spusťte následující příkazy:
# Append CA certificate to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.der=./my-server-ca.der --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}" # 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}"
Pro certifikát certifikační autority s kódováním PEM v souboru, například ./my-server-ca.crt, spusťte následující příkazy:
# Append CA certificate to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.crt=./my-server-ca.crt --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}" # 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}"
Konfigurace seznamu certifikátů vystavitele
Pokud váš server OPC UA používá certifikát vydaný certifikační autoritou, ale nechcete důvěřovat všem certifikátům vydaným certifikační autoritou, proveďte následující kroky:
Certifikát instance aplikace serveru OPC UA můžete důvěřovat podle prvních tří kroků v předchozí části.
Kromě samotného certifikátu potřebuje konektor pro OPC UA certifikát certifikační autority, aby správně ověřil řetěz vystavitelů certifikátu serveru OPC UA. Přidejte certifikát certifikační autority a jeho seznam odvolaných certifikátů (CRL) do samostatného seznamu s názvem aio-opc-ua-broker-issuer-list , který je implementovaný jako tajný klíč Kubernetes.
Uložte certifikát certifikační autority a CRL do tajného
aio-opc-ua-broker-issuer-list
kódu.V případě certifikátu s kódováním DER v souboru, například ./my-server-ca.der, spusťte následující příkazy:
# Append CA certificate to the issuer list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.der=./my-server-ca.der --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-issuer-list -n azure-iot-operations -p "{`"data`": $data}" # Append the CRL to the issuer 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-issuer-list -n azure-iot-operations -p "{`"data`": $data}"
Pro certifikát kódovaný PEM v souboru, jako je ./my-server-ca.crt, spusťte následující příkazy:
# Append CA certificate to the issuer list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.crt=./my-server-ca.crt --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-issuer-list -n azure-iot-operations -p "{`"data`": $data}" # Append the CRL to the issuer 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-issuer-list -n azure-iot-operations -p "{`"data`": $data}"
Konfigurace serveru OPC UA
Pokud chcete dokončit konfiguraci vzájemného vztahu důvěryhodnosti ověřování aplikace, musíte nakonfigurovat server OPC UA tak, aby důvěřoval konektoru pro certifikát instance aplikace OPC UA:
Pokud chcete extrahovat konektor pro certifikát OPC UA do
opcuabroker.crt
souboru, spusťte následující příkaz:kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
Mnoho serverů OPC UA podporuje pouze certifikáty ve formátu DER. V případě potřeby pomocí následujícího příkazu převeďte certifikát opcuabroker.crt na opcuabroker.der:
openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
V dokumentaci k vašemu serveru OPC UA se dozvíte, jak přidat
opcuabroker.crt
soubor certifikátu neboopcuabroker.der
soubor certifikátu do seznamu důvěryhodných certifikátů serveru.
Konfigurace certifikátu instance aplikace podnikové úrovně
V produkčních prostředích můžete konektor nakonfigurovat pro OPC UA tak, aby používal certifikát instance aplikace podnikové úrovně. Certifikační autorita organizace obvykle vydává tento certifikát a k vaší konfiguraci potřebujete certifikát certifikační autority. Často existuje hierarchie certifikačních autorit a musíte do konfigurace přidat kompletní ověřovací řetězec certifikačních autorit.
Následující příklad odkazuje na následující položky:
Položka | Popis |
---|---|
opcuabroker-certificate.der | Soubor obsahující veřejný klíč certifikátu instance aplikace podnikové úrovně |
opcuabroker-certificate.pem | Soubor, který obsahuje privátní klíč certifikátu instance aplikace podnikové úrovně |
subjectName |
Řetězec názvu subjektu vložený do certifikátu instance aplikace. |
applicationUri |
Identifikátor URI instance aplikace vložený do instance aplikace. |
enterprise-grade-ca-1.der | Soubor, který obsahuje veřejný klíč certifikátu certifikační autority podnikové úrovně. |
enterprise-grade-ca-1.crl | Soubor CRL certifikační autority. |
Stejně jako v předchozích příkladech použijete k ukládání certifikátů a seznamů CRL vyhrazený tajný klíč Kubernetes. Pokud chcete nakonfigurovat certifikát instance aplikace podnikové úrovně, proveďte následující kroky:
Pomocí následujícího příkazu uložte certifikáty a CRL v tajném kódu aio-opc-ua-broker-client-certificate :
# 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 kubectl create secret generic aio-opc-ua-broker-client-certificate -n azure-iot-operations \ --from-file=opcuabroker-certificate.der=./opcuabroker-certificate.der \ --from-file=opcuabroker-certificate.pem=./opcuabroker-certificate.pem
Pokud použijete certifikační autoritu k vydávání certifikátů pro zprostředkovatele OPC UA, nakonfigurujte tajný klíč aio-opc-ua-broker-issuer-list . Použijte klienta Kubernetes, například
kubectl
ke konfiguraci tajných kódů na podnikové úrovni ca-1.der a enterprise-grade-ca-1.crl:# Append CA certificate to the issuer list secret as a new entry data=$(kubectl create secret generic temp --from-file=enterprise-grade-ca-1.der=./enterprise-grade-ca-1.der --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-issuer-list -n azure-iot-operations -p "{`"data`": $data}" # Append the CRL to the issuer list secret as a new entry data=$(kubectl create secret generic temp --from-file= enterprise-grade-ca-1.crl=./enterprise-grade-ca-1.crl --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-issuer-list -n azure-iot-operations -p "{`"data`": $data}"
Pomocí následujícího příkazu aktualizujte konektor pro nasazení OPC UA tak, aby používal nový
secret
zdroj certifikátů instancí aplikace:az k8s-extension update \ --version 0.7.0-preview \ --name azure-iot-operations-qlll2 \ --release-train preview \ --cluster-name <cluster-name> \ --resource-group <azure-resource-group> \ --cluster-type connectedClusters \ --auto-upgrade-minor-version false \ --config connectors.values.securityPki.applicationCert=aio-opc-ua-broker-client-certificate \ --config connectors.values.securityPki.subjectName=<subjectName> \ --config connectors.values.securityPki.applicationUri=<applicationUri>
Teď, když konektor pro OPC UA používá podnikový certifikát, nezapomeňte přidat veřejný klíč nového certifikátu do seznamů důvěryhodných certifikátů všech serverů OPC UA, ke kterým se potřebuje připojit.