Kryptering: Sådan sikres en NGINX webserver på Ubuntu 16.04


Hvad er Lad os kryptere

Lad os kryptere er en gratis certificeringsmyndighed bragt af Internet Security Research Group (ISRG). Det giver en nem og automatisk måde at få gratis SSL / TLS certifikater på - et nødvendigt trin for at muliggøre kryptering og HTTPS-trafik på webservere. De fleste trin i at opnå og installere et certifikat kan automatiseres ved hjælp af et kaldt værktøj Certbot.

Denne software kan især bruges i tilstedeværelse af shell adgang til serveren: Med andre ord, når det er muligt at oprette forbindelse til serveren via SSH.

I denne tutorial vil vi se, hvordan du bruger certbot at få et gratis SSL-certifikat og bruge det med Nginx på en Ubuntu 16.04-server.

Installer Certbot

Det første skridt er at installere certbot, softwareklienten som vil automatisere næsten alt i processen. Certbot-udviklere opretholder deres eget Ubuntu-softwarearkiv, som indeholder nyere software end dem, der findes i Ubuntu-arkiverne.

Tilføj Certbot-depotet:

# add-apt-repository ppa: certbot / certbot

Opdater derefter APT-kildelisten:

# apt-get opdatering

På dette tidspunkt er det muligt at installere certbot med følgende apt kommando:

# apt-get install certbot

Certbot er nu installeret og klar til brug.

Hent et certifikat

Der er forskellige Certbot-plugins til opnåelse af SSL-certifikater. Disse plugins hjælper med at opnå et certifikat, mens dets installation og webserver konfiguration begge er overladt til administratoren.

Vi bruger et plugin kaldet Webroot at få et SSL-certifikat.

Dette plugin anbefales i de tilfælde, hvor der er mulighed for at ændre indholdet, der serveres. Det er ikke nødvendigt at stoppe webserveren under certifikatudstedelsesprocessen.

Konfigurer NGINX

Webroot virker ved at oprette en midlertidig fil for hvert domæne i en mappe, der hedder .Kendt, placeret inde i web rod mappen. I vores tilfælde er web rodmappen / Var / www / html. Sørg for, at biblioteket er tilgængeligt for Lad os kryptere til validering. For at gøre det skal du redigere NGINX-konfigurationen. Med en teksteditor skal du åbne / Etc / nginx / sites-tilgængelig / default fil:

# $ EDITOR / etc / nginx / sites-available / default

I denne fil, i serverblokken, skal du placere følgende indhold:

 Placering ~ /. Velkendt {Tillad alle; }

Gem, afslut og kontroller NGINX-konfigurationen:

# nginx -t

Uden fejl skal det vise:

nginx: konfigurationsfilen /etc/nginx/nginx.conf syntaks er ok nginx: konfigurationsfilen /etc/nginx/nginx.conf testen er vellykket

Genstart NGINX:

# systemctl genstart nginx

Hent certifikat med Certbot

Det næste trin er at få et nyt certifikat ved hjælp af Certbot med Webroot-plugin. I denne vejledning sikrer vi (som eksempel) domænet www.example.com. Det er nødvendigt at angive hvert domæne, der skal sikres af certifikatet. Udfør følgende kommando:

# certbot certonly - webroot - webroot-path = / var / www / html -d www.example.com

Under processen vil Cerbot bede om en gyldig e-mail-adresse til notifikationsformål. Det vil også bede om at dele det med EFF, men det er ikke nødvendigt. Efter at have accepteret Servicevilkårene, vil den få et nyt certifikat.

I slutningen er biblioteket / Etc / letsencrypt / arkiv vil indeholde følgende filer:

  • chain.pem: Lad os kryptere kædecertifikat.
  • cert.pem: domænecertifikat.
  • fullchain.pem: kombination af cert.pem og chain.pem.
  • privkey.pem: certifikatets private nøgle.

Certbot vil også oprette symbolske links til de nyeste certifikatfiler i / etc / letsencrypt / live / domain_name /. Dette er den sti, vi vil bruge i serverkonfigurationen.

Konfigurer SSL / TLS på NGINX

Næste trin er serverkonfiguration. Opret et nyt uddrag i / etc / Nginx / uddrag /. En uddrag er en del af en konfigurationsfil, som kan indgå i virtuelle hostkonfigurationsfiler. Så lav en ny fil:

# $ EDITOR /etc/nginx/snippets/secure-example.conf

Indholdet af denne fil er de direktiver, der angiver placeringen af ​​certifikatet og nøglen. Indsæt følgende indhold:

ssl_certificate / etc / letsencrypt / live /domænenavn/fullchain.pem; ssl_certificate_key / etc / letsencrypt / live /domænenavn/privkey.pem;

I vores tilfælde domænenavn ville være example.com.

Rediger NGINX-konfiguration

Rediger standard Virtual Host-filen:

# $ EDITOR / etc / nginx / sites-available / default

Som følger:

server {lyt 80 default_server; lyt [::]: 80 default_server; servernavn www.example.com returnere 301 https: // $ server_name $ request_uri; # SSL-konfiguration #
 lyt 443 ssl default_server;
 lyt [::]: 443 ssl default_server;
 inkludere snippets / secure-example.conf
 # # Bemærk: Du skal deaktivere gzip til SSL-trafik. # Se: https://bugs.debian.org/773332 ...

Dette vil muliggøre kryptering på NGINX.

Gem, afslut og kontroller NGINX-konfigurationsfilen:

# nginx -t nginx: konfigurationsfilen /etc/nginx/nginx.conf syntaks er ok nginx: konfigurationsfilen /etc/nginx/nginx.conf testen er vellykket

Genstart NGINX:

# systemctl genstart nginx

Konklusion

Efter alle ovenstående trin har vi på dette tidspunkt en sikret NGINX-baseret webserver, med kryptering givet af Certbot og Let's Encrypt. Dette er bare en grundlæggende konfiguration, og det er selvfølgelig muligt at bruge mange NGINX-konfigurationsparametre til at tilpasse alt, men det afhænger af specifikke webserverkrav.

Stillingen Kryptering: Sådan sikres en NGINX webserver på Ubuntu 16.04 dukkede først på Unixmen.

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.