GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mudah Mengaktifkan TLS 1.3 di Nginx di Ubuntu 20.04, 18.04, 16.04

Pada artikel sebelumnya, saya menjelaskan langkah-langkah kompilasi kode sumber Nginx dengan OpenSSL 1.1.1 untuk mengaktifkan protokol TLS 1.3 yang resmi dirilis pada Agustus 2018. Dalam tutorial ini, saya akan menunjukkan cara yang lebih sederhana untuk mengaktifkan TLS 1.3 di Ubuntu 20.04, 18.04 dan 16.04

TLS 1.3 Membawa Peningkatan Performa dan Keamanan

Dari segi kinerja, TLS 1.2 membutuhkan dua perjalanan pulang pergi untuk membuat koneksi HTTPS. Dengan TLS 1.3, hanya diperlukan satu perjalanan pulang pergi. TLS 1.3 juga mendukung mode nol perjalanan pulang pergi (sesi dimulai kembali 0-RTT), memungkinkan klien yang sebelumnya terhubung ke situs web Anda untuk mengirim permintaan HTTP pada pesan pertama ke server. Hal ini membuat perbedaan besar bagi pengguna di jaringan seluler atau di lokasi yang jauh.

Dalam hal keamanan, TLS 1.3 menghapus dukungan untuk cipher suites lama, yang bertanggung jawab atas eksploitasi seperti serangan ROBOT. Ini, tentu saja, adalah penjelasan yang terlalu disederhanakan. CloudFlare memiliki penjelasan rinci yang baik tentang TLS 1.3.

Persyaratan untuk Mengaktifkan TLS 1.3

Ada dua persyaratan untuk mengaktifkan TLS 1.3 dengan Nginx.

  1. Versi Nginx Anda harus mendukung TLS 1.3. Itu berarti Nginx 1.13 atau lebih tinggi.
  2. Nginx perlu dibuat dengan OpenSSL 1.1.1 atau yang lebih baru.

Ubuntu 18.04 dan 20.04 Dikirim dengan OpenSSL 1.1.1

OpenSSL 1.1.1 disertakan dalam repositori Ubuntu 18.10 dan 20.04 dan paket Nginx dari repositori Ubuntu 18.10/20.04 dibuat dengan OpenSSL 1.1.1.

Ketika Ubuntu 18.04 pertama kali keluar, ia hanya hadir dengan OpenSSL 1.0.2. Namun, OpenSSL 1.1.1 di-backport ke Ubuntu 18.04.3.

Jika Anda masih menggunakan Ubuntu 18.04.2, cukup jalankan perintah berikut untuk meningkatkan ke 18.04.3.

sudo apt update sudo apt upgrade

Instal Nginx Versi Terbaru yang Dibangun dengan OpenSSL 1.1.1 di Ubuntu 16.04

Paket Nginx dari repositori Ubuntu 16.04 tidak dibuat dengan OpenSSL 1.1.1. Anda dapat mengkompilasi Nginx secara manual dengan OpenSSL 1.1.1, tetapi membutuhkan waktu ekstra dan Anda harus mengkompilasi ulang ketika versi baru Nginx keluar. Untungnya, kami dapat menginstal Nginx dari PPA (arsip paket pribadi) oleh Ondřej Sur, yang merupakan pengembang Debian dan tokoh penting dalam komunitas DNS. Dia mengelola banyak paket untuk repositori Debian, termasuk Apache, BIND, MariaDB, PHP dll. Dia juga salah satu pengelola PPA certbot resmi. Jadi saya percaya pada PPA-nya dan menggunakannya di server saya.

Jika sebelumnya Anda telah menambahkan repositori Nginx lain (seperti nginx.org), maka nonaktifkan. Misalnya, saya memiliki repositori Nginx lain yang ditentukan di /etc/apt/sources.list.d/nginx-repo.list mengajukan. Saya cukup mengomentari semua baris dalam file itu untuk menonaktifkannya.

Untuk menambahkan PPA Ondřej Surý Nginx di Ubuntu, jalankan perintah berikut.

sudo add-apt-repository ppa:ondrej/nginxsudo apt update

Kemudian hapus paket Nginx Anda yang ada. (File konfigurasi Nginx Anda tidak akan dihapus.)

sudo apt hapus nginx

Jika Anda menggunakan iRedMail dan Nginx, jalankan sudo apt remove nginx-full untuk menghapus Nginx.

Dan instal Nginx dari PPA.

sudo apt install nginx

Ketika ditanya apakah Anda ingin menginstal versi baru dari file konfigurasi, pilih N . Plugin certbot Nginx Anda mungkin dihapus bersama dengan Nginx, jadi instal kembali.

sudo apt install python3-certbot-nginx

Sekarang periksa versi Nginx.

sudo nginx -V

Anda akan melihat bahwa Nginx dibuat dengan OpenSSL 1.1.1.

