Studentervejledning - Installation af SSL / TLS-certifikater på Nginx

  • Noah Scott
  • 0
  • 2210
  • 158

Når du kører Nginx på Ubuntu 16.10, er et spørgsmål, der bliver ved med at dukke op, hvordan man installerer SSL / TLS-certifikater til Nginx webservere. Denne korte vejledning viser studerende og nye brugere, hvordan man nemt installerer SSL-certifikater til Nginx-webservere på Ubuntu 16.10.

For at lære at gøre dette skal du fortsætte nedenfor

Nginx er en stærk webserver. Jeg er nu vært for alle mine WordPress-blogs og websteder på Nginx-webservere. Apache2 skar mig godt, men jeg har fundet en ny ven i Nginx.

Når du vil køre Nginx over SSL / TLS HTTPS-protokol, skal du fortsætte nedenfor for at lære, hvordan det gøres.

Trin 1: Få Nginx til at arbejde på Ubuntu

Før du kan installere og bruge SSL / TLS på Nginx, skal du få Nginx installeret og fungere. Webserveren skal kunne tjene websider via HTTP fra sin rodmappe. Hvis du ikke kan bestå testen, er jeg bange for, at du ikke kommer langt med dette indlæg.

For at installere Nginx på Ubuntu skal du køre kommandoerne nedenfor.

sudo apt-get opdater sudo apt-get install nginx

Kommandoerne ovenfor installerer Nginx-pakker fra Ubuntu-standardlagre. Hvis du vil have det nyeste og bedste af Nginx, skal du installere det fra Nginxs egne arkiver. For at tilføje dette lager til din Ubuntu-maskine skal du køre kommandoerne nedenfor:

sudo sh -c 'echo "deb http://nginx.org/packages/ubuntu/' lsb_release -cs 'nginx" >> /etc/apt/sources.list.d/Nginx.list'

Når du har tilføjet lageret, skal du køre kommandoerne nedenfor for at tilføje lagernøglen til dit system. Dette godkender arkivet.

cd / tmp / && wget http://nginx.org/keys/nginx_signing.key sudo apt-key tilføj nginx_signing.key

Kør derefter kommandoerne nedenfor for at installere den nyeste version af Nginx til din Ubuntu-maskine.

sudo apt-get opdatering && sudo apt-get dist-upgrade && sudo apt-get autoremove

Når Nginx er installeret, skal du være i stand til at få adgang til sin standard testside via HTTP fra rodmappen som vist nedenfor:

Trin 2: Opret et SSL / TLS selvsigneret certifikat

Nu hvor Nginx er installeret og fungerer, skal du oprette et selvsigneret certifikat. For at gøre det skal du køre kommandoerne nedenfor for at oprette en certifikatmappe

sudo mkdir / etc / nginx / ssl /

Skift derefter til den mappe, og kør følgende kommandoer

cd / etc / nginx / ssl /

Kør nedenstående kommandoer for at generere serverens private nøgle. Du bliver bedt om at skrive og bekræfte en adgangskode til den private nøgle.

sudo openssl genrsa -des3 -out server.key 2048

Nginx kører nedenstående kommandoer for at generere en certifikatsigneringsanmodning (CSR) ved hjælp af serverens private nøgle. Du bliver bedt om at skrive serverens private nøgle.

sudo openssl req -nyt -nøgleserver.nøgle -out server.csr

Når du kører kommandoen ovenfor for at oprette en CSR-fil, bliver du bedt om at besvare følgende spørgsmål ... udfyld den, og du skal være god.

Du er ved at blive bedt om at indtaste oplysninger, der vil blive indarbejdet i din certifikatanmodning. Hvad du er ved at indtaste er det, der kaldes et Distinguished Name eller en DN. Der er ganske mange felter, men du kan lade nogle være tomme. For nogle felter vil der være en standardværdi. Hvis du indtaster '.', Vil feltet blive tomt. ----- Landnavn (kode med 2 bogstaver) [AU]: Navn på US-stat eller provins (fuldt navn) [Nogle stater]: Minnesota Navn på lokalitet (f.eks. By) []: Brooklyn-organisationsnavn (f.eks. Firma) [Internet Widgits Pty Ltd]: Navn på min blogside Organisationsenhed (fx sektion) []: SSL-enhed Almindeligt navn (f.eks. Server FQDN eller DIT navn) []: myblogexample.com E-mail-adresse []: Indtast følgende 'ekstra 'attributter, der skal sendes med din certifikatanmodning En adgangskode til udfordring []: TYP IKKE PASSORD HER, FORLAD tomt Et valgfrit firmanavn []: 

