Hoe TLS 1.3 in Nginx op Ubuntu 18.04 LTS in te schakelen

TLS 1.3 is een versie van het Transport Layer Security (TLS) -protocol dat in 2018 werd gepubliceerd als voorgestelde standaard in RFC 8446 . Het biedt beveiliging en prestatieverbeteringen ten opzichte van zijn voorgangers.

Deze gids laat zien hoe u TLS 1.3 kunt inschakelen met de Nginx-webserver op Ubuntu 18.04 LTS.

Vereisten

  • Nginx-versie 1.13.0of hoger.
  • OpenSSL-versie 1.1.1of hoger.
  • Vultr Cloud Compute (VC2) -instantie met Ubuntu 18.04.
  • Een geldige domeinnaam en correct geconfigureerde A/ AAAA/ CNAMEDNS-records voor uw domein.
  • Een geldig TLS-certificaat. We zullen er een krijgen van Let's Encrypt.

Voordat je begint

Controleer de Ubuntu-versie.

lsb_release -ds
# Ubuntu 18.04.1 LTS

Maak een nieuw non-rootgebruikersaccount aan met sudotoegang en schakel ernaar.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

OPMERKING: vervang johndoedoor uw gebruikersnaam.

Stel de tijdzone in.

sudo dpkg-reconfigure tzdata

Zorg ervoor dat uw systeem up-to-date is.

sudo apt update && sudo apt upgrade -y

Installeren build-essential, socaten gitpakketten.

sudo apt install -y build-essential socat git

Installeer de Acme.sh-client en verkrijg het TLS-certificaat van Let's Encrypt

Download en installeer Acme.sh .

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

Controleer de versie.

acme.sh --version
# v2.8.0

Verkrijg RSA- en ECDSA-certificaten voor uw domein.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256

LET OP: Vervang example.comcommando's door uw domeinnaam.

Na het uitvoeren van de vorige opdrachten, zijn uw certificaten en sleutels toegankelijk op:

  • Voor RSA: /etc/letsencrypt/example.comdirectory.
  • Voor ECC / ECDSA: /etc/letsencrypt/example.com_eccdirectory.

Bouw Nginx vanuit de bron

Nginx heeft ondersteuning voor TLS 1.3 toegevoegd in versie 1.13.0. Op de meeste Linux-distributies, waaronder Ubuntu 18.04, is Nginx gebouwd met de oudere OpenSSL-versie, die TLS 1.3 niet ondersteunt. Daarom hebben we onze eigen aangepaste Nginx-build nodig die is gekoppeld aan de OpenSSL 1.1.1-release, inclusief ondersteuning voor TLS 1.3.

Download de nieuwste hoofdversie van de Nginx-broncode en pak deze uit.

wget https://nginx.org/download/nginx-1.15.5.tar.gz && tar zxvf nginx-1.15.5.tar.gz

Download de OpenSSL 1.1.1-broncode en pak deze uit.

# OpenSSL version 1.1.1
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz && tar xzvf openssl-1.1.1.tar.gz

Verwijder alle .tar.gzbestanden omdat ze niet meer nodig zijn.

rm -rf *.tar.gz

Voer de Nginx-bronmap in.

cd ~/nginx-1.15.5

Configureer, compileer en installeer Nginx. Omwille van de eenvoud zullen we alleen essentiële modules samenstellen die nodig zijn om TLS 1.3 te laten werken. Als je een volledige Nginx-build nodig hebt, kun je deze Vultr-handleiding over Nginx-compilatie lezen.

./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --modules-path=/usr/lib/nginx/modules \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --pid-path=/var/run/nginx.pid \
            --lock-path=/var/run/nginx.lock \
            --user=nginx \
            --group=nginx \
            --build=Ubuntu \
            --builddir=nginx-1.15.5 \
            --http-log-path=/var/log/nginx/access.log \
            --http-client-body-temp-path=/var/cache/nginx/client_temp \
            --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
            --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
            --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
            --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
            --with-compat \
            --with-http_ssl_module \
            --with-http_v2_module \
            --with-openssl=../openssl-1.1.1 \
            --with-openssl-opt=no-nextprotoneg \
            --without-http_rewrite_module \
            --without-http_gzip_module

make
sudo make install

Maak een Nginx-systeemgroep en gebruiker.

sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx

Symlink /usr/lib/nginx/modulesnaar /etc/nginx/modulesdirectory. etc/nginx/modulesis een standaardplaats voor Nginx-modules.

sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Maak Nginx-cachemappen en stel de juiste rechten in.

sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*

Controleer de Nginx-versie.

sudo nginx -V

# nginx version: nginx/1.15.5 (Ubuntu)
# built by gcc 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)
# built with OpenSSL 1.1.1  11 Sep 2018
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx . . .
# . . .

Maak een Nginx systemd unit bestand.

sudo vim /etc/systemd/system/nginx.service

Vul het bestand in met de volgende configuratie.

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Start en schakel Nginx in.

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Creëer conf.d, sites-availableen sites-enableddirectories in /etc/nginxdirectory.

sudo mkdir /etc/nginx/{conf.d,sites-available,sites-enabled}

Voer sudo vim /etc/nginx/nginx.confde volgende twee richtlijnen uit en voeg deze toe aan het einde van het bestand, net voor het sluiten }.

    . . .
    . . .
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}

Sla het bestand op en sluit af met :+ W+ Q.

Configureer Nginx voor TLS 1.3

Nu we Nginx met succes hebben gebouwd, zijn we klaar om het te configureren om TLS 1.3 op onze server te gaan gebruiken.

Voer sudo vim /etc/nginx/conf.d/example.com.confhet bestand uit en vul het in met de volgende configuratie.

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  ssl_protocols TLSv1.2 TLSv1.3;

  ssl_prefer_server_ciphers on;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
}

Sla het bestand op en sluit af met :+ W+ Q.

Let op de nieuwe TLSv1.3parameter van de ssl_protocolsrichtlijn. Deze parameter is nodig om TLS 1.3 in te schakelen.

Controleer de configuratie.

sudo nginx -t

Herlaad Nginx.

sudo systemctl reload nginx.service

Om TLS 1.3 te verifiëren, kunt u browserontwikkelingshulpmiddelen of SSL Labs-service gebruiken. De onderstaande schermafbeeldingen tonen het beveiligingstabblad van Chrome dat laat zien dat TLS 1.3 werkt.

Hoe TLS 1.3 in Nginx op Ubuntu 18.04 LTS in te schakelen

Hoe TLS 1.3 in Nginx op Ubuntu 18.04 LTS in te schakelen

Gefeliciteerd! U hebt TLS 1.3 met succes ingeschakeld op uw Ubuntu 18.04-webserver.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.