Yadda ake Enable TLS 1.3 a cikin Apache da Nginx


TLS 1.3 shine sabon sigar yarjejeniya ta Layer Security Layer Security (TLS) kuma ya dogara ne da ƙayyadaddun bayanai na 1.2 tare da daidaitattun IETF: RFC 8446. Yana bayar da tsaro mai ƙarfi da haɓaka ingantaccen aiki akan magabata.

A cikin wannan labarin, za mu nuna muku jagora mataki-mataki don samun ingantaccen takaddar TLS kuma ba da damar sabuwar yarjejeniya ta TLS 1.3 akan yankinku da aka shirya akan sabar yanar gizo ta Apache ko Nginx.

  • Siffar Apache 2.4.37 ko mafi girma.
  • Sigar Nginx 1.13.0 ko mafi girma.
  • OpenSSL sigar 1.1.1 ko mafi girma.
  • Sunan yanki mai aiki tare da ingantattun bayanan DNS.
  • Takaddun shaidar TLS mai inganci.

Sanya Takaddun TLS daga Bari mu Encrypt

Don samun kyautar SSL kyauta daga Bari mu Encrypt, kuna buƙatar shigar da abokin Acme.sh da kuma ƙananan fakitin da ake buƙata akan tsarin Linux kamar yadda aka nuna.

# apt install -y socat git  [On Debian/Ubuntu]
# dnf install -y socat git  [On RHEL/CentOS/Fedora]
# mkdir /etc/letsencrypt
# git clone https://github.com/Neilpang/acme.sh.git
# cd acme.sh 
# ./acme.sh --install --home /etc/letsencrypt --accountemail [email 
# cd ~
# /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256

NOTE: Sauya misali.com a cikin umarnin da ke sama tare da ainihin sunan yankin ku.

Da zarar kun sanya takaddun shaidar SSL, zaku iya ci gaba don kunna TLS 1.3 akan yankinku kamar yadda aka bayyana a ƙasa.

Kunna TLS 1.3 akan Nginx

Kamar yadda na ambata a cikin abubuwan da ke sama, wannan TLS 1.3 ana tallafawa yana farawa daga sigar Nginx 1.13. Idan kana amfani da tsohuwar tsohuwar hanyar Nginx, kana buƙatar fara haɓakawa zuwa sabuwar sigar.

# apt install nginx
# yum install nginx

Bincika sigar Nginx da OpenSSL wacce aka hada Nginx akanta (a tabbata cewa nau'in nginx aƙalla 1.14 ne kuma 1.ss na Openssl ne 1.1.1).

# nginx -V
nginx version: nginx/1.14.1
built by gcc 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC) 
built with OpenSSL 1.1.1 FIPS  11 Sep 2018
TLS SNI support enabled
....

Yanzu fara, kunna kuma tabbatar da shigarwar nginx.

# systemctl start nginx.service
# systemctl enable nginx.service
# systemctl status nginx.service

Yanzu buɗe nginx vhost sanyi /etc/nginx/conf.d/example.com.conf fayil ta amfani da editan da kuka fi so.

# vi /etc/nginx/conf.d/example.com.conf

kuma gano wuri ssl_protocols umarni kuma a haɗa TLSv1.3 a ƙarshen layin kamar yadda aka nuna a ƙasa

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;

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

A ƙarshe, tabbatar da daidaitawar kuma sake shigar da Nginx.

# nginx -t
# systemctl reload nginx.service

Enable TLS 1.3 a cikin Apache

Farawa daga Apache 2.4.37, zaku iya amfani da TLS 1.3. Idan kana amfani da tsohuwar sigar Apache, kana buƙatar fara haɓakawa zuwa sabuwar sigar.

# apt install apache2
# yum install httpd

Da zarar an girka, za a iya tabbatar da Apache da OpenSSL sigar da aka tattara Apache a kanta.

# httpd -V
# openssl version

Yanzu fara, kunna kuma tabbatar da shigarwar nginx.

-------------- On Debian/Ubuntu -------------- 
# systemctl start apache2.service
# systemctl enable apache2.service
# systemctl status apache2.service

-------------- On RHEL/CentOS/Fedora --------------
# systemctl start httpd.service
# systemctl enable httpd.service
# systemctl status httpd.service

Yanzu buɗe Apache mai kwalliyar kwalliyar fayil ta amfani da editan da kuka fi so.

# vi /etc/httpd/conf.d/vhost.conf
OR
# vi /etc/apache2/apache2.conf

kuma gano wuri ssl_protocols umarni kuma a sanya TLSv1.3 a ƙarshen layin kamar yadda aka nuna a ƙasa.

<VirtualHost *:443>
SSLEngine On

# 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;
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

     ServerAdmin [email 
     ServerName www.example.com
     ServerAlias example.com
    #DocumentRoot /data/httpd/htdocs/example.com/
    DocumentRoot /data/httpd/htdocs/example_hueman/
  # Log file locations
  LogLevel warn
  ErrorLog  /var/log/httpd/example.com/httpserror.log
  CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example.com/httpsaccess.log.%Y-%m-%d 86400" combined
</VirtualHost>

A ƙarshe, tabbatar da daidaitawar kuma sake loda Apache.

-------------- On Debian/Ubuntu -------------- 
# apache2 -t
# systemctl reload apache2.service

-------------- On RHEL/CentOS/Fedora --------------
# httpd -t
# systemctl reload httpd.service

Tabbatar da Shafin yana Amfani da TLS 1.3

Da zarar kun daidaita ta hanyar sabar yanar gizo, za ku iya bincika cewa rukunin yanar gizonku yana musafiha a kan yarjejeniyar TLS 1.3 ta amfani da kayan aikin haɓaka burauzan Chrome akan fasalin Chrome 70 +.

Shi ke nan. Kun sami nasarar kunna yarjejeniya ta TLS 1.3 akan yankinku da aka shirya akan sabar yanar gizo na Apache ko Nginx. Idan kuna da wata tambaya game da wannan labarin, ku kyauta ku yi tambaya a cikin ɓangaren sharhin da ke ƙasa.