Ako povoliť TLS 1.3 v Nginx na Debiane 9

Úvod

TLS 1.3 je verzia protokolu Transport Layer Security (TLS) publikovaná v roku 2018 ako navrhovaný štandard v RFC 8446 . Oproti svojim predchodcom ponúka vylepšenia zabezpečenia a výkonu.

Táto príručka vysvetľuje, ako povoliť TLS 1.3 pomocou webového servera Nginx na Debiane 9.

Požiadavky

  • Verzia Nginx 1.13.0alebo vyššia.
  • Verzia OpenSSL 1.1.1alebo vyššia.
  • Inštancia Vultr Cloud Compute (VC2) so systémom Debian 9 x64 (stretch).
  • Platný názov domény a správne nakonfigurované A/ AAAA/ CNAMEDNS záznamy pre vašu doménu.
  • Platný certifikát TLS. Jeden dostaneme z Let's Encrypt.

Predtým ako začneš

Skontrolujte verziu Debianu.

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Uistite sa, že váš systém je aktuálny.

apt update && apt upgrade -y

Nainštalujte potrebné balíčky.

apt install -y git unzip curl sudo socat build-essential

Vytvorte nový používateľský účet typu non-root s sudoprístupom a prepnite sa naň.

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

POZNÁMKA: Nahraďte johndoesvojim užívateľským menom.

Nastavte časové pásmo.

sudo dpkg-reconfigure tzdata

Nainštalujte klienta Acme.sh a získajte certifikát TLS od spoločnosti Let's Encrypt

Sťahovať a inštalovať Acme.sh .

sudo mkdir /etc/letsencrypt
sudo git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc

Skontrolujte verziu.

/etc/letsencrypt/acme.sh --version
# v2.8.2

Získajte certifikáty RSA a ECDSA pre svoju doménu.

# 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

POZNÁMKA: Nahraďte example.comnázvom svojej domény.

Po spustení predchádzajúcich príkazov sú vaše certifikáty a kľúče prístupné na nasledujúcich miestach:

  • RSA :/etc/letsencrypt/example.com
  • ECC/ECDSA :/etc/letsencrypt/example.com_ecc

Zostavte Nginx zo zdroja

Nginx pridal podporu pre TLS 1.3 vo verzii 1.13.0. Vo väčšine distribúcií Linuxu, vrátane Debianu 9, je Nginx postavený na staršej verzii OpenSSL, ktorá nepodporuje TLS 1.3. V dôsledku toho potrebujeme vlastnú vlastnú zostavu Nginx prepojenú s vydaním OpenSSL 1.1.1, ktoré zahŕňa podporu pre TLS 1.3.

Stiahnite si najnovšiu hlavnú verziu zdrojového kódu Nginx a rozbaľte ho.

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

Stiahnite si zdrojový kód OpenSSL 1.1.1c a rozbaľte ho.

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

Vymažte všetky .tar.gzsúbory, pretože už nie sú potrebné.

rm -rf *.tar.gz

Zadajte zdrojový adresár Nginx.

cd ~/nginx-1.17.0

Nakonfigurujte, skompilujte a nainštalujte Nginx. Pre jednoduchosť zostavíme iba základné moduly, ktoré sú potrebné na fungovanie TLS 1.3. Ak potrebujete úplnú zostavu Nginx, môžete si prečítať túto príručku Vultr o kompilácii Nginx.

./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=Debian \
            --builddir=nginx-1.17.0 \
            --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.1c \
            --with-openssl-opt=no-nextprotoneg \
            --without-http_rewrite_module \
            --without-http_gzip_module

make
sudo make install

Vytvorte skupinu a používateľa systému Nginx.

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

Symbolický odkaz /usr/lib/nginx/modulesna /etc/nginx/modules. Ten je štandardným miestom pre moduly Nginx.

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

Vytvorte adresáre vyrovnávacej pamäte Nginx a nastavte správne povolenia.

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/*

Skontrolujte verziu Nginx.

sudo nginx -V

# nginx version: nginx/1.17.0 (Debian)
# built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
# built with OpenSSL 1.1.1c  28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx . . .
# . . .

Vytvorte súbor Nginx systemd unit.

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

Naplňte súbor s nasledujúcou konfiguráciou.

[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

Spustite a povoľte Nginx.

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

Vytvoriť conf.d, sites-availablea sites-enabledadresáre v /etc/nginx.

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

Spustite sudo vim /etc/nginx/nginx.confa pridajte nasledujúce dve direktívy na koniec súboru, tesne pred koncovku }.

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

Uložte súbor a ukončite s :+ W+ Q.

Nakonfigurujte Nginx pre TLS 1.3

Teraz, keď sme úspešne vytvorili Nginx, sme pripravení ho nakonfigurovať tak, aby začal používať TLS 1.3 na našom serveri.

Spustite sudo vim /etc/nginx/conf.d/example.com.confa naplňte súbor s nasledujúcou konfiguráciou.

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_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';
  ssl_prefer_server_ciphers on;
}

Uložte súbor a ukončite s :+ W+ Q.

Všimnite si nový TLSv1.3parameter ssl_protocolssmernice. Tento parameter je potrebný na povolenie TLS 1.3.

Skontrolujte konfiguráciu.

sudo nginx -t

Znova načítať Nginx.

sudo systemctl reload nginx.service

Na overenie TLS 1.3 môžete použiť nástroje pre vývojárov prehliadača alebo službu SSL Labs. Snímky obrazovky nižšie zobrazujú kartu zabezpečenia prehliadača Chrome, ktorá naznačuje, že TLS 1.3 funguje.

Ako povoliť TLS 1.3 v Nginx na Debiane 9

Ako povoliť TLS 1.3 v Nginx na Debiane 9

Gratulujem! Úspešne ste povolili TLS 1.3 na vašom serveri Debian 9.

Zanechať komentár

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac