Sådan aktiveres SSL på NGINX

Billede: Jack Wallen

Secure Sockets Layer (SSL) er blevet en nødvendighed for webservere. Hvorfor? Fordi sikkerhed er blevet tvunget ind i rampelyset, og ethvert firma står nu overfor det faktum, at deres webservere skal servere indhold sikkert.

Datacenter skal læses

  • 8 datacenters forudsigelser for 2020
  • 7 netværksforudsigelser for 2020: Automation, edge computing, Wi-Fi 6 og mere
  • Bedste praksis for server virtualisering og tip til, hvad man ikke skal gøre
  • Kvanteberegning: Syv sandheder, du har brug for at vide

Med henblik herpå skal du gøre brug af SSL. Hvis du tilfældigvis arbejder med NGINX, er du heldig, da processen er meget mulig (dog lidt kompliceret).

Jeg vil gerne lede dig gennem trinnene til at aktivere SSL på en Ubuntu Server 18.04, der kører NGINX. Jeg vil demonstrere dette med et selvsigneret certifikat, men et certifikat fra en officiel Certificate Authority (CA) er et meget bedre valg. Faktisk skal du kun bruge det selvsignerede certifikat som et middel til testformål.

Hvad du har brug for

For at opnå dette har du brug for NGINX, der kører på Ubuntu Server 18.04, med et selvsigneret certifikat klar. Jeg antager, at du allerede har Ubuntu og NGINX i gang. Vi går igennem processen med at oprette det selvsignerede certifikat.

Selvsigneret certifikat

Det første trin er at generere dit selvsignerede certifikat. For at gøre dette skal du logge ind på din server og udstede følgende kommando:

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

Du bliver stillet et par spørgsmål (f.eks. Landets navn, stat, lokalitet osv.). Det vigtigste svar er det fælles navn. For dette spørgsmål skal du svare med serverens IP-adresse ( figur A ).

Figur A

Konfiguration af det fælles navn med en IP-adresse.


Når kommandoen er afsluttet, tilføjes de nødvendige filer til mappen / etc / ssl og er klar til brug.

Konfigurer NGINX

Nu skal vi konfigurere NGINX til at bruge SSL. Opret først en ny konfigurationsstykkefil med kommandoen:

 sudo nano /etc/nginx/snippets/self-signed.conf 

I den nye fil skal du tilføje følgende indhold:

 ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; 

Gem og luk filen.

Opret derefter et andet konfigurationsuddrag, der peger på vores nyligt genererede SSL-nøgle og certifikat. For at gøre dette skal du udstede kommandoen:

 sudo nano /etc/nginx/snippets/ssl-params.conf 

I den nye fil skal du tilføje følgende indhold:

 ssl_protocols TLSv1.2; ssl_prefer_server_ciphers tændt; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_cifhers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-A25; ssl_ecdh_curve secp384r1; # Kræver nginx> = 1.1.0 ssl_session_timeout 10m; ssl_session_cache delt: SSL: 10m; ssl_session_tickets deaktiveret; # Kræver nginx> = 1.5.9 # ssl_stapling på; # Kræver nginx> = 1.3.7 # ssl_stapling_verify på; # Kræver nginx => 1.3.7 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-Protection "1; mode = block"; 

Da vi bruger et selvsigneret certifikat, deaktiverer vi SSL-hæftning (en metode til hurtigt og sikkert at bestemme, om et SSL-certifikat er gyldigt eller ej). Hvis du ikke bruger et selvsigneret certifikat, skal du fjerne symbolerne # før de to linjer. Du kan også ændre resolverlinien for at afspejle dine foretrukne DNS-servere. Gem og luk filen.

Vi er også nødt til at generere dhparam.pem-filen med kommandoen:

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

Ovenstående kommando vil tage nogen tid.

Det næste trin er at konfigurere NGINX til at være opmærksom på, at vi vil bruge SSL. Lad os antage, at du har en serverblok for eksempel.com på websteder, der er tilgængelige. Åbn denne serverblok med kommandoen:

 sudo nano /etc/nginx/sites-available/example.com 

Rediger den i denne fil for at afspejle følgende:

 server {lytte 443 ssl; lyt ::: 443 ssl; inkluderer uddrag / selvsigneret.conf; inkluderer uddrag / ssl-params.conf; servernavn eksempel.com www.eksempel.com; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; } 

Nedenfor tilføjer en ny serverblok (for at udføre en HTTPS-omdirigering) som sådan:

 server {lyt 80; lyt ::: 80; servernavn eksempel.com www.eksempel.com; return 302 https: // $ servernavn $ request_uri; } 

Endelig er vi nødt til at linke fra sider, der er tilgængelige til websteder, der er aktiveret med kommandoen:

 ln -s /etc/nginx/sites-available/www.example.com / etc / nginx / sites-enabled / 

Tjek profilerne

Ved hjælp af ufw kan vi tjekke vores nye SSL-aktiverede profiler med kommandoen:

 sudo ufw-appliste 

Dette skulle tydeligt vise, at NGINX HTTPS er aktiveret ( figur B ).

Figur B

NGINX HTTPS er klar.


Genstart NGINX med med kommandoen:

 sudo systemctl genstart nginx 

Du skal nu kunne pege en browser til https: // SERVER_IP (hvor SERVER_IP er IP-adressen på din server) og se (fordi vi bruger et selvsigneret certifikat) en advarsel om certifikatets sikkerhed ( figur C ).

Fig

Firefox, der angiver webstedet, er muligvis ikke sikkert.


Tillykke, du har nu SSL, der arbejder med NGINX. Dit datacenters webservere er mere sikre.

Datacenter Trends Nyhedsbrev

DevOps, virtualisering, hybrid sky, opbevaring og driftseffektivitet er blot nogle af de datacenteremner, vi vil fremhæve. Leveres mandage og onsdage

Tilmeld dig i dag

© Copyright 2021 | mobilegn.com