Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: IoT Edge 1.5
Importante
IoT Edge 1.5 LTS es la versión compatible. IoT Edge 1.4 LTS finaliza su ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.
En este artículo se proporcionan instrucciones detalladas para configurar un dispositivo IoT Edge como puerta de enlace transparente para que otros dispositivos puedan conectarse a IoT Hub. En este artículo, la puerta de enlace de IoT Edge significa un dispositivo IoT Edge configurado como puerta de enlace transparente. Para más información, consulte Uso de un dispositivo IoT Edge como puerta de enlace.
Nota:
Los dispositivos de bajada no pueden usar la carga de archivos.
Hay tres pasos principales para configurar una conexión de puerta de enlace transparente. En este artículo se describe el primer paso:
- Configure el dispositivo de puerta de enlace como un servidor para que los dispositivos de bajada puedan conectarse de forma segura. Configure la pasarela para recibir mensajes de dispositivos aguas abajo y enrutarlos al destino correcto.
- Cree una identidad de dispositivo para el dispositivo de bajada para que pueda autenticarse con IoT Hub. Configure el dispositivo de bajada para enviar mensajes a través del dispositivo de puerta de enlace. Para conocer estos pasos, consulte Autenticación de un dispositivo de bajada en Azure IoT Hub.
- Conecte el dispositivo de bajada al dispositivo de puerta de enlace y empiece a enviar mensajes. Para realizar esos pasos, consulte Conexión de un dispositivo de bajada a una puerta de enlace Azure IoT Edge.
Para actuar como puerta de enlace, un dispositivo debe conectarse de forma segura a sus dispositivos subordinados. Azure IoT Edge permite usar la infraestructura de clave pública (PKI) para configurar conexiones seguras entre dispositivos. En este caso, un dispositivo descendente se conecta a un dispositivo IoT Edge que actúa como una puerta de enlace transparente. Para mantener las cosas seguras, el dispositivo de bajada comprueba la identidad del dispositivo de puerta de enlace. Esta comprobación ayuda a evitar que los dispositivos se conecten a puertas de enlace malintencionadas.
Un dispositivo de bajada puede ser cualquier aplicación o plataforma con una identidad creada en Azure IoT Hub. Estas aplicaciones suelen usar el SDK de dispositivo IoT de Azure. Un dispositivo de bajada puede incluso ser una aplicación que se ejecuta en el propio dispositivo de puerta de enlace de IoT Edge.
Puede crear cualquier infraestructura de certificados que permita la confianza necesaria para la topología de la puerta de enlace de dispositivo. En este artículo, usamos la misma configuración de certificados que seguridad de entidad de certificación X.509 en IoT Hub. Esta configuración usa un certificado de entidad de certificación X.509 asociado a un centro de IoT específico (la CA raíz de IoT Hub), una serie de certificados firmados con esta ENTIDAD de certificación y una CA para el dispositivo IoT Edge.
Nota:
El término certificado de CA raíz usado en estos artículos hace referencia al certificado público de entidad de nivel superior de la cadena de certificados de PKI y no necesariamente a la raíz del certificado de una entidad de certificación sindicada. En muchos casos, se trata realmente de un certificado público de entidad de certificación intermedia.
Siga estos pasos para crear los certificados e instalarlos en los lugares adecuados de la puerta de enlace. Use cualquier máquina para generar los certificados y cópielos en el dispositivo IoT Edge.
Requisitos previos
Necesita un dispositivo Linux o Windows con IoT Edge instalado.
Si no tiene un dispositivo listo, cree uno en una máquina virtual de Azure. Siga los pasos descritos en Implementación del primer módulo de IoT Edge en un dispositivo virtual Linux para crear una instancia de IoT Hub, crear una máquina virtual y configurar el entorno de ejecución de Azure IoT Edge.
Configuración del certificado de CA perimetral
Todas las puertas de enlace de IoT Edge necesitan tener un certificado de CA perimetral instalado. El demonio de seguridad de IoT Edge usa el certificado de entidad de certificación perimetral para firmar un certificado de entidad de certificación de carga de trabajo, que a su vez firma un certificado de servidor para el centro de IoT Edge. La puerta de enlace presenta su certificado de servidor al dispositivo de bajada durante el inicio de la conexión. El dispositivo de bajada realiza comprobaciones para asegurarse de que el certificado de servidor forma parte de una cadena de certificados que se acumula en el certificado de entidad de certificación raíz. Este proceso permite que el dispositivo de bajada confirme que la puerta de enlace procede de un origen de confianza. Para obtener más información, consulta Información sobre los certificados de Azure IoT Edge.
El certificado de CA raíz y el certificado de CA de borde (junto con su clave privada) deben estar en el dispositivo de puerta de enlace IoT Edge y configurarse en el archivo de configuración de IoT Edge. En este caso, el certificado de autoridad de certificación raíz significa la autoridad de certificación superior para este entorno de IoT Edge. El certificado de entidad de certificación perimetral de puerta de enlace y los certificados de dispositivo de bajada deben acumularse en el mismo certificado de CA raíz.
Sugerencia
El proceso de instalación del certificado de CA raíz y el certificado de CA perimetral en un dispositivo IoT Edge también se explica más detalladamente en Administración de certificados en un dispositivo IoT Edge.
Tenga listos los archivos siguientes:
- Certificado de entidad de certificación raíz
- Certificado de CA perimetral
- Clave privada de entidad de certificación del dispositivo
En escenarios de producción, genere estos archivos con su propia entidad de certificación. En escenarios de desarrollo y pruebas, puede usar certificados de demostración.
Creación de certificados de demostración
Si no tiene su propia entidad de certificación y quiere usar certificados de demostración, siga las instrucciones de Creación de certificados de demostración para probar las características del dispositivo IOT Edge para crear sus archivos. En esa página, siga estos pasos:
- Configure los scripts para generar certificados en el dispositivo.
- Cree un certificado de CA raíz. Al final, tiene un archivo de certificado de entidad de certificación raíz
<path>/certs/azure-iot-test-only.root.ca.cert.pem
. - Cree certificados de CA perimetrales. Al final, tiene un certificado de entidad de certificación perimetral
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem
y su clave privada<path>/private/iot-edge-device-ca-<cert name>.key.pem
.
Copia de certificados al dispositivo
Compruebe que el certificado cumple los requisitos de formato.
Si ha creado los certificados en otra máquina, cópielos en el dispositivo IoT Edge. Use una unidad USB, un servicio como Azure Key Vault o un comando como Copia segura de archivos.
Mueva los archivos al directorio preferido para los certificados y las claves:
/var/aziot/certs
para los certificados y/var/aziot/secrets
para las claves.Cree los certificados y directorios de claves y establezca permisos. Almacene los certificados y claves en el directorio preferido
/var/aziot
:/var/aziot/certs
para los certificados y/var/aziot/secrets
para las claves.# If the certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets
Cambie la propiedad y los permisos de los certificados y claves.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Configuración de certificados en un dispositivo
En el dispositivo IoT Edge, abra el archivo de configuración:
/etc/aziot/config.toml
. Si usa IoT Edge para Linux en Windows, conéctese a la máquina virtual EFLOW mediante elConnect-EflowVm
cmdlet de PowerShell.Sugerencia
Si el archivo de configuración todavía no existe en el dispositivo, use
/etc/aziot/config.toml.edge.template
como plantilla para crear uno.Busque el parámetro
trust_bundle_cert
. Quite la marca de comentario de esta línea y proporcione el URI de archivo al certificado de CA raíz en el dispositivo.Busque la sección
[edge_ca]
del archivo. Quite la marca de comentario de las tres líneas de esta sección y proporcione los URI de los archivos de certificado y clave como valores para las siguientes propiedades:- certificado: certificado de entidad de certificación perimetral
- pk: clave privada de CA del dispositivo
Guarde y cierre el archivo.
Aplique los cambios.
sudo iotedge config apply
Implementación de edgeHub y enrutado de mensajes
Los dispositivos subordinados envían telemetría y mensajes al dispositivo de puerta de enlace, donde el módulo IoT Edge Hub enruta la información a otros módulos o a IoT Hub. Para preparar el dispositivo de puerta de enlace para esta función, asegúrese de que:
El módulo del centro de IoT Edge se implementa en el dispositivo.
Al instalar IoT Edge en un dispositivo, solo se inicia automáticamente un módulo del sistema: el agente de IoT Edge. Al crear la primera implementación para un dispositivo, también se inicia el segundo módulo del sistema y el centro de IoT Edge. Si el módulo edgeHub no está en ejecución en el dispositivo, cree una implementación para el dispositivo.
El módulo del centro de IoT Edge tiene rutas configuradas para administrar los mensajes entrantes de los dispositivos de nivel inferior.
El dispositivo de puerta de enlace necesita una ruta para manejar los mensajes de los dispositivos descendentes, de lo contrario esos mensajes no se procesan. Puede enviar los mensajes a los módulos del dispositivo de puerta de enlace o directamente a IoT Hub.
Para implementar el módulo del hub de IoT Edge y configurar rutas para hacer frente a los mensajes entrantes desde dispositivos aguas abajo, siga estos pasos:
En Azure Portal, vaya hasta su instancia de IoT Hub.
Vaya a Dispositivos en el menú Administración de dispositivos y seleccione el dispositivo IoT Edge para usarlo como puerta de enlace.
Seleccione Set modules (Establecer módulos).
En la página Módulos , agregue los módulos que quiera implementar en el dispositivo de puerta de enlace. En este artículo, se centra en configurar e implementar el módulo edgeHub, que no es necesario establecer explícitamente en esta página.
Seleccione Siguiente: rutas.
En la página Rutas, asegúrese de que haya una ruta para manejar los mensajes de los dispositivos downstream. Por ejemplo:
Ruta que envía todos los mensajes, ya sea desde un módulo o desde un dispositivo de nivel inferior, a IoT Hub:
-
Nombre:
allMessagesToHub
-
Valor:
FROM /messages/* INTO $upstream
-
Nombre:
Una ruta que envía todos los mensajes de todos los dispositivos de nivel inferior a IoT Hub:
-
Nombre:
allDownstreamToHub
-
Valor:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Esta ruta funciona porque, a diferencia de los mensajes de Ios módulos de IoT Edge, los mensajes de los dispositivos de nivel inferior no tienen un identificador de módulo asociado. El uso de la cláusula WHERE de la ruta le permite filtrar los mensajes con esa propiedad del sistema.
Para obtener más información sobre el enrutamiento de mensajes, vea Implementar módulos y establecer rutas.
-
Nombre:
Después de crear la ruta o las rutas, seleccione Revisar y crear.
En la página Revisar y crear, seleccione Crear.
Apertura de puertos en el dispositivo de puerta de enlace
Los dispositivos IoT Edge estándar no necesitan conectividad entrante a para funcionar, porque toda la comunicación con IoT Hub se realiza a través de conexiones salientes. Los dispositivos de puerta de enlace son diferentes porque deben recibir mensajes de sus dispositivos de bajada. Si hay un firewall entre los dispositivos de bajada y el dispositivo de puerta de enlace, la comunicación también debe ser posible a través de él.
Para que un escenario de puerta de enlace funcione, al menos uno de los protocolos admitidos en el centro de IoT Edge debe estar abierto para el tráfico entrante procedente de los dispositivos de bajada. Los protocolos admitidos son MQTT, AMQP, HTTPS, MQTT sobre WebSockets y AMQP sobre WebSockets.
Puerto | Protocolo |
---|---|
8883 | protocolo MQTT |
5671 | AMQP |
443 | HTTPS MQTT + WS AMQP + WS |
Pasos siguientes
Ahora que configuró un dispositivo IoT Edge como puerta de enlace transparente, configure los dispositivos aguas abajo para confiar en la puerta de enlace y enviarle mensajes. Continúe con Autenticación de un dispositivo de bajada en Azure IoT Hub para ver los pasos siguientes en el escenario de puerta de enlace transparente.