Nginx

Nginx SSL-installatie in Linux

Nginx SSL-installatie in Linux

SSL (staat voor secure socket layer) is een webprotocol dat het verkeer tussen server en client veilig maakt door het te versleutelen. Server en clients verzenden het verkeer veilig zonder het risico dat communicatie door derden wordt geïnterpreteerd. Het helpt de klant ook om de identiteit te verifiëren van de website waarmee ze communiceren.

In dit bericht zullen we beschrijven hoe je SSL instelt voor Nginx. We zullen de procedure demonstreren met behulp van het zelfondertekende certificaat. Een zelfondertekend certificaat versleutelt alleen de verbinding, maar valideert niet de identiteit van uw server. Daarom mag het alleen worden gebruikt voor testomgevingen of voor interne LAN-services. Voor de productieomgeving is het beter om de certificaten te gebruiken die zijn ondertekend door CA (certificeringsinstantie).

Vereisten

Voor deze functie moet je aan de volgende vereisten voldoen:

De procedure die hier wordt uitgelegd, is uitgevoerd op: Debian 10 (Buster) machine.

Stap 1: Een zelfondertekend certificaat genereren

Onze eerste stap is het genereren van een zelfondertekend certificaat. Geef de onderstaande opdracht in Terminal om CSR (Certificate Signing Request) en een sleutel te genereren:

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

U wordt gevraagd om wat informatie op te geven, zoals uw landnaam, staat, plaats, algemene naam (uw domeinnaam of IP-adres) en e-mailadres.

In de bovenstaande opdracht maakt OpenSSL de volgende twee bestanden:

Maak nu de dhparam.pem-bestand met behulp van de onderstaande opdracht:

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

Stap 2: Nginx configureren om SSL te gebruiken

In de vorige stap hebben we de CSR en de sleutel. In deze stap zullen we de Nginx configureren om SSL te gebruiken. Hiervoor zullen we een configuratiefragment maken en informatie toevoegen over onze SSL-certificaatbestanden en sleutellocaties.

Voer de onderstaande opdracht uit in Terminal om een ​​nieuw configuratiefragment te maken zelfondertekend.conf bestand in de /etc/nginx/fragmenten.

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

Voeg in het bestand de volgende regels toe:

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

De ssl_certificaat ingesteld op zelfondertekend-nginx.crt (certificaatbestand) terwijl de ssl_certificate_key ingesteld op zelfondertekend-nginx.sleutel (sleutelbestand).

Bewaar en sluit de zelfondertekend.conf het dossier.

Nu gaan we een ander fragmentbestand maken ssl-params.conf en configureer enkele basis SSL-instellingen. Geef de onderstaande opdracht in Terminal om de . te bewerken ssl-params.conf het dossier:

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

Voeg de volgende inhoud toe aan het bestand:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers aan;
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-AES84;
ssl_ecdh_curve secp384r1;
ssl_session_timeout  10m;
ssl_session_cache gedeeld:SSL:10m;
ssl_session_tickets uit;
# ssl_nieten aan;
# ssl_stapling_verify aan;
oplosser 8.8.8.8 8.8.4.4 geldig=300s;
resolver_timeout 5s;
add_header X-Frame-Opties WEIGEREN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Bescherming "1; mode=blok";

Omdat we geen CA-ondertekend certificaat gebruiken, hebben we SSL-nieten uitgeschakeld. Als u een door een CA ondertekend certificaat gebruikt, verwijdert u de opmerkingen bij de ssl_nietling binnenkomst.

Stap 3: De Nginx configureren om SSL te gebruiken

Nu zullen we het Nginx-serverblokconfiguratiebestand openen om enkele configuraties te maken.  In deze stap gaan we ervan uit dat u het serverblok al hebt ingesteld, dat er ongeveer zo uitziet:

server
luister 80;
luister [::]:80;
root /var/www/test.org/html;
indexindex.html-index.htm-index.nginx-debian.html;
servernaam test.org www.test.organisatie;
plaats /
try_files $uri $uri/ =404;

Gebruik de onderstaande opdracht om het configuratiebestand van het Nginx-serverblok te openen:

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

Wijzig nu de bestaande server blok om het er als volgt uit te laten zien:

server
luister 443 ssl;
luister [::]:443 ssl;
inclusief fragmenten/zelfondertekend.conf;
include snippets/ssl-params.conf;
root /var/www/test.org/html;
indexindex.html-index.htm-index.nginx-debian.html;
servernaam test.org www.test.organisatie;

In de bovenstaande configuraties hebben we ook de SSL-fragmenten toegevoegd zelfondertekend.conf en ssl-params.conf die we eerder hebben geconfigureerd.

Voeg vervolgens a . toe tweede server blok.

server
luister 80;
luister [::]:80;
servernaam test.org www.test.organisatie;
retourneer 302 https://$server_name$request_uri;

In de bovenstaande configuratie:, retour 302 stuurt de HTTP om naar HTTPS.

Opmerking: Zorg ervoor dat u de test vervangt.org met uw eigen domeinnaam. Sla nu het bestand op en sluit het.

Stap 4: SSL-verkeer via firewall toestaan

Als een firewall op uw systeem is ingeschakeld, moet u SSL-verkeer erdoorheen toestaan.  Nginx biedt je drie verschillende profielen met ufw. Je kunt ze bekijken met behulp van de onderstaande opdracht in Terminal:

$ sudo ufw app-lijst

U ziet de volgende uitvoer met drie profielen voor het Nginx-verkeer:.

U moet het profiel "Nginx Full" in de firewall toestaan. Gebruik hiervoor het onderstaande commando:

$ sudo ufw 'Nginx Full' toestaan

Gebruik de onderstaande opdracht om te controleren of het profiel is toegestaan ​​in de firewall:

$ sudo ufw-status

Stap 5: Test het NGINX-configuratiebestand

Test nu het Nginx-configuratiebestand met behulp van de onderstaande opdracht in Terminal:

$ sudo nginx -t

U zou de onderstaande uitvoer moeten zien:.


Maak nu de symbolische koppeling tussen beschikbare sites en ingeschakelde sites:

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

Start vervolgens de Nginx-service opnieuw om de configuratiewijzigingen toe te passen. Gebruik hiervoor de onderstaande opdracht:

$ sudo systemctl herstart nginx

Stap 6: SSL testen

Om nu de SSL te testen, navigeert u naar het volgende adres:

https://domein-of-IP-adres

Omdat we het zelfondertekende certificaat hebben ingesteld, zien we daarom een ​​waarschuwing dat de verbinding niet veilig is. De volgende pagina verschijnt bij gebruik van de Mozilla Firefox-browser:.

Klik op de Geavanceerd knop.

Klik Voeg uitzondering toe.

Dan klikken Beveiligingsuitzondering bevestigen.

Nu ziet u uw HTTPS-site maar met een waarschuwingsbord (slot met een geel waarschuwingsbord) over de beveiliging van uw website.

Controleer ook of de omleiding correct werkt door uw domein of IP-adres te openen met http using.

http://domein-of-IP-adres

Als uw site nu automatisch omleidt naar HTTPS, betekent dit dat de omleiding correct werkte. Om de omleiding permanent te configureren, bewerkt u het configuratiebestand van het serverblok met de onderstaande opdracht in Terminal:

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

Verander nu het rendement 302 terugbrengen 301 in het bestand en sla het op en sluit het.

Zo kunt u SSL voor Nginx instellen in het Debian 10-systeem. We hebben het zelfondertekende certificaat opgesteld voor demonstratie. Zit je in een productieomgeving, ga dan altijd voor een CA certificaat.

Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...
Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...