Prezantimi
Kërkesat
Perpara se te fillosh
Instaloni klientin Acme.sh dhe merrni një certifikatë TLS nga Let's Encrypt
Ndërtoni Nginx nga Burimi
Konfiguro Nginx për TLS 1.3
Prezantimi
TLS 1.3 është një version i protokollit të Sigurisë së Shtresës së Transportit (TLS) i publikuar në 2018 si një standard i propozuar në RFC 8446 . Ai ofron përmirësime të sigurisë dhe performancës në krahasim me paraardhësit e tij.
Ky udhëzues shpjegon se si të aktivizoni TLS 1.3 duke përdorur serverin në internet Nginx në Debian 9.
Kërkesat
- Versioni Nginx
1.13.0ose më i madh.
- Versioni OpenSSL
1.1.1ose më i madh.
- Shembulli i Vultr Cloud Compute (VC2) që ekzekuton Debian 9 x64 (stretch).
- Një emër i vlefshëm domain dhe konfiguruar si duhet
A/ AAAA/ CNAMEtë dhënat DNS për domenin tuaj.
- Një certifikatë e vlefshme TLS. Ne do të marrim një nga Let's Encrypt.
Perpara se te fillosh
Kontrolloni versionin e Debian.
lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)
Sigurohuni që sistemi juaj të jetë i përditësuar.
apt update && apt upgrade -y
Instaloni paketat e nevojshme.
apt install -y git unzip curl sudo socat build-essential
Krijoni një llogari të re përdoruesi jo-root me sudoakses dhe kaloni në të.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
SHËNIM: Zëvendësojeni johndoeme emrin tuaj të përdoruesit.
Vendosni zonën kohore.
sudo dpkg-reconfigure tzdata
Instaloni klientin Acme.sh dhe merrni një certifikatë TLS nga Let's Encrypt
Shkarkoni dhe instaloni 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
Kontrolloni versionin.
/etc/letsencrypt/acme.sh --version
# v2.8.2
Merrni certifikatat RSA dhe ECDSA për domenin tuaj.
# 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
SHËNIM: Zëvendësoni example.comme emrin tuaj të domenit.
Pas ekzekutimit të komandave të mëparshme, certifikatat dhe çelësat tuaj janë të aksesueshëm në vendet e mëposhtme:
- RSA :
/etc/letsencrypt/example.com
- ECC/ECDSA :
/etc/letsencrypt/example.com_ecc
Ndërtoni Nginx nga Burimi
Nginx shtoi mbështetje për TLS 1.3 në versionin 1.13.0. Në shumicën e shpërndarjeve Linux, duke përfshirë Debian 9, Nginx është ndërtuar me versionin më të vjetër OpenSSL, i cili nuk mbështet TLS 1.3. Rrjedhimisht, ne kemi nevojë për ndërtimin tonë të personalizuar Nginx të lidhur me versionin OpenSSL 1.1.1, i cili përfshin mbështetje për TLS 1.3.
Shkarkoni versionin më të fundit kryesor të kodit burimor Nginx dhe nxirrni atë.
wget https://nginx.org/download/nginx-1.17.0.tar.gz && tar zxvf nginx-1.17.0.tar.gz
Shkarkoni kodin burimor OpenSSL 1.1.1c dhe nxirrni atë.
# 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
Fshini të gjithë .tar.gzskedarët, pasi nuk nevojiten më.
rm -rf *.tar.gz
Futni drejtorinë e burimit Nginx.
cd ~/nginx-1.17.0
Konfiguroni, përpiloni dhe instaloni Nginx. Për hir të thjeshtësisë, ne do të përpilojmë vetëm module thelbësore që kërkohen për funksionimin e TLS 1.3. Nëse keni nevojë për një ndërtim të plotë Nginx, mund të lexoni këtë udhëzues Vultr rreth përpilimit të 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
Krijoni një grup dhe përdorues të sistemit Nginx.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
Lidhja simbolike /usr/lib/nginx/modulesnë /etc/nginx/modules. Ky i fundit është një vend standard për modulet Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Krijoni drejtoritë e cache Nginx dhe vendosni lejet e duhura.
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/*
Kontrolloni versionin 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 . . .
# . . .
Krijo një skedar Nginx systemd unit.
sudo vim /etc/systemd/system/nginx.service
Plotësoni skedarin me konfigurimin e mëposhtëm.
[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
Filloni dhe aktivizoni Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Krijo conf.d, sites-availabledhe sites-enableddirectories në /etc/nginx.
sudo mkdir /etc/nginx/{conf.d,sites-available,sites-enabled}
Ekzekutoni sudo vim /etc/nginx/nginx.confdhe shtoni dy direktivat e mëposhtme në fund të skedarit, pak para mbylljes }.
. . .
. . .
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}
Ruani skedarin dhe dilni me :+ W+ Q.
Tani që kemi ndërtuar me sukses Nginx, jemi gati ta konfigurojmë për të filluar përdorimin e TLS 1.3 në serverin tonë.
Ekzekutoni sudo vim /etc/nginx/conf.d/example.com.confdhe plotësoni skedarin me konfigurimin e mëposhtëm.
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;
}
Ruani skedarin dhe dilni me :+ W+ Q.
Vini re TLSv1.3parametrin e ri të ssl_protocolsdirektivës. Ky parametër është i nevojshëm për të aktivizuar TLS 1.3.
Kontrolloni konfigurimin.
sudo nginx -t
Rifresko Nginx.
sudo systemctl reload nginx.service
Për të verifikuar TLS 1.3, mund të përdorni mjetet e zhvillimit të shfletuesit ose shërbimin SSL Labs. Pamjet e ekranit më poshtë tregojnë skedën e sigurisë së Chrome që tregon se TLS 1.3 po funksionon.

![Si të aktivizoni TLS 1.3 në Nginx në Debian 9 Si të aktivizoni TLS 1.3 në Nginx në Debian 9]()
urime! Ju keni aktivizuar me sukses TLS 1.3 në serverin tuaj Debian 9.