Kør derefter kommandoerne nedenfor for at generere et certifikat, der er gyldigt i 1 år eller 365 dage. Du kan øge den dato, den udløber, som du ønsker.

sudo openssl x509 -req-dage 365 -in server.csr -signkey server.key -out server.crt

Endelig kør de sidste kommandoer nedenfor, så du ikke altid bliver bedt om, hver gang du genstarter webserveren. Du bliver bedt om at skrive serverens private nøgle, skrive den.

sudo cp server.key server.key.orig sudo openssl rsa -in server.key.orig -out server.key

Trin 3: Installer certifikatet

Det sidste trin i processen er at tilføje certifikatet til Nginxs konfiguration, så det serverer sider via HTTPS. Find eksemplerne på nedenstående konfigurationer til implementering på dine egne servere. Der er to vigtige filer, vi bruger fra / etc / nginx / ssl vejviser. De er det server.key og server.crt.

Åbn din Nginx-konfigurationsfil til standardwebstedet, og foretag følgende fremhævede ændringer:

server #listen 80 default_server; #listen [::]: 80 default_server; # SSL-konfiguration # lyt 443 ssl default_server; lyt [::]: 443 ssl default_server; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:! aNULL:! MD5 eller HIGH:! aNULL:! MD5:! 3DES"; ssl_prefer_server_ciphers on; # # Bemærk: Du skal deaktivere gzip for SSL-trafik. # Se: https://bugs.debian.org/773332 # # Læs op på ssl_ciphers for at sikre en sikker konfiguration. # Se: https://bugs.debian.org/765782 # # Selvsignerede certs genereret af ssl-cert-pakken # Brug dem ikke i en produktionsserver! # # inkluderer uddrag / snakeoil.conf; rod / var / www / html; # Føj index.php til listen, hvis du bruger PHP-indeks index.html index.htm index.nginx-debian.html; server navn _; placering / # Forsøg først at tjene anmodning som fil, derefter # som bibliotek, og fald derefter tilbage til at vise en 404. try_files $ uri $ uri / = 404;  # send PHP-scripts til FastCGI-server, der lytter på 127.0.0.1:9000 # #location ~ \ .php $ # inkluderer uddrag / fastcgi-php.conf; # # # Med php7.0-cgi alene: # fastcgi_pass 127.0.0.1:9000; # # Med php7.0-fpm: # fastcgi_pass unix: /run/php/php7.0-fpm.sock; # # nægter adgang til .htaccess-filer, hvis Apache's dokumentrod # stemmer overens med nginx's ene # #placering ~ /\.ht # nægter alt; # 

Dette er de grundlæggende indstillinger, der får dig i gang. Når du har foretaget ovenstående ændringer, skal du køre kommandoerne nedenfor for at teste, om konfigurationen er god.

sudo nginx -t

Hvis alt er godt, skal du genstarte Nginx ved at køre nedenstående kommandoer.

Dernæst skal du søge på serverens værtsnavn eller IP-adresse via HTTPS (https: // localhost) .

Du kan 301 omdirigere al trafik via HTTPS ved at tilføje blokken nedenfor nederst i konfigurationsfilen.

server lyt 80; servernavn localhost; returner 301 https: // localhost $ request_uri;  

Sådan konfigurerer du Nginx med SSL / TLS-certifikat. Selvom vi bruger selvsignerede certifikater, skal det også fungere med pålidelige certifikater fra betroet CA.

god fornøjelse!




Endnu ingen kommentarer

En samling nyttige oplysninger om Linux-operativsystemet og nye teknologier
Friske artikler, praktiske tip, detaljerede anmeldelser og guider. Føl dig hjemme i Linux-operativsystemets verden