Debian 9da Nginxte TLS 1.3 Nasıl Etkinleştirilir

Giriş

TLS 1.3, 2018'de RFC 8446'da önerilen bir standart olarak yayınlanan Taşıma Katmanı Güvenliği (TLS) protokolünün bir sürümüdür . Öncüllerine göre güvenlik ve performans iyileştirmeleri sunuyor.

Bu kılavuz, Debian 9'daki Nginx web sunucusunu kullanarak TLS 1.3'ün nasıl etkinleştirileceğini açıklar.

Gereksinimler

  • Nginx sürümü 1.13.0veya üstü.
  • OpenSSL sürümü 1.1.1veya üstü.
  • Debian 9 x64 (streç) çalıştıran Vultr Cloud Compute (VC2) örneği.
  • Geçerli bir alan adı ve alanınız için uygun şekilde yapılandırılmış A/ AAAA/ CNAMEDNS kayıtları.
  • Geçerli bir TLS sertifikası. Let's Encrypt'den bir tane alacağız.

Sen başlamadan önce

Debian sürümünü kontrol edin.

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

Sisteminizin güncel olduğundan emin olun.

apt update && apt upgrade -y

Gerekli paketleri kurun.

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

sudoErişimi olan yeni bir kök olmayan kullanıcı hesabı oluşturun ve bu hesaba geçin.

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

NOT: Kullanıcı adınızla değiştirin johndoe.

Saat dilimini ayarlayın.

sudo dpkg-reconfigure tzdata

Acme.sh istemcisini yükleyin ve Let's Encrypt'ten TLS sertifikası alın

Acme.sh dosyasını indirin ve yükleyin .

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 [email protected]
cd ~
source ~/.bashrc

Versiyonu kontrol et.

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

Alan adınız için RSA ve ECDSA sertifikaları alın.

# 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

NOT: Alan adınızla değiştirin example.com.

Önceki komutları çalıştırdıktan sonra, sertifikalarınıza ve anahtarlarınıza aşağıdaki konumlardan erişilebilir:

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

Kaynaktan Nginx Oluşturun

Nginx, 1.13.0 sürümünde TLS 1.3 desteği ekledi. Debian 9 dahil olmak üzere çoğu Linux dağıtımında Nginx, TLS 1.3'ü desteklemeyen eski OpenSSL sürümüyle oluşturulmuştur. Sonuç olarak, OpenSSL 1.1.1 sürümüne bağlı TLS 1.3 desteğini içeren kendi özel Nginx derlememize ihtiyacımız var.

Nginx kaynak kodunun en son ana sürümünü indirin ve çıkarın.

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

OpenSSL 1.1.1c kaynak kodunu indirin ve çıkarın.

# 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

.tar.gzArtık gerekmediği için tüm dosyaları silin .

rm -rf *.tar.gz

Nginx kaynak dizinini girin.

cd ~/nginx-1.17.0

Nginx'i yapılandırın, derleyin ve yükleyin. Kolaylık olması açısından, sadece TLS 1.3'ün çalışması için gerekli olan temel modülleri derleyeceğiz. Tam bir Nginx derlemesine ihtiyacınız varsa, Nginx derlemesi hakkında bu Vultr kılavuzunu okuyabilirsiniz .

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

Bir Nginx sistem grubu ve kullanıcısı oluşturun.

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

Simgesel /usr/lib/nginx/modulesiçin /etc/nginx/modules. İkincisi, Nginx modülleri için standart bir yerdir.

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

Nginx önbellek dizinleri oluşturun ve uygun izinleri ayarlayın.

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

Nginx sürümünü kontrol edin.

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

Bir Nginx systemd birim dosyası oluşturun.

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

Dosyayı aşağıdaki yapılandırmayla doldurun.

[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

Nginx'i başlatın ve etkinleştirin.

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

Oluşturun conf.d, sites-availableve sites-enabledde dizinleri /etc/nginx.

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

sudo vim /etc/nginx/nginx.confAşağıdaki iki yönergeyi çalıştırın ve kapanıştan hemen önce dosyanın sonuna ekleyin }.

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

Dosyayı kaydedin ve :+ W+ ile çıkın Q.

TLS 1.3 için Nginx'i Yapılandırma

Nginx'i başarıyla oluşturduğumuza göre, sunucumuzda TLS 1.3'ü kullanmaya başlaması için yapılandırmaya hazırız.

sudo vim /etc/nginx/conf.d/example.com.confAşağıdaki yapılandırma ile dosyayı çalıştırın ve doldurun.

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

Dosyayı kaydedin ve :+ W+ ile çıkın Q.

Direktifin yeni TLSv1.3parametresine dikkat edin ssl_protocols. Bu parametre TLS 1.3'ü etkinleştirmek için gereklidir.

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo systemctl reload nginx.service

TLS 1.3'ü doğrulamak için tarayıcı geliştirici araçlarını veya SSL Labs hizmetini kullanabilirsiniz. Aşağıdaki ekran görüntüleri Chrome'un TLS 1.3'ün çalıştığını gösteren güvenlik sekmesini göstermektedir.

Debian 9da Nginxte TLS 1.3 Nasıl Etkinleştirilir

Debian 9da Nginxte TLS 1.3 Nasıl Etkinleştirilir

Tebrikler! Debian 9 sunucunuzda TLS 1.3'ü başarıyla etkinleştirdiniz.



26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun