Konfigurace infrastruktury certifikátů OPC UA pro konektor pro OPC UA
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 operací Azure IoT Pokud chcete nasadit operace Azure IoT pro demonstrační a průzkumné účely, přečtěte si rychlý start: Spuštění operací Azure IoT v Codespaces na GitHubu s využitím K3s.
Povolení zabezpečených nastavení v nasazení operací Azure IoT
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 az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.der"
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 az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.crt"
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 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}"
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 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}"
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.# 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"
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 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"
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 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>
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 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"
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.