Nginx

Nginx SSL-opsætning i Linux

Nginx SSL-opsætning i Linux

SSL (står for secure socket layer) er en webprotokol, der gør trafikken mellem server og klient sikker ved at kryptere den. Server og klienter transmitterer sikkert trafikken uden risiko for, at kommunikation fortolkes af tredjeparter. Det hjælper også klienten med at kontrollere identiteten af ​​det websted, de kommunikerer med.

I dette indlæg vil vi beskrive, hvordan du konfigurerer SSL til Nginx. Vi demonstrerer proceduren ved hjælp af det selvsignerede certifikat. Et selvsigneret certifikat krypterer kun forbindelsen, men validerer ikke serverens identitet. Derfor bør den kun bruges til testmiljøer eller til interne LAN-tjenester. For produktionsmiljøet er det bedre at bruge certifikater underskrevet af CA (certifikatmyndighed).

Forudsætninger

For dette indlæg skal du have følgende forudsætninger:

Proceduren forklaret her er blevet udført den Debian 10 (Buster) maskine.

Trin 1: Generering af et selvunderskrevet certifikat

Vores første skridt vil være at generere et selvsigneret certifikat. Udsted nedenstående kommando i Terminal for at generere CSR (Certificate Signing Request) og en nøgle:

$ sudo openssl req -x509 -noder -dage 365 -nykey rsa: 2048 -keyout / etc / ssl / private / selvstændige-nginx.nøgle-ud / etc / ssl / certs / selvstændig-nginx.crt

Du bliver bedt om at give nogle oplysninger som dit lands navn, stat, lokalitet, almindelige navn (dit domænenavn eller IP-adresse) og e-mail-adresse.

I ovenstående kommando opretter OpenSSL følgende to filer:

Opret nu dhparam.pem-fil ved hjælp af nedenstående kommando:

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

Trin 2: Konfiguration af Nginx til brug af SSL

I det forrige trin har vi oprettet CSR og nøglen. Nu i dette trin konfigurerer vi Nginx til at bruge SSL. Til dette opretter vi et konfigurationsuddrag og tilføjer oplysninger om vores SSL-certifikatfiler og nøgleplaceringer.

Udsted kommandoen nedenfor i Terminal for at oprette et nyt konfigurationsuddrag selvsigneret.conf-fil i / etc / nginx / uddrag.

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

Tilføj følgende linjer i filen:

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

Det ssl_certificate er indstillet til selvstændig-nginx.crt (certifikatfil), mens ssl_certificate_key er indstillet til selvstændig-nginx.nøgle (nøglefil).

Gem og luk selvsigneret.konf fil.

Nu opretter vi en anden kodestykkefil ssl-params.konf og konfigurer nogle grundlæggende SSL-indstillinger. Udsted kommandoen nedenfor i Terminal for at redigere ssl-params.konf fil:

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

Føj følgende indhold til 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 gyldige = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-beskyttelse "1; mode = blok";

Da vi ikke bruger et CA-signeret certifikat, har vi derfor deaktiveret SSL-hæftning. Hvis du bruger et CA-signeret certifikat, skal du fjerne kommentar til ssl_stapling indgang.

Trin 3: Konfiguration af Nginx til brug af SSL

Nu åbner vi Nginx-serverblokkonfigurationsfilen for at foretage nogle konfigurationer.  I dette trin antager vi, at du allerede har konfigureret serverblokken, som ligner denne:

server
lyt 80;
lyt [::]: 80;
rod / var / www / test.org / html;
indeksindeks.html-indeks.htm-indeks.nginx-debian.html;
test af servernavn.org www.prøve.org;
Beliggenhed /
try_files $ uri $ uri / = 404;

For at åbne Nginx-serverblokkonfigurationsfilen skal du bruge nedenstående kommando:

$ sudo nano / etc / nginx / sites-tilgængelig / test.org

Rediger nu det eksisterende server blok for at få det til at se sådan ud:

server
lyt 443 ssl;
lyt [::]: 443 ssl;
inkluderer uddrag / selvsigneret.conf;
inkluderer uddrag / ssl-params.conf;
rod / var / www / test.org / html;
indeksindeks.html-indeks.htm-indeks.nginx-debian.html;
test af servernavn.org www.prøve.org;

I ovenstående konfigurationer har vi også tilføjet SSL-uddrag selvsigneret.konf og ssl-params.konf som vi har konfigureret tidligere.

Tilføj derefter en anden server blok.

server
lyt 80;
lyt [::]: 80;
test af servernavn.org www.prøve.org;
returner 302 https: // $ servernavn $ request_uri;

I ovenstående konfiguration, returnere 302 omdirigerer HTTP til HTTPS.

Bemærk: Sørg for at udskifte testen.org med dit eget domænenavn. Gem nu og luk filen.

Trin 4: Tillad SSL-trafik gennem Firewall

Hvis en firewall er aktiveret på dit system, skal du tillade SSL-trafik gennem det.  Nginx giver dig tre forskellige profiler med ufw. Du kan se dem ved hjælp af nedenstående kommando i Terminal:

$ sudo ufw app liste

Du får vist følgende output med tre profiler til Nginx-trafikken.

Du bliver nødt til at tillade profilen “Nginx Full” i firewallen. For at gøre dette skal du bruge nedenstående kommando:

$ sudo ufw tillader 'Nginx Full'

Brug nedenstående kommando for at kontrollere, om profilen er tilladt i firewallen:

$ sudo ufw status

Trin 5: Test NGINX-konfigurationsfil

Test nu Nginx-konfigurationsfilen ved hjælp af nedenstående kommando i Terminal:

$ sudo nginx -t

Du skal se nedenstående output.


Opret nu den symbolske forbindelse mellem tilgængelige websteder og aktiverede websteder:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / sites-enabled /

Genstart derefter Nginx-tjenesten for at anvende konfigurationsændringerne. Brug nedenstående kommando til at gøre det:

$ sudo systemctl genstart nginx

Trin 6: Test SSL

Nu for at teste SSL skal du navigere til følgende adresse:

https: // domæne-eller-IP-adresse

Da vi har oprettet det selvsignerede certifikat, vil vi derfor se en advarsel om, at forbindelsen ikke er sikker. Den følgende side vises, når du bruger Mozilla Firefox-browseren.

Klik på Fremskreden knap.

Klik på Tilføj undtagelse.

Klik derefter på Bekræft sikkerhedsundtagelse.

Nu vil du se dit HTTPS-sted, men med et advarselsskilt (lås med et gult advarselsskilt) om sikkerheden på dit websted.

Kontroller også, om omdirigering fungerer korrekt ved at få adgang til dit domæne eller IP-adresse ved hjælp af http.

http: // domæne-eller-IP-adresse

Nu, hvis dit websted automatisk omdirigerer til HTTPS, betyder det, at omdirigering fungerede korrekt. For at konfigurere omdirigering permanent skal du redigere serverblokkonfigurationsfilen ved hjælp af nedenstående kommando i Terminal:

$ sudo nano / etc / nginx / sites-tilgængelig / test.org

Skift nu afkastet 302 at vende tilbage 301 i filen, og gem den og luk den.

Sådan kan du konfigurere SSL til Nginx i Debian 10-systemet. Vi har oprettet det selvsignerede certifikat til demonstration. Hvis du er i et produktionsmiljø, skal du altid vælge et CA-certifikat.

Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...