Otu esi eme TLS 1.3 na Apache na Nginx


TLS 1.3 bụ ụdị kachasị ọhụrụ nke usoro iwu nchekwa nchekwa Transport (TLS) yana dabere na nkọwapụta 1.2 dị ugbu a nwere ọkọlọtọ IETF kwesịrị ekwesị: RFC 8446. Ọ na-enye nchekwa siri ike yana nkwalite arụmọrụ dị elu karịa ndị bu ya ụzọ.

N'ime edemede a, anyị ga-egosi gị ntuziaka nzọụkwụ iji nweta asambodo TLS dị irè ma mee ka usoro ụdị TLS 1.3 kachasị ọhụrụ na ngalaba gị kwadoro na sava weebụ Apache ma ọ bụ Nginx.

  • Ụdị Apache 2.4.37 ma ọ bụ karịa.
  • ụdị Nginx 1.13.0 ma ọ bụ karịa.
  • Mepee ụdị SSL 1.1.1 ma ọ bụ karịa.
  • Aha ngalaba dị irè nwere ndekọ DNS ahaziri nke ọma.
  • Akwụkwọ TLS bara uru.

Wụnye Asambodo TLS site na Ka Anyị Encrypt

Iji nweta Asambodo SSL n'efu site na Let's Encrypt, ịkwesịrị ịwụnye onye ahịa Acme.sh yana ngwugwu ole na ole achọrọ na sistemụ Linux dị ka egosiri.

# 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

IHE: Dochie example.com n'iwu dị n'elu na aha ngalaba gị.

Ozugbo itinyere asambodo SSL, ị nwere ike ịga n'ihu iji mee ka TLS 1.3 na ngalaba gị dị ka akọwara n'okpuru.

Kwado TLS 1.3 na Nginx

Dịka m kwuru na ihe ndị a chọrọ n'elu, a na-akwado TLS 1.3 malite na ụdị Nginx 1.13. Ọ bụrụ na ị na-agba ụdị Nginx ochie, ị ga-ebu ụzọ kwalite gaa na ụdị ọhụrụ.

# apt install nginx
# yum install nginx

Lelee ụdị Nginx na ụdị OpenSSL nke chịkọtara Nginx megide ya (hụta na ụdị nginx dịkarịa ala 1.14 na openssl version 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
....

Ugbu a bido, mee ma nyochaa nginx nwụnye.

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

Ugbu a mepee nginx vhost nhazi /etc/nginx/conf.d/example.com.conf faịlụ site na iji nchịkọta akụkọ ọkacha mmasị gị.

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

wee chọta ntụziaka ssl_protocols wee tinye TLSv1.3 na njedebe nke ahịrị dị ka egosiri n'okpuru.

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

N'ikpeazụ, nyochaa nhazi ahụ wee bugharịa Nginx.

# nginx -t
# systemctl reload nginx.service

Kwado TLS 1.3 na Apache

Malite na Apache 2.4.37, ị nwere ike iji TLS 1.3. Ọ bụrụ na ị na-agba ụdị Apache ochie, ị ga-ebu ụzọ kwalite gaa na ụdị ọhụrụ.

# apt install apache2
# yum install httpd

Ozugbo arụnyere, ị nwere ike nyochaa Apache na ụdị OpenSSL nke achịkọtara Apache megide ya.

# httpd -V
# openssl version

Ugbu a bido, mee ma nyochaa nginx nwụnye.

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

Ugbu a mepee faịlụ nhazi nhazi nke Apache mebere site na iji nchịkọta akụkọ ọkacha mmasị gị.

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

wee chọta ntụziaka ssl_protocols wee tinye TLSv1.3 na ngwụcha ahịrị dị ka egosiri n'okpuru.

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

N'ikpeazụ, nyochaa nhazi ahụ wee bugharịa Apache.

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

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

Nyochaa saịtị na-eji TLS 1.3

Ozugbo ị haziela site na sava weebụ, ị nwere ike lelee na saịtị gị na-enyefe ụkpụrụ TLS 1.3 site na iji ngwa mmepe ihe nchọgharị chrome na ụdị Chrome 70+.

Ọ gwụla. Ị gbanyela ụkpụrụ TLS 1.3 nke ọma na ngalaba gị kwadoro na sava weebụ Apache ma ọ bụ Nginx. Ọ bụrụ na ị nwere ajụjụ ọ bụla gbasara akụkọ a, nweere onwe gị ịjụ na ngalaba nkọwa n'okpuru.