Apache ve Nginx'te TLS 1.3 Nasıl Etkinleştirilir?


TLS 1.3, Aktarım Katmanı Güvenliği (TLS) protokolünün en son sürümüdür ve uygun IETF standardına sahip mevcut 1.2 spesifikasyonlarını temel alır: RFC 8446. Öncekilere göre daha güçlü güvenlik ve daha yüksek performans iyileştirmeleri sağlar.

Bu makalede, geçerli bir TLS sertifikası almak ve Apache veya üzerinde barındırılan alanınızda en son TLS 1.3 sürüm protokolünü etkinleştirmek için size adım adım bir kılavuz göstereceğiz. Nginx web sunucuları.

Gereksinimler:

  • Apache sürümü 2.4.37 veya üstü.
  • Nginx sürüm 1.13.0 veya üzeri.
  • OpenSSL sürüm 1.1.1 veya üstü.
  • Doğru yapılandırılmış DNS kayıtlarına sahip geçerli bir alan adı.
  • Geçerli bir TLS sertifikası.

Let's Encrypt'ten TLS Sertifikası yükleyin

Let's Encrypt'ten ücretsiz bir SSL Sertifikası almak için, Acme.sh istemcisini ve ayrıca gösterildiği gibi Linux sistemine gerekli birkaç paketi yüklemeniz gerekir.


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

NOT: Yukarıdaki komutta example.com'u gerçek alan adınızla değiştirin.

SSL sertifikasını yükledikten sonra aşağıda açıklandığı gibi alan adınızda TLS 1.3'ü etkinleştirme işlemine devam edebilirsiniz.

Nginx'te TLS 1.3'ü etkinleştirin

Yukarıdaki gereksinimlerde de belirttiğim gibi TLS 1.3, Nginx 1.13 sürümünden itibaren desteklenmektedir. Eski Nginx sürümünü çalıştırıyorsanız öncelikle en son sürüme yükseltmeniz gerekir.


apt install nginx
yum install nginx

Nginx sürümünü ve Nginx'in derlendiği OpenSSL sürümünü kontrol edin (nginx sürümünün en az 1.14 olduğundan emin olun) Strong> ve openssl sürümü 1.1.1).


nginx -V
Örnek Çıktı

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

Şimdi nginx kurulumunu başlatın, etkinleştirin ve doğrulayın.


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

Şimdi favori düzenleyicinizi kullanarak nginx sankon yapılandırması /etc/nginx/conf.d/example.com.conf dosyasını açın.


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

ve ssl_protocols yönergesini bulun ve aşağıda gösterildiği gibi satırın sonuna TLSv1.3 ekleyin


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

Son olarak yapılandırmayı doğrulayın ve Nginx'i yeniden yükleyin.


nginx -t
systemctl reload nginx.service

Apache'de TLS 1.3'ü etkinleştirin

Apache 2.4.37'den itibaren TLS 1.3'ün avantajlarından yararlanabilirsiniz. Apache'in eski sürümünü çalıştırıyorsanız öncelikle en son sürüme yükseltme yapmanız gerekir.


apt install apache2
yum install httpd

Kurulduktan sonra Apache'yi ve Apache'nin derlendiği OpenSSL sürümünü doğrulayabilirsiniz.


httpd -V
openssl version

Şimdi nginx kurulumunu başlatın, etkinleştirin ve doğrulayın.


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

Şimdi favori düzenleyicinizi kullanarak Apache sanal ana bilgisayar yapılandırma dosyasını açın.


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

ve ssl_protocols yönergesini bulun ve aşağıda gösterildiği gibi TLSv1.3'ü satırın sonuna ekleyin.


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

Son olarak yapılandırmayı doğrulayın ve Apache'yi yeniden yükleyin.


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

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

Sitenin TLS 1.3 Kullandığını Doğrulayın

Bir web sunucusu aracılığıyla yapılandırma yaptıktan sonra, Chrome 70+ sürümünde Chrome tarayıcı geliştirme araçlarını kullanarak sitenizin TLS 1.3 protokolü üzerinden el sıkışıp sıkışmadığını kontrol edebilirsiniz.

Bu kadar. Apache veya Nginx web sunucularında barındırılan alanınızda TLS 1.3 protokolünü başarıyla etkinleştirdiniz. Bu makaleyle ilgili herhangi bir sorunuz varsa, aşağıdaki yorum bölümünde sormaya çekinmeyin.