Nginx

Nginx SSL-installation i Linux

Nginx SSL-installation i Linux

SSL (står för secure socket layer) är ett webbprotokoll som gör trafiken mellan server och klient säker genom att kryptera den. Server och klienter överför trafiken säkert utan risk för att kommunikation tolkas av tredje part. Det hjälper också klienten att verifiera identiteten på webbplatsen de kommunicerar med.

I det här inlägget kommer vi att beskriva hur du ställer in SSL för Nginx. Vi kommer att demonstrera proceduren med det självsignerade certifikatet. Ett självsignerat certifikat krypterar bara anslutningen men validerar inte din servers identitet. Därför bör den endast användas för testmiljöer eller för interna LAN-tjänster. För produktionsmiljön är det bättre att använda certifikaten signerade av CA (certifikatutfärdare).

Förutsättningar

För det här inlägget bör du ha följande förutsättningar:

Proceduren som förklaras här har utförts den Debian 10 (Buster) maskin.

Steg 1: Skapa ett självsignerat certifikat

Vårt första steg är att generera ett självsignerat certifikat. Utfärda kommandot nedan i Terminal för att generera CSR (Certificate Signing Request) och en nyckel:

$ sudo openssl-req -x509 -noder -dagar 365 -nyckel rsa: 2048 -keyout / etc / ssl / privat / egenhändig-nginx.key -out / etc / ssl / certs / selfsigned-nginx.crt

Du kommer att uppmanas att tillhandahålla viss information som ditt landsnamn, stat, ort, vanliga namn (ditt domännamn eller IP-adress) och e-postadress.

I kommandot ovan skapar OpenSSL följande två filer:

Skapa nu dhparam.pem-fil med hjälp av kommandot nedan:

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

Steg 2: Konfigurera Nginx för att använda SSL

I föregående steg har vi skapat CSR och nyckeln. Nu i det här steget konfigurerar vi Nginx för att använda SSL. För detta skapar vi ett konfigurationsavsnitt och lägger till information om våra SSL-certifikatfiler och nyckelplatser.

Utfärda kommandot nedan i Terminal för att skapa ett nytt konfigurationsavsnitt självsignerad.conf-fil i / etc / nginx / utdrag.

$ sudo nano / etc / nginx / utdrag / självsignerad.konf

Lägg till följande rader i filen:

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

De ssl_certificate är satt till självsignad-nginx.crt (certifikatfil) medan ssl_certificate_key är satt till självsignad-nginx.nyckel- (nyckelfil).

Spara och stäng självsignerad.konf fil.

Nu skapar vi en ny kodfil ssl-params.konf och konfigurera några grundläggande SSL-inställningar. Utfärda kommandot nedan i Terminal för att redigera ssl-params.konf fil:

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

Lägg till följande innehåll 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 delad: SSL: 10m;
ssl_session_tickets off;
# ssl_stapling på;
# ssl_stapling_verify på;
resolver 8.8.8.8 8.8.4.4 giltiga = 300s;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-skydd "1; mode = block";

Eftersom vi inte använder ett CA-signerat certifikat har vi därför inaktiverat SSL-häftning. Om du använder ett CA-signerat certifikat avmarkerar du ssl_stapling inträde.

Steg 3: Konfigurera Nginx för att använda SSL

Nu öppnar vi konfigurationsfilen för Nginx-serverblock för att göra några konfigurationer.  I det här steget antar vi att du redan har konfigurerat serverblocket, vilket kommer att likna detta:

server
lyssna 80;
lyssna [::]: 80;
root / var / www / test.org / html;
indexindex.html-index.htm-index.nginx-debian.html;
server_name test.org www.testa.org;
plats /
try_files $ uri $ uri / = 404;

För att öppna konfigurationsfilen för Nginx-serverblock, använd följande kommando:

$ sudo nano / etc / nginx / sites-available / test.org

Ändra nu det befintliga server blockera så att det ser ut så här:

server
lyssna 443 ssl;
lyssna [::]: 443 ssl;
inkluderar utdrag / självsignerad.conf;
inkluderar utdrag / ssl-params.conf;
root / var / www / test.org / html;
indexindex.html-index.htm-index.nginx-debian.html;
server_name test.org www.testa.org;

I ovanstående konfigurationer har vi också lagt till SSL-kodavsnitt självsignerad.konf och ssl-params.konf som vi har konfigurerat tidigare.

Lägg sedan till en andra servern blockera.

server
lyssna 80;
lyssna [::]: 80;
server_name test.org www.testa.org;
returnera 302 https: // $ server_name $ request_uri;

I ovanstående konfiguration, retur 302 omdirigerar HTTP till HTTPS.

Notera: Se till att byta ut testet.org med ditt eget domännamn. Spara och stäng filen nu.

Steg 4: Tillåt SSL-trafik genom brandväggen

Om en brandvägg är aktiverad på ditt system måste du tillåta SSL-trafik genom den.  Nginx ger dig tre olika profiler med ufw. Du kan visa dem med kommandot nedan i Terminal:

$ sudo ufw applista

Du ser följande utdata med tre profiler för Nginx-trafiken.

Du måste tillåta profilen "Nginx Full" i brandväggen. För att göra det, använd kommandot nedan:

$ sudo ufw tillåter 'Nginx Full'

För att verifiera om profilen har tillåtits i brandväggen, använd följande kommando:

$ sudo ufw-status

Steg 5: Testa NGINX-konfigurationsfilen

Testa nu Nginx-konfigurationsfilen med kommandot nedan i Terminal:

$ sudo nginx -t

Du borde se utdata nedan.


Skapa nu den symboliska länken mellan webbplatser-tillgängliga och webbplatser-aktiverade:

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

Starta sedan om Nginx-tjänsten för att tillämpa konfigurationsändringarna. Använd kommandot nedan för att göra det:

$ sudo systemctl starta om nginx

Steg 6: Testa SSL

Nu för att testa SSL, navigera till följande adress:

https: // domän-eller-IP-adress

Eftersom vi har konfigurerat det självsignerade certifikatet ser vi därför en varning om att anslutningen inte är säker. Följande sida visas när du använder webbläsaren Mozilla Firefox.

Klicka på Avancerad knapp.

Klick Lägg till undantag.

Klicka sedan Bekräfta säkerhetsundantag.

Nu kommer du att se din HTTPS-webbplats men med ett varningsskylt (lås med ett gult varningsskylt) om säkerheten på din webbplats.

Kontrollera också om omdirigeringen fungerar korrekt genom att komma åt din domän eller IP-adress med hjälp av http.

http: // domän-eller-IP-adress

Nu, om din webbplats omdirigerar automatiskt till HTTPS, betyder det att omdirigering fungerade korrekt. Om du vill konfigurera omdirigeringen permanent redigerar du konfigurationsfilen för serverblocket med kommandot nedan i Terminal:

$ sudo nano / etc / nginx / sites-available / test.org

Ändra nu avkastningen 302 att återvända 301 i filen och spara och stäng den.

Det är så du kan ställa in SSL för Nginx i Debian 10-systemet. Vi har ställt in det självsignerade certifikatet för demonstration. Om du befinner dig i en produktionsmiljö ska du alltid välja ett CA-certifikat.

OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...