Cara Mengaktifkan TLS 1.3 di Apache dan Nginx
TLS 1.3 adalah versi terbaru dari protokol Transport Layer Security (TLS) dan didasarkan pada spesifikasi 1.2 yang ada dengan standar IETF yang sesuai: RFC 8446. Ini memberikan keamanan yang lebih kuat dan peningkatan kinerja yang lebih tinggi dibandingkan pendahulunya.
Dalam artikel ini, kami akan menunjukkan kepada Anda panduan langkah demi langkah untuk mendapatkan sertifikat TLS yang valid dan mengaktifkan protokol versi TLS 1.3 terbaru di domain Anda yang dihosting di Apache atau server web Nginx.
Persyaratan:
- Apache versi 2.4.37 atau lebih tinggi.
- Nginx versi 1.13.0 atau lebih tinggi.
- OpenSSL versi 1.1.1 atau lebih tinggi.
- Nama domain yang valid dengan data DNS yang dikonfigurasi dengan benar.
- Sertifikat TLS yang valid.
Instal Sertifikat TLS dari Let's Encrypt
Untuk mendapatkan Sertifikat SSL gratis dari Let's Encrypt, Anda perlu menginstal klien Acme.sh dan juga beberapa paket yang diperlukan pada sistem Linux seperti yang ditunjukkan.
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
CATATAN: Ganti example.com
pada perintah di atas dengan nama domain asli Anda.
Setelah Anda memasang sertifikat SSL, Anda dapat melanjutkan lebih jauh untuk mengaktifkan TLS 1.3 di domain Anda seperti dijelaskan di bawah.
Aktifkan TLS 1.3 di Nginx
Seperti yang saya sebutkan dalam persyaratan di atas, bahwa TLS 1.3 didukung mulai dari versi Nginx 1.13. Jika Anda menjalankan Nginx versi lama, Anda harus mengupgrade ke versi terbaru terlebih dahulu.
apt install nginx
yum install nginx
Periksa versi Nginx dan versi OpenSSL yang menjadi dasar kompilasi Nginx (pastikan versi nginx setidaknya 1.14 dan openssl versi 1.1.1).
nginx -V
Contoh Keluaran
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
....
Sekarang mulai, aktifkan dan verifikasi instalasi nginx.
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service
Sekarang buka file /etc/nginx/conf.d/example.com.conf
konfigurasi nginx vhost menggunakan editor favorit Anda.
vi /etc/nginx/conf.d/example.com.conf
dan cari direktif ssl_protocols
dan tambahkan TLSv1.3 di akhir baris seperti yang ditunjukkan di bawah ini
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;
}
Terakhir, verifikasi konfigurasi dan muat ulang Nginx.
nginx -t
systemctl reload nginx.service
Aktifkan TLS 1.3 di Apache
Mulai dari Apache 2.4.37, Anda dapat memanfaatkan TLS 1.3. Jika Anda menjalankan Apache versi lama, Anda harus meningkatkan ke versi terbaru terlebih dahulu.
apt install apache2
yum install httpd
Setelah terinstal, Anda dapat memverifikasi Apache dan versi OpenSSL yang digunakan untuk mengkompilasi Apache.
httpd -V
openssl version
Sekarang mulai, aktifkan dan verifikasi instalasi 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
Sekarang buka file konfigurasi virtual host Apache menggunakan editor favorit Anda.
vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf
dan cari direktif ssl_protocols
dan tambahkan TLSv1.3 di akhir baris seperti yang ditunjukkan di bawah ini.
<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>
Terakhir, verifikasi konfigurasi dan muat ulang Apache.
-------------- On Debian/Ubuntu --------------
apache2 -t
systemctl reload apache2.service
-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service
Verifikasi Situs Menggunakan TLS 1.3
Setelah Anda mengonfigurasi melalui server web, Anda dapat memeriksa apakah situs Anda melakukan handshaking melalui protokol TLS 1.3 menggunakan alat pengembangan browser chrome pada versi Chrome 70+.
Itu saja. Anda telah berhasil mengaktifkan protokol TLS 1.3 di domain Anda yang dihosting di server web Apache atau Nginx. Jika Anda memiliki pertanyaan tentang artikel ini, silakan bertanya di bagian komentar di bawah.