versi nginx:nginx/1.14.1dibuat dengan OpenSSL 1.1.1 11 Sep 2018 (berjalan dengan OpenSSL 1.1.0g 2 Nov 2017)dukungan SNI TLS diaktifkan

PPA ini juga menyediakan OpenSSL 1.1.1 untuk Ubuntu 16.04. Jika Nginx Anda di Ubuntu 16.04 masih berjalan dengan OpenSSL 1.1.0, Anda perlu memutakhirkan paket OpenSSL Anda.

sudo apt upgrade

Perhatikan bahwa jika Anda menggunakan mesin komputasi Google, Anda akan melihat pesan berikut saat menjalankan perintah di atas.

Paket berikut telah disimpan kembali:libssl1.1 openssl

Ini karena paket OpenSSL 1.1.1 bertentangan dengan beberapa paket mesin komputasi Google. Anda perlu menjalankan perintah berikut untuk meningkatkan OpenSSL.

sudo apt dist-upgrade

Aktifkan TLS 1.3 di Nginx Virtual Host di Ubuntu 20.04, 18.04 dan 16.04

Setelah Anda memiliki Nginx dengan OpenSSL 1.1.1, buka file host virtual Nginx Anda.

sudo nano /etc/nginx/conf.d/site.conf

atau

sudo nano /etc/nginx/sites-enabled/site.conf

Untuk mengaktifkan TLS 1.3, cukup tambahkan TLSv1.3 ke ssl_protocols direktif di blok server SSL.

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

Jika Anda menggunakan sertifikat Let's Encrypt, konfigurasi SSL Anda dapat diatur di /etc/letsencrypt/options-ssl-nginx.conf mengajukan. Omong-omong, certbot secara default mengaktifkan TLSv1 , yang tidak aman, Anda dapat menghapusnya. Jika Anda menggunakan iRedMail dan Nginx, maka Anda perlu mengedit konfigurasi SSL di /etc/nginx/templates/ssl.tmpl berkas.

Simpan dan tutup file. Kemudian mulai ulang Nginx agar perubahan diterapkan.

sudo systemctl restart nginx

Memeriksa Versi TLS di Browser Web

Menggunakan Firefox 63 atau lebih tinggi, muat ulang halaman web Anda, klik kanan pada area kosong dan pilih View Page Info dalam menu konteks. Buka Security tab dan Anda akan melihat TLS 1.3 sedang digunakan.

Menggunakan Google Chrome 70 atau lebih tinggi, muat ulang halaman web di situs Anda. Kemudian tekan Ctrl+Alt+I untuk membuka Alat Pengembang. Buka Security tab dan Anda akan melihat bahwa TLS 1.3 sedang digunakan.

Apakah TLSv1.3 Digunakan Antara Cloudflare dan Server Asal Anda?

Ya. Cloudflare mendukung TLS 1.3 di server ujung depan, dan juga menggunakan TLSv1.3 saat menghubungkan ke server asal Anda. Untuk memeriksa versi TLS yang digunakan, Anda dapat membuat format log khusus di /etc/nginx/nginx.conf berkas.

sudo nano /etc/nginx/nginx.conf

Tambahkan teks berikut di http konteks.

log_format gabungan_ssl '$remote_addr - $remote_user [$time_local] ' '$ssl_protocol/$ssl_cipher ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; 

Simpan dan tutup file. Kemudian tambahkan access_log direktif di server SSL Anda konteks. Log ada di combined_ssl format.

access_log /var/log/nginx/your-site.access.log combine_ssl;

Simpan dan tutup file. Kemudian muat ulang Nginx. Di file log akses, Anda akan melihat sesuatu seperti di bawah ini, yang menunjukkan TLS 1.3 sedang digunakan.

172.68.132.115 - - [25/Feb/2020:16:07:26 +0800] TLSv1.3/TLS_AES_256_GCM_SHA384 "GET / HTTP/1.1"

Langkah Selanjutnya

Saya harap tutorial ini membantu Anda mengaktifkan TLS 1.3 di Nginx di Ubuntu 20.04, Ubuntu 18.04, dan Ubuntu 16.04. Anda mungkin juga ingin mengatur firewall aplikasi web ModSecurity untuk melindungi situs web Anda dari peretasan.

  • Cara Mengatur ModSecurity dengan Nginx di Debian/Ubuntu

Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Ubuntu
  1. Cara Mengaktifkan SSH di Ubuntu 18.04

  2. Cara Mengaktifkan Desktop Jarak Jauh Ubuntu

  3. Ubuntu 20.04 – Bagaimana Mengaktifkan Hwe?

  1. Bagaimana cara memeriksa status NGINX di Ubuntu

  2. Cara Mengaktifkan Lampu Malam di Ubuntu 17.10

  3. Cara Mengaktifkan Penskalaan Pecahan di Ubuntu 19.04

  1. Cara Menginstal Nginx di Ubuntu 18.04

  2. Cara Menginstal Nginx di Ubuntu 16.04

  3. Cara Menginstal Nginx di Ubuntu 20.04