Partager via


Configurer l’infrastructure de certificats OPC UA pour le Connecteur OPC UA

Important

Opérations Azure IoT Préversion avec Azure Arc est actuellement en préversion. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Vous devrez déployer une nouvelle installation d’Opérations Azure IoT lorsqu’une version en disponibilité générale sera disponible. Vous ne pourrez pas mettre à niveau une installation en préversion.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

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

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 :

  1. 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.

  2. 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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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 :

  1. 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.

  2. 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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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 :

  1. Approuvez le certificat d’instance d’application du serveur OPC UA en suivant les trois premières étapes de la section précédente.

  2. 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.

    1. 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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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 :

  1. 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
    
  2. 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
    
  3. Consultez la documentation de votre serveur OPC UA pour savoir comment ajouter le fichier de certificat opcuabroker.crt ou opcuabroker.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 :

  1. 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 $INSTANCE_NAME \
        -g $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>
    
  2. 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 $INSTANCE_NAME --resource-group $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 $INSTANCE_NAME --resource-group $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.