Configurer l’infrastructure de certificats OPC UA pour le Connecteur OPC UA
Dans cet article, vous découvrez comment configurer l’infrastructure de certificats OPC UA pour le Connecteur OPC UA. Cette configuration vous permet de désigner les serveurs OPC UA auxquels vous faites confiance pour établir une session de manière sécurisée.
Conformément à la spécification OPC UA, le Connecteur OPC UA agit en tant qu’application OPC UA unique quand il établit des communications sécurisées avec des serveurs OPC UA. Le Connecteur OPC UA utilise le même certificat d’instance d’application pour tous les canaux sécurisés qu’il ouvre avec vos serveurs OPC UA.
Pour plus d’informations, consultez Configurer l’infrastructure de certificats OPC UA pour le Connecteur OPC UA.
Prérequis
Une instance déployée d’Opérations Azure IoT. Pour déployer Opérations Azure IoT à des fins de démonstration et d’exploration, consultez Démarrage rapide : Exécuter Opérations Azure IoT dans GitHub Codespaces avec K3s.
Activer les paramètres sécurisés dans le déploiement d’Opérations Azure IoT
Configurer un certificat d’instance d’application auto-signé
Le déploiement par défaut du Connecteur OPC UA installe toutes les ressources nécessaires à cert-manager pour créer un certificat auto-signé conforme à OPC UA. Ce certificat est stocké dans le secret aio-opc-opcuabroker-default-application-cert
. Ce secret est mappé dans tous les pods du Connecteur OPC UA et fait office de certificat d’instance d’application cliente OPC UA. cert-manager
gère le renouvellement automatique de ce certificat d’instance d’application.
Cette configuration est généralement suffisante pour une communication conforme et sécurisée entre vos serveurs OPC UA et le Connecteur OPC UA dans un environnement de démonstration ou d’exploration. Pour un environnement de production, utilisez des certificats d’instance d’application de niveau entreprise dans votre déploiement.
Configurer la liste des certificats approuvés
Pour vous connecter à une ressource, vous devez d’abord établir l’approbation mutuelle de l’authentification d’application. Pour le Connecteur OPC UA, effectuez les étapes suivantes :
Obtenez le certificat d’instance de l’application du serveur OPC UA sous la forme d’un fichier. Les fichiers de ce type ont généralement une extension .der ou .crt. Il s’agit uniquement de la clé publique.
Conseil
En règle générale, un serveur OPC UA dispose d’une interface qui vous permet d’exporter son certificat d’instance d’application. Cette interface n’est pas standardisée. Certains serveurs tels que KEPServerEx proposent une interface utilisateur de configuration basée sur Windows dédiée à la gestion des certificats. D’autres serveurs peuvent disposer d’une interface web ou utiliser des dossiers de système d’exploitation pour le stockage des certificats. Consultez le manuel utilisateur de votre serveur pour savoir comment exporter le certificat d’instance d’application. Une fois que vous disposez du certificat, vérifiez qu’il est encodé en DER ou PEM. Il est généralement stocké dans un fichier ayant pour extension .der ou .crt. Si le certificat ne présente pas l’un de ces formats de fichier, utilisez un outil tel que
openssl
pour transformer le certificat dans le format requis.Ajoutez le certificat d’instance d’application du serveur OPC UA à la liste des certificats approuvés. Cette liste est implémentée en tant que secret natif Kubernetes nommé aio-opc-ua-broker-trust-list qui est créé lorsque vous déployez Opérations Azure IoT.
Pour un certificat encodé en DER dans un fichier tel que ./my-server.der, exécutez la commande suivante :
# 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"
Pour un certificat encodé en PEM dans un fichier tel que ./my-server.crt, exécutez la commande suivante :
# 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"
Si votre serveur OPC UA utilise un certificat qui a été émis par une autorité de certification, vous pouvez approuver celle-ci en ajoutant son certificat de clé publique à la liste des certificats approuvés du Connecteur OPC UA. Le Connecteur OPC UA approuve maintenant automatiquement tous les serveurs qui utilisent un certificat valide émis par l’autorité de certification. Vous n’avez donc plus besoin d’ajouter explicitement le certificat du serveur OPC UA à la liste des certificats approuvés du Connecteur OPC UA.
Pour approuver une autorité de certification, effectuez les étapes suivantes :
Obtenez la clé publique de certificat de l’autorité de certification encodée au format DER ou PEM. Ces certificats sont généralement stockés dans un fichier ayant pour extension .der ou .crt. Obtenez la liste de révocation de certificats de l’autorité de certification. Cette liste se trouve généralement dans un fichier ayant l’extension .crl. Pour plus d’informations, consultez la documentation de votre serveur OPC UA.
Enregistrez le certificat d’autorité de certification et la liste de révocation de certificats dans le secret natif Kubernetes aio-opc-ua-broker-trust-list.
Pour un certificat d’autorité de certification encodé en DER dans un fichier tel que ./my-server-ca.der, exécutez les commandes suivantes :
# 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}"
Pour un certificat d’autorité de certification encodé en PEM dans un fichier tel que ./my-server-ca.crt, exécutez les commandes suivantes :
# 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}"
Configurer la liste des certificats de l’émetteur
Si votre serveur OPC UA utilise un certificat émis par une autorité de certification, mais que vous ne voulez pas faire confiance à tous les certificats émis par cette autorité de certification, effectuez les étapes suivantes :
Approuvez le certificat d’instance d’application du serveur OPC UA en suivant les trois premières étapes de la section précédente.
Outre le certificat lui-même, le Connecteur OPC UA a besoin du certificat d’autorité de certification pour valider correctement la chaîne d’émetteur du certificat du serveur OPC UA. Ajoutez le certificat d’autorité de certification et sa liste de révocation de certificats à une liste distincte appelée aio-opc-ua-broker-issuer-list qui est implémentée en tant que secret Kubernetes.
Enregistrez le certificat d’autorité de certification et la liste de révocation de certificats dans le secret
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"
Pour un certificat encodé en PEM dans un fichier tel que ./my-server-ca.crt, exécutez les commandes suivantes :
# 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"
Configurer votre serveur OPC UA
Pour mener à bien la configuration de l’approbation mutuelle de l’authentification d’application, vous devez configurer votre serveur OPC UA de façon à approuver le certificat d’instance d’application du Connecteur OPC UA :
Pour extraire le certificat du Connecteur OPC UA dans un fichier
opcuabroker.crt
, exécutez la commande suivante :kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
De nombreux serveurs OPC UA prennent uniquement en charge les certificats au format DER. Si nécessaire, utilisez la commande suivante pour convertir le certificat opcuabroker.crt en certificat opcuabroker.der :
openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
Consultez la documentation de votre serveur OPC UA pour savoir comment ajouter le fichier de certificat
opcuabroker.crt
ouopcuabroker.der
à la liste des certificats approuvés du serveur.
Configurer un certificat d’instance d’application de niveau entreprise
Pour les environnements de production, vous pouvez configurer le Connecteur OPC UA pour qu’il utilise un certificat d’instance d’application de niveau entreprise. En règle générale, une autorité de certification d’entreprise émet ce certificat, et vous avez besoin du certificat d’autorité de certification dans votre configuration. Souvent, il existe une hiérarchie d’autorités de certification et vous devez ajouter la chaîne de validation complète des autorités de certification à votre configuration.
L’exemple ci-dessous fait référence aux éléments suivants :
Élément | Description |
---|---|
opcuabroker-certificate.der | Fichier contenant la clé publique du certificat d’instance d’application de niveau entreprise. |
opcuabroker-certificate.pem | Fichier contenant la clé privée du certificat d’instance d’application de niveau entreprise. |
subjectName |
Chaîne de nom d’objet incorporée dans le certificat d’instance d’application. |
applicationUri |
URI de l’instance d’application incorporé dans l’instance d’application. |
enterprise-grade-ca-1.der | Fichier contenant la clé publique du certificat d’autorité de certification de niveau entreprise. |
enterprise-grade-ca-1.crl | Fichier de liste de révocation de certificats de l’autorité de certification. |
Comme dans les exemples précédents, vous utilisez un secret Kubernetes dédié pour stocker les certificats et les listes de révocation de certificats. Pour configurer le certificat d’instance d’application de niveau entreprise, effectuez les étapes suivantes :
Enregistrez les certificats et la liste de révocation de certificats dans le secret aio-opc-ua-broker-client-certificate à l’aide de la commande suivante :
# 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>
Si vous utilisez l’autorité de certification pour émettre des certificats pour votre répartiteur OPC UA, configurez le secret aio-opc-ua-broker-issuer-list. Utilisez un client Kubernetes tel que
kubectl
pour configurer les secrets enterprise-grade-ca-1.der et 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"
Maintenant que le Connecteur OPC UA utilise le certificat d’entreprise, n’oubliez pas d’ajouter la clé publique du nouveau certificat aux listes de certificats approuvés de tous les serveurs OPC UA auxquels il doit se connecter.