Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration du proxy local pour les appareils utilisant un proxy Web
Vous pouvez utiliser un proxy local sur les AWS IoT appareils pour communiquer grâce à un tunneling AWS IoT APIs sécurisé. Le proxy local transmet les données envoyées par l'application de l'appareil à l'aide d'un tunneling sécurisé via une connexion WebSocket sécurisée. Le proxy local peut fonctionner en mode destination
ou source
. En source
mode, il s'exécute sur le même appareil ou le même réseau que celui qui initie la TCP connexion. En destination
mode, le proxy local s'exécute sur l'appareil distant, en même temps que l'application de destination. Pour de plus amples informations, veuillez consulter Proxy local.
Le proxy local doit se connecter directement à Internet pour utiliser le AWS IoT tunneling sécurisé. Pour une TCP connexion de longue durée avec tunneling sécurisé, le proxy local met à niveau la HTTPS demande pour établir une WebSockets connexion à l'un des points de terminaison de connexion du dispositif de tunneling sécurisé.
Si vos appareils se trouvent dans un réseau qui utilise un proxy Web, celui-ci peut intercepter les connexions avant de les rediriger vers Internet. Pour établir une connexion de longue durée avec les points de terminaison de connexion du dispositif de tunneling sécurisé, configurez votre proxy local pour qu'il utilise le proxy Web comme décrit dans la spécification du websocket
Note
Le AWS IoT Client de l'appareil ne prend pas en charge les appareils qui utilisent un proxy web. Pour utiliser le proxy Web, vous devez utiliser un proxy local et le configurer pour qu'il fonctionne avec un proxy Web, comme décrit ci-dessous.
Les étapes suivantes montrent comment le proxy local fonctionne avec un proxy Web.
-
Le proxy local envoie une HTTP
CONNECT
demande au proxy Web qui contient l'adresse distante du service de tunneling sécurisé, ainsi que les informations d'authentification du proxy Web. -
Le proxy Web créera ensuite une connexion de longue durée avec les points de terminaison de tunneling sécurisés distants.
-
La TCP connexion est établie et le proxy local fonctionne désormais en mode source et en mode destination pour la transmission de données.
Pour mener à bien cette procédure, procédez comme suit.
Créez le proxy local
Ouvrez le code source du proxy local
Configuration de votre proxy Web
Le proxy local repose sur le mécanisme de HTTP tunneling décrit par la spécification HTTP/1.1CONNECT
méthode.
La façon dont vous configurez votre proxy Web dépend du proxy Web que vous utilisez et de la version du proxy Web. Pour vous assurer que vous configurez correctement le proxy Web, consultez la documentation de votre proxy Web.
Pour configurer votre proxy Web, identifiez-le d'abord URL et vérifiez s'il prend en charge le HTTP tunneling. Le proxy Web URL sera utilisé ultérieurement lorsque vous configurerez et démarrerez le proxy local.
-
Identifiez votre proxy Web URL
Votre proxy Web URL sera au format suivant.
protocol
://web_proxy_host_domain
:web_proxy_port
AWS IoT le tunneling sécurisé ne prend en charge que l'authentification de base pour le proxy Web. Pour utiliser l'authentification de base, vous devez spécifier le
username
et dans lepassword
cadre du proxy WebURL. Le proxy Web URL sera au format suivant.protocol
://username
:password
@web_proxy_host_domain
:web_proxy_port
-
protocol
peut êtrehttp
ouhttps
. Nous vous recommandons d'utiliserhttps
. -
web_proxy_host_domain
est l'adresse IP de votre proxy Web ou un DNS nom correspondant à l'adresse IP de votre proxy Web. -
web_proxy_port
est le port sur lequel le proxy Web écoute. -
Le proxy Web l'utilise
username
etpassword
pour authentifier la demande.
-
-
Testez votre proxy Web URL
Pour vérifier si votre proxy Web prend en charge le TCP tunneling, utilisez une
curl
commande et assurez-vous d'obtenir une réponse2xx
ou une3xx
réponse.Par exemple, si votre proxy Web l'URLest
https://server.com:1235
, utilisez unproxy-insecure
indicateur avec lacurl
commande, car le proxy Web peut s'appuyer sur un certificat auto-signé.export HTTPS_PROXY=https:
//server.com:1235
curl -I https://aws.amazon.com --proxy-insecureSi votre proxy Web URL possède un
http
port (par exemple,http://server.com:1234
), vous n'êtes pas obligé d'utiliser leproxy-insecure
drapeau.export HTTPS_PROXY=http:
//server.com:1234
curl -I https://aws.amazon.com
Configuration et démarrage du proxy local
Pour configurer le proxy local afin qu'il utilise un proxy Web, vous devez configurer la variable d'HTTPS_PROXY
environnement avec les noms de DNS domaine ou les adresses IP et les numéros de port utilisés par votre proxy Web.
Après avoir configuré le proxy local, vous pouvez utiliser le proxy local comme expliqué dans ce README
Note
La casse est sensible à la casse dans votre déclaration de variable d'environnement. Nous vous recommandons de définir chaque variable une seule fois en majuscules ou en minuscules. Les exemples suivants montrent que la variable d'environnement est déclarée en lettres majuscules. Si la même variable est spécifiée à la fois en majuscules et en minuscules, la variable spécifiée en minuscules est prioritaire.
Les commandes suivantes indiquent comment configurer le proxy local qui s'exécute sur votre destination pour utiliser le proxy Web et démarrer le proxy local.
-
AWSIOT_TUNNEL_ACCESS_TOKEN
: Cette variable contient le jeton d'accès client (CAT) pour la destination. -
HTTPS_PROXY
: Cette variable contient le proxy Web URL ou l'adresse IP permettant de configurer le proxy local.
Les commandes présentées dans les exemples suivants dépendent du système d'exploitation que vous utilisez et du fait que le proxy Web écoute sur un port HTTP ou un HTTPS port.
Proxy Web écoutant sur un HTTP port
Si votre proxy Web écoute sur un HTTP port, vous pouvez fournir le proxy Web URL ou l'adresse IP de la HTTPS_PROXY
variable.
Proxy Web écoutant sur un HTTPS port
Exécutez les commandes suivantes si votre proxy Web écoute sur un HTTPS port.
Note
Si vous utilisez un certificat auto-signé pour le proxy Web ou si vous exécutez le proxy local sur un système d'exploitation qui ne possède pas de SSL support Open natif ni de configurations par défaut, vous devrez configurer vos certificats de proxy Web comme décrit dans la section Configuration des certificats
Les commandes suivantes ressembleront à la façon dont vous avez configuré votre proxy Web pour un HTTP proxy, à l'exception du fait que vous spécifierez également le chemin d'accès aux fichiers de certificats que vous avez installés, comme décrit précédemment.
Exemple de commande et de sortie
Voici un exemple de commande que vous exécutez sur un système d'exploitation Linux et le résultat correspondant. L'exemple montre un proxy Web qui écoute sur un HTTP port et montre comment le proxy local peut être configuré pour utiliser le proxy Web dans source
les deux destination
modes. Avant de pouvoir exécuter ces commandes, vous devez avoir déjà ouvert un tunnel et obtenu les jetons d'accès client pour la source et la destination. Vous devez également avoir créé le proxy local et configuré votre proxy Web comme décrit précédemment.
Voici une vue d'ensemble des étapes à suivre après le démarrage du proxy local. Le proxy local :
-
Identifie le proxy Web URL afin qu'il puisse utiliser le URL pour se connecter au serveur proxy.
-
Établit une TCP connexion avec le proxy Web.
-
Envoie une HTTP
CONNECT
demande au proxy Web et attend laHTTP/1.1 200
réponse, qui indique que la connexion a été établie. -
Met à niveau le HTTPS protocole WebSockets pour établir une connexion de longue durée.
-
Commence à transmettre des données via la connexion aux points de terminaison du dispositif de tunneling sécurisé.
Note
Les commandes suivantes utilisées dans les exemples utilisent l'verbosity
indicateur pour illustrer une vue d'ensemble des différentes étapes décrites précédemment après l'exécution du proxy local. Nous vous recommandons d'utiliser cet indicateur uniquement à des fins de test.
Exécution d'un proxy local en mode source
Les commandes suivantes montrent comment exécuter le proxy local en mode source.
export AWSIOT_TUNNEL_ACCESS_TOKEN=
${access_token}
export HTTPS_PROXY=http:username
:password
@10.15.10.25:1234
./localproxy -s 5555 -v 5 -r us-west-2
Ce qui suit montre un exemple de sortie de l'exécution du proxy local en source
mode.
... Parsed basic auth credentials for the URL Found Web proxy information in the environment variables, will use it to connect via the proxy. ... Starting proxy in source mode Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443 Resolved Web proxy IP: 10.10.0.11 Connected successfully with Web Proxy Successfully sent HTTP CONNECT to the Web proxy Full response from the Web proxy: HTTP/1.1 200 Connection established TCP tunnel established successfully Connected successfully with proxy server Successfully completed SSL handshake with proxy server Web socket session ID: 0a109afffee745f5-00001341-000b8138-cc6c878d80e8adb0-f186064b Web socket subprotocol selected: aws.iot.securetunneling-2.0 Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443 Seting up web socket pings for every 5000 milliseconds Scheduled next read: ... Starting web socket read loop continue reading... Resolved bind IP: 127.0.0.1 Listening for new connection on port 5555
Exécution d'un proxy local en mode destination
Les commandes suivantes montrent comment exécuter le proxy local en mode destination.
export AWSIOT_TUNNEL_ACCESS_TOKEN=
${access_token}
export HTTPS_PROXY=http:username
:password
@10.15.10.25:1234
./localproxy -d 22 -v 5 -r us-west-2
Ce qui suit montre un exemple de sortie de l'exécution du proxy local en destination
mode.
... Parsed basic auth credentials for the URL Found Web proxy information in the environment variables, will use it to connect via the proxy. ... Starting proxy in destination mode Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443 Resolved Web proxy IP: 10.10.0.1 Connected successfully with Web Proxy Successfully sent HTTP CONNECT to the Web proxy Full response from the Web proxy: HTTP/1.1 200 Connection established TCP tunnel established successfully Connected successfully with proxy server Successfully completed SSL handshake with proxy server Web socket session ID: 06717bfffed3fd05-00001355-000b8315-da3109a85da804dd-24c3d10d Web socket subprotocol selected: aws.iot.securetunneling-2.0 Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443 Seting up web socket pings for every 5000 milliseconds Scheduled next read: ... Starting web socket read loop continue reading...