Konfigurowanie infrastruktury certyfikatów OPC UA dla łącznika dla OPC UA
Z tego artykułu dowiesz się, jak skonfigurować infrastrukturę certyfikatów OPC UA dla łącznika OPC UA. Ta konfiguracja umożliwia określenie, z którymi serwerami OPC UA ufasz, aby bezpiecznie ustanowić sesję.
Na podstawie specyfikacji OPC UA łącznik OPC UA działa jako pojedyncza aplikacja OPC UA podczas nawiązywania bezpiecznej komunikacji z serwerami OPC UA. Łącznik OPC UA używa tego samego certyfikatu wystąpienia aplikacji dla wszystkich bezpiecznych kanałów otwieranych na serwerach OPC UA.
Aby dowiedzieć się więcej, zobacz infrastruktura certyfikatów OPC UA dla łącznika OPC UA.
Wymagania wstępne
Wdrożone wystąpienie operacji usługi Azure IoT. Aby wdrożyć operacje usługi Azure IoT w celach demonstracyjnych i eksploracyjnych, zobacz Szybki start: Uruchamianie operacji usługi Azure IoT w usłudze GitHub Codespaces przy użyciu języka K3s.
Włączanie bezpiecznych ustawień we wdrożeniu operacji usługi Azure IoT
Konfigurowanie certyfikatu wystąpienia aplikacji z podpisem własnym
Domyślne wdrożenie łącznika dla OPC UA instaluje wszystkie zasoby wymagane przez menedżera certyfikatów do utworzenia certyfikatu OPC UA z podpisem własnym. Ten certyfikat jest przechowywany w kluczu tajnym aio-opc-opcuabroker-default-application-cert
. Ten wpis tajny jest mapowany na wszystkie łączniki dla zasobników OPC UA i działa jako certyfikat wystąpienia aplikacji klienckiej OPC UA. cert-manager
obsługuje automatyczne odnawianie tego certyfikatu wystąpienia aplikacji.
Ta konfiguracja jest zazwyczaj wystarczająca do zapewnienia zgodności i bezpiecznej komunikacji między serwerami OPC UA a łącznikiem OPC UA w środowisku demonstracyjnym lub eksploracji. W środowisku produkcyjnym użyj certyfikatów wystąpień aplikacji klasy korporacyjnej we wdrożeniu.
Konfigurowanie listy zaufanych certyfikatów
Aby nawiązać połączenie z zasobem, najpierw należy ustanowić wzajemne zaufanie uwierzytelniania aplikacji. W przypadku łącznika OPC UA wykonaj następujące kroki:
Pobierz certyfikat wystąpienia aplikacji serwera OPC UA jako plik. Te pliki zwykle mają rozszerzenie .der lub crt. Jest to tylko klucz publiczny.
Napiwek
Zazwyczaj serwer OPC UA ma interfejs, który umożliwia eksportowanie certyfikatu wystąpienia aplikacji. Ten interfejs nie jest ustandaryzowany. W przypadku serwerów, takich jak KEPServerEx, istnieje interfejs użytkownika konfiguracji oparty na systemie Windows na potrzeby zarządzania certyfikatami. Inne serwery mogą mieć interfejs internetowy lub używać folderów systemu operacyjnego do przechowywania certyfikatów. Zapoznaj się z podręcznikiem użytkownika serwera, aby dowiedzieć się, jak wyeksportować certyfikat wystąpienia aplikacji. Po dokonaniu certyfikatu upewnij się, że jest on zakodowany w formacie DER lub PEM. Zazwyczaj przechowywane w plikach z rozszerzeniem .der lub .crt. Jeśli certyfikat nie znajduje się w jednym z tych formatów plików, użyj narzędzia, takiego jak
openssl
przekształcenie certyfikatu w wymagany format.Dodaj certyfikat wystąpienia aplikacji serwera OPC UA do listy zaufanych certyfikatów. Ta lista jest implementowana jako natywny wpis tajny kubernetes o nazwie aio-opc-ua-broker-trust-list utworzony podczas wdrażania operacji usługi Azure IoT.
W przypadku certyfikatu zakodowanego przez der w pliku takim jak ./my-server.der uruchom następujące polecenie:
# 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"
W przypadku certyfikatu zakodowanego za pomocą standardu PEM w pliku takim jak ./my-server.crt uruchom następujące polecenie:
# 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"
Jeśli serwer OPC UA używa certyfikatu wystawionego przez urząd certyfikacji, możesz zaufać urzędowi certyfikacji, dodając certyfikat klucza publicznego do łącznika dla listy zaufanych certyfikatów OPC UA. Łącznik OPC UA teraz automatycznie ufa wszystkim serwerom korzystającym z prawidłowego certyfikatu wystawionego przez urząd certyfikacji. W związku z tym nie musisz jawnie dodawać certyfikatu serwera OPC UA do łącznika listy zaufanych certyfikatów OPC UA.
Aby ufać urzędowi certyfikacji, wykonaj następujące kroki:
Pobierz klucz publiczny certyfikatu urzędu certyfikacji w formacie DER lub PEM. Te certyfikaty są zwykle przechowywane w plikach z rozszerzeniem .der lub crt. Pobierz listę CRL urzędu certyfikacji. Ta lista zazwyczaj znajduje się w pliku z listą crl. Aby uzyskać szczegółowe informacje, zapoznaj się z dokumentacją serwera OPC UA.
Zapisz certyfikat urzędu certyfikacji i listę CRL w wpisie tajnym natywnym kubernetes aio-opc-ua-broker-trust-list .
W przypadku certyfikatu urzędu certyfikacji zakodowanego w formacie DER w pliku takim jak ./my-server-ca.der uruchom następujące polecenia:
# 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}"
W przypadku certyfikatu urzędu certyfikacji zakodowanego za pomocą protokołu PEM w pliku takim jak ./my-server-ca.crt uruchom następujące polecenia:
# 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}"
Konfigurowanie listy certyfikatów wystawcy
Jeśli serwer OPC UA używa certyfikatu wystawionego przez urząd certyfikacji, ale nie chcesz ufać wszystkim certyfikatom wystawionym przez urząd certyfikacji, wykonaj następujące kroki:
Ufaj certyfikatowi wystąpienia aplikacji serwera OPC UA, wykonując pierwsze trzy kroki opisane w poprzedniej sekcji.
Oprócz samego certyfikatu łącznik OPC UA wymaga certyfikatu urzędu certyfikacji, aby prawidłowo zweryfikować łańcuch wystawców certyfikatu serwera OPC UA. Dodaj certyfikat urzędu certyfikacji i listę odwołania certyfikatów (CRL) do oddzielnej listy o nazwie aio-opc-ua-broker-issuer-list , która jest zaimplementowana jako wpis tajny Kubernetes.
Zapisz certyfikat urzędu certyfikacji i listę CRL w kluczu tajnym
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"
W przypadku certyfikatu zakodowanego za pomocą protokołu PEM w pliku takim jak ./my-server-ca.crt uruchom następujące polecenia:
# 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"
Konfigurowanie serwera OPC UA
Aby ukończyć konfigurację wzajemnego zaufania uwierzytelniania aplikacji, należy skonfigurować serwer OPC UA, aby ufał łącznikowi dla certyfikatu wystąpienia aplikacji OPC UA:
Aby wyodrębnić łącznik dla certyfikatu OPC UA do
opcuabroker.crt
pliku, uruchom następujące polecenie:kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
Wiele serwerów OPC UA obsługuje tylko certyfikaty w formacie DER. W razie potrzeby użyj następującego polecenia, aby przekonwertować certyfikat opcuabroker.crt na opcuabroker.der:
openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
Zapoznaj się z dokumentacją serwera OPC UA, aby dowiedzieć się, jak dodać
opcuabroker.crt
plik certyfikatu lubopcuabroker.der
do listy zaufanych certyfikatów serwera.
Konfigurowanie certyfikatu wystąpienia aplikacji klasy korporacyjnej
W środowiskach produkcyjnych można skonfigurować łącznik OPC UA do używania certyfikatu wystąpienia aplikacji klasy korporacyjnej. Zazwyczaj urząd certyfikacji przedsiębiorstwa wystawia ten certyfikat i potrzebujesz certyfikatu urzędu certyfikacji do konfiguracji. Często istnieje hierarchia urzędów certyfikacji i musisz dodać pełny łańcuch weryfikacji urzędów certyfikacji do konfiguracji.
Poniższy przykład odwołuje się do następujących elementów:
Produkt | opis |
---|---|
opcuabroker-certificate.der | Plik zawierający klucz publiczny certyfikatu wystąpienia aplikacji klasy korporacyjnej. |
opcuabroker-certificate.pem | Plik zawierający klucz prywatny certyfikatu wystąpienia aplikacji klasy korporacyjnej. |
subjectName |
Ciąg nazwy podmiotu osadzony w certyfikacie wystąpienia aplikacji. |
applicationUri |
Identyfikator URI wystąpienia aplikacji osadzony w wystąpieniu aplikacji. |
enterprise-grade-ca-1.der | Plik zawierający klucz publiczny certyfikatu urzędu certyfikacji klasy korporacyjnej. |
enterprise-grade-ca-1.crl | Plik listy CRL urzędu certyfikacji. |
Podobnie jak w poprzednich przykładach, do przechowywania certyfikatów i list CRL używasz dedykowanego wpisu tajnego kubernetes. Aby skonfigurować certyfikat wystąpienia aplikacji klasy korporacyjnej, wykonaj następujące kroki:
Zapisz certyfikaty i listę CRL w kluczu tajnym aio-opc-ua-broker-client-certificate przy użyciu następującego polecenia:
# 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>
Jeśli używasz urzędu certyfikacji do wystawiania certyfikatów dla brokera OPC UA, skonfiguruj wpis tajny aio-opc-ua-broker-issuer-list . Użyj klienta Kubernetes, takiego jak
kubectl
, aby skonfigurować wpisy tajne klasy enterprise-grade-ca-1.der i 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"
Teraz, gdy łącznik OPC UA używa certyfikatu przedsiębiorstwa, nie zapomnij dodać klucza publicznego nowego certyfikatu do listy zaufanych certyfikatów wszystkich serwerów OPC UA, z którymi musi nawiązać połączenie.