Nginx

Nginx SSL-oppsett i Linux

Nginx SSL-oppsett i Linux

SSL (står for secure socket layer) er en webprotokoll som gjør trafikken mellom server og klient sikker ved å kryptere den. Server og klienter overfører trafikken trygt uten at risikoen for kommunikasjon tolkes av tredjeparter. Det hjelper også klienten med å verifisere identiteten til nettstedet de kommuniserer med.

I dette innlegget vil vi beskrive hvordan du konfigurerer SSL for Nginx. Vi vil demonstrere prosedyren ved hjelp av det selvsignerte sertifikatet. Et selvsignert sertifikat krypterer bare tilkoblingen, men validerer ikke identiteten til serveren din. Derfor bør den bare brukes til testmiljøer eller for interne LAN-tjenester. For produksjonsmiljøet er det bedre å bruke sertifikatene signert av CA (sertifikatmyndighet).

Forutsetninger

For dette innlegget bør du ha følgende forutsetninger:

Fremgangsmåten som er forklart her er utført på Debian 10 (Buster) maskin.

Trinn 1: Generere et selvsignert sertifikat

Vårt første skritt vil være å generere et selvsignert sertifikat. Gi kommandoen nedenfor i Terminal for å generere CSR (Certificate Signing Request) og en nøkkel:

$ sudo openssl req -x509 -noder -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selvstendig-nginx.key -out / etc / ssl / certs / selvstendig-nginx.crt

Du blir bedt om å oppgi litt informasjon som landnavn, stat, lokalitet, fellesnavn (domenenavn eller IP-adresse) og e-postadresse.

I kommandoen ovenfor vil OpenSSL opprette følgende to filer:

Lag nå dhparam.pem-fil ved hjelp av kommandoen nedenfor:

$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 2048

Trinn 2: Konfigurere Nginx til å bruke SSL

I forrige trinn har vi opprettet CSR og nøkkelen. Nå i dette trinnet vil vi konfigurere Nginx til å bruke SSL. For dette vil vi lage en konfigurasjonskutt og legge til informasjon om SSL-sertifikatfiler og nøkkelplasser.

Gi kommandoen nedenfor i Terminal for å opprette et nytt konfigurasjonsutdrag selvsignert.conf-fil i / etc / nginx / snippets.

$ sudo nano / etc / nginx / snippets / selvsignert.konf

Legg til følgende linjer i filen:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.nøkkel;

De ssl_certificate er satt til selvstendig-nginx.crt (sertifikatfil) mens ssl_certificate_key er satt til selvstendig-nginx.nøkkel (nøkkelfil).

Lagre og lukk selvsignert.konf fil.

Nå vil vi opprette en ny kodefil ssl-params.konf og konfigurer noen grunnleggende SSL-innstillinger. Gi ut kommandoen nedenfor i Terminal for å redigere ssl-params.konf fil:

$ sudo nano / etc / nginx / snippets / ssl-params.konf

Legg til følgende innhold i filen:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AES25;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache delt: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling på;
# ssl_stapling_verify på;
resolver 8.8.8.8 8.8.4.4 gyldig = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-beskyttelse "1; mode = block";

Siden vi ikke bruker et CA-signert sertifikat, har vi derfor deaktivert SSL-stifting. Hvis du bruker et CA-signert sertifikat, må du fjerne kommentaren til ssl_stapling inngang.

Trinn 3: Konfigurere Nginx til å bruke SSL

Nå åpner vi konfigurasjonsfilen for Nginx-serverblokk for å gjøre noen konfigurasjoner.  I dette trinnet vil vi anta at du allerede har konfigurert serverblokken, som vil ligne på dette:

server
hør 80;
hør [::]: 80;
rot / var / www / test.org / html;
indeksindeks.html-indeks.htm indeks.nginx-debian.html;
server_name test.org www.test.org;
plassering /
try_files $ uri $ uri / = 404;

