Axe DevTools Linter gebruiken met een Reverse Proxy

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
Free Trial
Not for use with personal data

Je kunt je verbindingen met je lokale Axe DevTools Linter-omgeving versleutelen (en afluisteren door derden voorkomen) door een reverse proxyserver te gebruiken, zoals NGINX. Deze handleiding laat je zien hoe.

Vereisten

note

Deze handleiding gaat ervan uit dat je de installatie uitvoert op een Linux-machine.

Je hebt de volgende software nodig:

  • Lokale Axe DevTools Linter-binary
  • NGINX
  • OpenSSL (voor het maken van zelfondertekende certificaten)

Voor hulp bij het installeren van NGINX, zie Installeren | NGINX.

Voor meer informatie over het installeren van de lokale Axe DevTools Linter-server, zie Instellen van de Lokale Server.

Je moet OpenSSL gebruiken om zelfondertekende certificaten te maken. Voor meer informatie over OpenSSL, zie OpenSSL.

NGINX configureren

Je kunt een configuratiebestand maken en dit plaatsen in de /etc/nginx/config.d directory. Maak voor dit voorbeeld een configuratiebestand genaamd axe-linter.conf en plaats het in de /etc/nginx/config.d directory. Hieronder vind je een voorbeeld van hoe je NGINX als reverse proxy configureert:

  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;
    }
  }

Je hebt twee SSL-certificaatbestanden nodig zoals aangegeven door de ssl_certificate en ssl_certificate_key opties in de bovenstaande configuratie.

In het bovenstaande voorbeeld worden verzoeken aan deze NGINX-server doorgestuurd naar een Axe DevTools Linter-server op localhost (127.0.0.1) op poort 3000.

Na het wijzigen van de configuratie, herstart NGINX zoals hieronder aangegeven:

sudo service nginx restart

DNS configureren

Een SSL-certificaat is nu vereist op je server omdat je versleutelde verbindingen gebruikt. Als de server een naam heeft die in de DNS is geregistreerd (bijvoorbeeld als een DNS A-record), kun je een dienst zoals Let's Encrypt gebruiken om gratis certificaten te genereren. Als je toegang wilt tot je server via alleen het IP-adres, moet je een zelfondertekend certificaat creëren omdat een dienst zoals Let's Encrypt geen certificaten voor IP-adressen uitgeeft; ze vereisen dat de server bij een DNS-server is geregistreerd.

Een Zelfondertekend Certificaat Gebruiken

Voor servers die alleen via hun IP-adres worden benaderd, is de eerste stap het maken van zelfondertekende certificaten met OpenSSL zoals hieronder aangegeven:

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

In de bovenstaande opdracht moet je het IP-adres wijzigen naar het IP-adres van je server (in het voorbeeld is het ingesteld op 10.10.1.50), en je moet de paden naar de certificaten in je configuratiebestand in /etc/nginx/config.d wijzigen zodat ze wijzen naar /etc/ssl/private/axe-selfsigned.key en /etc/ssl/certs/axe-selfsigned.crt.

Het gecreëerde certificaat is slechts één jaar geldig (de -days 365 optie), maar je kunt dit wijzigen naar een langere duur.

Axe DevTools Linter Connector gebruiken met Zelfondertekende Certificaten

Je moet het certificaat kopiëren naar de clientmachine (in dit voorbeeld de axe-selfsigned.crt bestand), zodat je clientcode of Axe DevTools Linter-connector het certificaat kan gebruiken.

Daarna moet je de omgevingsvariabelen configureren zoals besproken in Omgevingsvariabelen Instellen

Het volgende voorbeeld laat zien hoe je Axe DevTools Linter-connector gebruikt met je zelfondertekende certificaat:

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

De omgevingsvariabele NODE_EXTRA_CA_CERTS vertelt aan node en dus ook aan Axe DevTools Linter-connector om het opgegeven zelfondertekende certificaat te accepteren, dat normaal gesproken zou worden geweigerd, zoals hieronder weergegeven:

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)

Omgevingsvariabelen Instellen

Om Axe DevTools Linter-connector met een reverse proxyserver te gebruiken, moet je beide omgevingsvariabelen wijzigen:

  • AXE_LINTER_SERVER_URL
  • AXE_LINTER_SERVER_PORT

Je kunt bijvoorbeeld de variabelen instellen zoals hieronder weergegeven:

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

De URL moet beginnen met https en de poort moet 443 zijn, anders kun je geen verbinding maken met je server.

Het Blokkeren van de Ongescheiden Poort in Uw Firewall

Je zou kunnen overwegen om de poort die aan je Axe DevTools Linter-server is toegewezen (hier, poort 3000) voor buitenverkeer te blokkeren, zodat je zeker weet dat alle verbindingen via de proxyserver verlopen.