Ubuntu 18.04 LTSde Nginxte TLS 1.3ü Etkinleştirme

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, Ubuntu 18.04 LTS'deki Nginx web sunucusunu kullanarak TLS 1.3'ün nasıl etkinleştirileceğini gösterecektir.

Gereksinimler

  • Nginx sürümü 1.13.0veya üstü.
  • OpenSSL sürümü 1.1.1veya üstü.
  • Ubuntu 18.04 ç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

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

lsb_release -ds
# Ubuntu 18.04.1 LTS

Erişimi olan yeni bir non-rootkullanıcı hesabı oluşturun sudove 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

Sisteminizin güncel olduğundan emin olun.

sudo apt update && sudo apt upgrade -y

Yükleme build-essential, socatve gitpaketler.

sudo apt install -y build-essential socat git

Acme.sh istemcisini kurun ve Let's Encrypt'ten TLS sertifikası alın

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

sudo mkdir /etc/letsencrypt
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.

acme.sh --version
# v2.8.0

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: Komutları alan adınızla değiştirin example.com.

Önceki komutları çalıştırdıktan sonra sertifikalarınıza ve anahtarlarınıza şu adresten erişilebilir:

  • RSA için: /etc/letsencrypt/example.comdizin.
  • ECC / ECDSA için: /etc/letsencrypt/example.com_eccdizin.

Kaynaktan Nginx Oluşturun

Nginx, 1.13.0 sürümünde TLS 1.3 desteği ekledi. Ubuntu 18.04 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.15.5.tar.gz && tar zxvf nginx-1.15.5.tar.gz

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

# 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

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

rm -rf *.tar.gz

Nginx kaynak dizinini girin.

cd ~/nginx-1.15.5

Nginx'i yapılandırın, derleyin ve yükleyin. Basitlik adına, 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=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

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/modulesdizindeki. etc/nginx/modulesNginx 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.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 . . .
# . . .

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

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

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.

Ubuntu 18.04 LTSde Nginxte TLS 1.3ü Etkinleştirme

Ubuntu 18.04 LTSde Nginxte TLS 1.3ü Etkinleştirme

Tebrikler! Ubuntu 18.04 web sunucunuzda TLS 1.3'ü başarıyla etkinleştirdiniz.



Leave a Comment

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