For å åpne konfigurasjonsfilen for Nginx-serverblokk, bruk kommandoen nedenfor:

$ sudo nano / etc / nginx / nettsteder-tilgjengelig / test.org

Endre nå det eksisterende server blokker for å få det til å se slik ut:

server
hør 443 ssl;
hør [::]: 443 ssl;
inkluderer utdrag / selvsignert.conf;
inkluderer utdrag / ssl-params.conf;
rot / var / www / test.org / html;
indeksindeks.html-indeks.htm indeks.nginx-debian.html;
server_name test.org www.test.org;

I konfigurasjonene ovenfor har vi også lagt til SSL-kodebitene selvsignert.konf og ssl-params.konf som vi har konfigurert tidligere.

Deretter legger du til en andre server blokkere.

server
hør 80;
hør [::]: 80;
server_name test.org www.test.org;
returner 302 https: // $ servernavn $ request_uri;

I konfigurasjonen ovenfor, retur 302 omdirigerer HTTP til HTTPS.

Merk: Sørg for å bytte ut testen.org med ditt eget domenenavn. Lagre og lukk filen.

Trinn 4: Tillat SSL-trafikk gjennom brannmur

Hvis en brannmur er aktivert på systemet ditt, må du tillate SSL-trafikk gjennom den.  Nginx gir deg tre forskjellige profiler med ufw. Du kan se dem ved å bruke kommandoen nedenfor i Terminal:

$ sudo ufw appliste

Du vil se følgende utdata med tre profiler for Nginx-trafikken.

Du må tillate "Nginx Full" -profilen i brannmuren. For å gjøre dette, bruk kommandoen nedenfor:

$ sudo ufw tillater 'Nginx Full'

For å bekrefte om profilen er tillatt i brannmuren, bruk kommandoen nedenfor:

$ sudo ufw status

Trinn 5: Test NGINX-konfigurasjonsfilen

Test nå Nginx-konfigurasjonsfilen ved å bruke kommandoen nedenfor i Terminal:

$ sudo nginx -t

Du bør se utdataene nedenfor.


Opprett nå den symbolske lenken mellom tilgjengelige sider og nettsteder-aktiverte:

$ ln -s / etc / nginx / sites-available / test.no / etc / nginx / nettsteder-aktivert /

Start deretter Nginx-tjenesten på nytt for å bruke konfigurasjonsendringene. Bruk kommandoen nedenfor for å gjøre det:

$ sudo systemctl start nginx på nytt

Trinn 6: Test SSL

Nå for å teste SSL, naviger til følgende adresse:

https: // domene-eller-IP-adresse

Da vi har satt opp det selvsignerte sertifikatet, vil vi derfor se en advarsel om at forbindelsen ikke er sikker. Den neste siden vises når du bruker Mozilla Firefox-nettleseren.

Klikk på Avansert knapp.

Klikk Legg til unntak.

Klikk deretter Bekreft sikkerhets unntak.

Nå vil du se HTTPS-nettstedet ditt, men med et advarselsskilt (lås med et gult advarselsskilt) om sikkerheten til nettstedet ditt.

Sjekk også om viderekoblingen fungerer riktig ved å få tilgang til domenet eller IP-adressen din ved hjelp av http.

http: // domene-eller-IP-adresse

Nå, hvis nettstedet ditt omdirigerer automatisk til HTTPS, betyr dette at viderekobling fungerte riktig. For å konfigurere omdirigering permanent, rediger konfigurasjonsfilen for serverblokken ved hjelp av kommandoen nedenfor i Terminal:

$ sudo nano / etc / nginx / nettsteder-tilgjengelig / test.org

Endre nå returen 302 å returnere 301 i filen og deretter lagre og lukke den.

Slik kan du sette opp SSL for Nginx i Debian 10-systemet. Vi har satt opp det selvsignerte sertifikatet for demonstrasjon. Hvis du er i et produksjonsmiljø, må du alltid søke etter et CA-sertifikat.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...