Utilisation d'Axe DevTools Linter avec un Proxy Inverse

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Comment utiliser NGINX comme proxy inverse pour crypter les connexions vers votre instance d'Axe DevTools Linter sur site

Free Trial
Not for use with personal data

Vous pouvez crypter vos connexions vers votre instance d'Axe DevTools Linter sur site (et empêcher l'espionnage par intermédiaire) en utilisant un serveur proxy inverse tel que NGINX. Ce guide vous montre comment procéder.

Exigences

note

Ce guide suppose que vous installerez sur une machine Linux.

Vous aurez besoin des logiciels suivants :

  • Binaire Axe DevTools Linter sur site
  • NGINX
  • OpenSSL (pour créer des certificats auto-signés)

Pour obtenir de l'aide pour installer NGINX, voir Installer | NGINX.

Pour plus d'informations sur l'installation du serveur Axe DevTools Linter sur site, voir Configuration du Serveur sur Site.

Vous aurez besoin d'OpenSSL pour créer des certificats auto-signés. Pour plus d'informations sur OpenSSL, voir OpenSSL.

Configuration de NGINX

Vous pouvez créer un fichier de configuration et le placer dans le répertoire /etc/nginx/config.d . Pour cet exemple, créez un fichier de configuration nommé axe-linter.conf et placez-le dans le répertoire /etc/nginx/config.d . La configuration ci-dessous est un exemple de configuration de NGINX en tant que proxy inverse :

  server {
    listen      443 ssl;
    listen [::]:443 ssl;

    # Configure SSL.
    # Replace `/opt/deque/cert/axe.crt` and `/opt/deque/cert/axe.key` 
    # with your own key files.

    ssl_certificate     /opt/deque/axe/certs/axe.crt;
    ssl_certificate_key /opt/deque/axe/certs/axe.key;

    server_name _;

    # Redirect all requests to Axe DevTools Linter
    location / {
      proxy_pass         http://127.0.0.1:3000;
      proxy_http_version 1.1;
      proxy_cache_bypass $http_upgrade;

      proxy_set_header Upgrade    $http_upgrade;
      proxy_set_header connection 'upgrade';
      proxy_set_header Host       $host;
      proxy_set_header X-Real-IP  $remote_addr;
    }
  }

Vous aurez besoin de deux fichiers de certificats SSL comme indiqué par les options ssl_certificate et ssl_certificate_key dans la configuration ci-dessus.

Dans l'exemple ci-dessus, les demandes à ce serveur NGINX sont transférées à un serveur Axe DevTools Linter sur localhost (127.0.0.1) au port 3000.

Après avoir modifié la configuration, redémarrez NGINX comme indiqué ci-dessous :

sudo service nginx restart

Configuration de DNS

Un certificat SSL est requis sur votre serveur maintenant que vous utilisez des connexions chiffrées. Si le serveur possède un nom enregistré dans le DNS (comme un enregistrement DNS A, par exemple), vous pouvez utiliser un service tel que Let's Encrypt pour générer des certificats gratuits. Si vous souhaitez accéder à votre serveur uniquement via son adresse IP, vous devez créer un certificat auto-signé car un service tel que Let's Encrypt n'émettra pas de certificats pour les adresses IP—ils exigent que le serveur soit enregistré auprès d'un serveur DNS.

Utilisation d'un Certificat Auto-signé

Pour les serveurs accessibles uniquement via leur adresse IP, la première étape consiste à créer les certificats auto-signés avec OpenSSL comme indiqué ci-dessous :

openssl req -newkey rsa:2048 -x509 -nodes -keyout /etc/ssl/private/axe-selfsigned.key -new -out /etc/ssl/certs/axe-selfsigned.crt -subj /CN=axe-linter-server -reqexts SAN -extensions SAN -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=IP:10.10.1.50')) -sha256 -days 365

Dans la commande ci-dessus, vous devez changer l'adresse IP par l'adresse IP de votre serveur (dans l'exemple, elle est définie sur 10.10.1.50), et vous devrez modifier les chemins des certificats dans votre fichier de configuration dans /etc/nginx/config.d pour pointer vers /etc/ssl/private/axe-selfsigned.key et /etc/ssl/certs/axe-selfsigned.crt.

Le certificat créé est valable pour un an seulement (l'option -days 365 ), mais vous pouvez le changer pour une durée plus longue.

Utilisation du Connecteur Axe DevTools Linter avec des Certificats Auto-signés

Vous devrez copier le certificat sur la machine cliente (dans cet exemple, le fichier axe-selfsigned.crt ) pour que votre code client ou Axe DevTools Linter Connector puisse utiliser le certificat.

Ensuite, vous devrez configurer les variables d'environnement comme discuté dans Configuration des variables d'environnement

L'exemple suivant montre comment utiliser Axe DevTools Linter Connector avec votre certificat auto-signé :

NODE_EXTRA_CA_CERTS=/path/to/downloaded/axe-selfsigned.crt axe-linter-connector -s . -d .

La variable d'environnement NODE_EXTRA_CA_CERTS indique à node et donc à Axe DevTools Linter Connector d'accepter le certificat auto-signé spécifié, qui serait normalement rejeté, comme indiqué ci-dessous :

axe-linter-connector -s . -d .   
Error: self signed certificate
    at TLSSocket.onConnectSecure (_tls_wrap.js:1502:34)
    at TLSSocket.emit (events.js:314:20)
    at TLSSocket._finishInit (_tls_wrap.js:937:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:711:12)

Configuration des variables d'environnement

Pour utiliser Axe DevTools Linter Connector avec un serveur proxy inverse, vous devez changer ses deux variables d'environnement :

  • AXE_LINTER_SERVER_URL
  • AXE_LINTER_SERVER_PORT

Par exemple, vous pouvez définir les variables comme indiqué ci-dessous :

export AXE_LINTER_SERVER_URL=https://10.10.1.50
export AXE_LINTER_SERVER_PORT=443

L'URL doit commencer par https et le port doit être 443, sinon vous ne pourrez pas vous connecter à votre serveur.

Blocage du port non sécurisé dans votre pare-feu

Vous pourriez envisager de bloquer le port assigné à votre serveur Axe DevTools Linter (ici, le port 3000) pour le trafic extérieur afin de vous assurer que toutes les connexions passent par le serveur proxy.