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
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 365In 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=443De 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.
