Kaip įjungti TLS 1.3 „Nginx“ sistemoje „Debian 9“.

Įvadas

TLS 1.3 yra Transport Layer Security (TLS) protokolo versija, paskelbta 2018 m. kaip siūlomas standartas RFC 8446 . Jis siūlo saugumo ir našumo patobulinimus, palyginti su jo pirmtakais.

Šiame vadove paaiškinama, kaip įjungti TLS 1.3 naudojant Nginx žiniatinklio serverį Debian 9.

Reikalavimai

  • Nginx versija 1.13.0ar naujesnė.
  • OpenSSL versija 1.1.1ar naujesnė.
  • „Vultr Cloud Compute“ (VC2) egzempliorius, kuriame veikia „Debian 9 x64“ (ištemptas).
  • Galiojantis domeno vardas ir tinkamai sukonfigūruotas A/ AAAA/ CNAMEDNS įrašus domeno.
  • Galiojantis TLS sertifikatas. Mes gausime vieną iš Let's Encrypt.

Prieš tau pradedant

Patikrinkite Debian versiją.

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

Įsitikinkite, kad jūsų sistema yra atnaujinta.

apt update && apt upgrade -y

Įdiekite reikiamus paketus.

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

Sukurkite naują ne root vartotojo paskyrą su sudoprieiga ir perjunkite į ją.

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

PASTABA: pakeiskite johndoesavo vartotojo vardu.

Nustatykite laiko juostą.

sudo dpkg-reconfigure tzdata

Įdiekite Acme.sh klientą ir gaukite TLS sertifikatą iš Let's Encrypt

Atsisiųskite ir įdiekite 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

Patikrinkite versiją.

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

Gaukite savo domeno RSA ir ECDSA sertifikatus.

# 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

PASTABA: pakeiskite example.comsavo domeno pavadinimu.

Paleidus ankstesnes komandas, jūsų sertifikatai ir raktai pasiekiami šiose vietose:

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

Sukurkite Nginx iš šaltinio

„Nginx“ pridėjo TLS 1.3 palaikymą 1.13.0 versijoje. Daugumoje „Linux“ platinimų, įskaitant „Debian 9“, „Nginx“ sukurta naudojant senesnę „OpenSSL“ versiją, kuri nepalaiko TLS 1.3. Todėl mums reikia savo pasirinktinio Nginx versijos, susietos su OpenSSL 1.1.1 leidimu, kuris apima TLS 1.3 palaikymą.

Atsisiųskite naujausią „Nginx“ šaltinio kodo versiją ir išskleiskite ją.

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

Atsisiųskite OpenSSL 1.1.1c šaltinio kodą ir išskleiskite jį.

# 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

Ištrinkite visus .tar.gzfailus, nes jie nebereikalingi.

rm -rf *.tar.gz

Įveskite „Nginx“ šaltinio katalogą.

cd ~/nginx-1.17.0

Sukonfigūruokite, sukompiliuokite ir įdiekite „Nginx“. Paprastumo dėlei sukompiliuosime tik esminius modulius, kurių reikia, kad TLS 1.3 veiktų. Jei jums reikia visos „Nginx“ versijos, galite perskaityti šį „ Vultr“ vadovą apie „Nginx“ kompiliavimą.

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

Sukurkite „Nginx“ sistemos grupę ir vartotoją.

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

Simbolinė nuoroda /usr/lib/nginx/modulesį /etc/nginx/modules. Pastaroji yra standartinė Nginx modulių vieta.

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

Sukurkite Nginx talpyklos katalogus ir nustatykite tinkamus leidimus.

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

Patikrinkite Nginx versiją.

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 . . .
# . . .

Sukurkite Nginx systemd vieneto failą.

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

Užpildykite failą su tokia konfigūracija.

[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

Paleiskite ir įgalinkite „Nginx“.

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

Sukurti conf.d, sites-availableir sites-enabledkatalogų /etc/nginx.

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

Vykdykite sudo vim /etc/nginx/nginx.confir pridėkite šias dvi direktyvas prie failo pabaigos, prieš pat uždarymo }.

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

Išsaugokite failą ir išeikite su :+ W+ Q.

Sukonfigūruokite Nginx TLS 1.3

Dabar, kai sėkmingai sukūrėme Nginx, esame pasirengę jį sukonfigūruoti, kad pradėtume naudoti TLS 1.3 savo serveryje.

Paleiskite sudo vim /etc/nginx/conf.d/example.com.confir užpildykite failą tokia konfigūracija.

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;
}

Išsaugokite failą ir išeikite su :+ W+ Q.

Atkreipkite dėmesį į naują direktyvos TLSv1.3parametrą ssl_protocols. Šis parametras būtinas norint įjungti TLS 1.3.

Patikrinkite konfigūraciją.

sudo nginx -t

Iš naujo įkelti Nginx.

sudo systemctl reload nginx.service

Norėdami patikrinti TLS 1.3, galite naudoti naršyklės kūrėjo įrankius arba SSL laboratorijų paslaugą. Toliau pateiktose ekrano kopijose rodomas „Chrome“ saugos skirtukas, nurodantis, kad TLS 1.3 veikia.

Kaip įjungti TLS 1.3 „Nginx“ sistemoje „Debian 9“.

Kaip įjungti TLS 1.3 „Nginx“ sistemoje „Debian 9“.

Sveikiname! Sėkmingai įjungėte TLS 1.3 savo Debian 9 serveryje.

Palikti komentarą

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį