Kuidas lubada TLS 1.3 Nginxis Ubuntu 18.04 LTS-is

TLS 1.3 on transpordikihi turvalisuse (TLS) protokolli versioon, mis avaldati 2018. aastal RFC 8446 pakutud standardina . See pakub eelkäijatega võrreldes turvalisuse ja jõudluse täiustusi.

See juhend näitab, kuidas lubada TLS 1.3, kasutades Nginxi veebiserverit Ubuntu 18.04 LTS-is.

Nõuded

  • Nginxi versioon 1.13.0või uuem.
  • OpenSSL-i versioon 1.1.1või uuem.
  • Vultr Cloud Compute (VC2) eksemplar, milles töötab Ubuntu 18.04.
  • Kehtiv domeeninime ja õigesti konfigureeritud A/ AAAA/ CNAMEDNS kirjed teie domeeni.
  • Kehtiv TLS-sertifikaat. Saame selle Let's Encryptilt.

Enne alustamist

Kontrollige Ubuntu versiooni.

lsb_release -ds
# Ubuntu 18.04.1 LTS

Looge uus juurdepääsuga non-rootkasutajakonto sudoja lülituge sellele.

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

MÄRKUS. Asendage johndoeoma kasutajanimega.

Seadistage ajavöönd.

sudo dpkg-reconfigure tzdata

Veenduge, et teie süsteem on ajakohane.

sudo apt update && sudo apt upgrade -y

Installige build-essential, socatja gitpaketid.

sudo apt install -y build-essential socat git

Installige Acme.sh klient ja hankige Let's Encrypt TLS-sertifikaat

Laadige alla ja installige 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 your_email@example.com
cd ~
source ~/.bashrc

Kontrolli versiooni.

acme.sh --version
# v2.8.0

Hankige oma domeeni jaoks RSA ja ECDSA sertifikaadid.

# 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

MÄRKUS. Asendage example.comkäsud oma domeeninimega.

Pärast eelmiste käskude käivitamist on teie sertifikaadid ja võtmed juurdepääsetavad aadressil:

  • RSA jaoks: /etc/letsencrypt/example.comkataloog.
  • ECC/ECDSA jaoks: /etc/letsencrypt/example.com_ecckataloog.

Ehitage Nginx allikast

Nginx lisas versioonis 1.13.0 TLS 1.3 toe. Enamikus Linuxi distributsioonides, sealhulgas Ubuntu 18.04, on Nginx ehitatud vanema OpenSSL-i versiooniga, mis ei toeta TLS 1.3. Järelikult vajame oma kohandatud Nginxi ehitamist, mis on lingitud OpenSSL 1.1.1 väljalaskega, mis sisaldab TLS 1.3 tuge.

Laadige alla Nginxi lähtekoodi uusim põhiversioon ja eraldage see.

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

Laadige alla OpenSSL 1.1.1 lähtekood ja eraldage see.

# 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

Kustutage kõik .tar.gzfailid, kuna neid pole enam vaja.

rm -rf *.tar.gz

Sisestage Nginxi lähtekataloog.

cd ~/nginx-1.15.5

Nginxi konfigureerimine, kompileerimine ja installimine. Lihtsuse huvides koostame ainult hädavajalikud moodulid, mis on vajalikud TLS 1.3 töötamiseks. Kui vajate täielikku Nginxi konstruktsiooni, saate lugeda seda Vultri juhendit Nginxi koostamise kohta.

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

Looge Nginxi süsteemirühm ja kasutaja.

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

Symlinki /usr/lib/nginx/moduleset /etc/nginx/moduleskataloogis. etc/nginx/moduleson standardne koht Nginxi moodulitele.

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

Looge Nginxi vahemälu kataloogid ja määrake õiged load.

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

Kontrollige Nginxi versiooni.

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

Looge Nginxi systemd-üksuse fail.

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

Täitke fail järgmise konfiguratsiooniga.

[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

Käivitage ja lubage Nginx.

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

Loo conf.d, sites-availableja sites-enabledkataloogid /etc/nginxkataloogist.

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

Käivitage sudo vim /etc/nginx/nginx.confja lisage kaks järgmist käsku faili lõppu, vahetult enne sulgemist }.

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

Salvestage fail ja väljuge klahviga :+ W+ Q.

Nginxi konfigureerimine TLS 1.3 jaoks

Nüüd, kui oleme Nginxi edukalt üles ehitanud, oleme valmis selle konfigureerima, et alustada oma serveris TLS 1.3 kasutamist.

Käivitage sudo vim /etc/nginx/conf.d/example.com.confja sisestage fail järgmise konfiguratsiooniga.

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

Salvestage fail ja väljuge klahviga :+ W+ Q.

Pange tähele direktiivi uut TLSv1.3parameetrit ssl_protocols. See parameeter on vajalik TLS 1.3 lubamiseks.

Kontrollige konfiguratsiooni.

sudo nginx -t

Laadige Nginx uuesti.

sudo systemctl reload nginx.service

TLS 1.3 kontrollimiseks võite kasutada brauseri arendaja tööriistu või SSL Labsi teenust. Allolevatel ekraanipiltidel on Chrome'i turvalisuse vahekaart, mis näitab, et TLS 1.3 töötab.

Kuidas lubada TLS 1.3 Nginxis Ubuntu 18.04 LTS-is

Kuidas lubada TLS 1.3 Nginxis Ubuntu 18.04 LTS-is

Palju õnne! Olete edukalt lubanud TLS 1.3 oma Ubuntu 18.04 veebiserveris.

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit