• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Cara Menggunakan TLS 1.3 di Nginx

Last Updated on 3 January 2021 By tommy 1 Comment

TLS 1.3 sudah beberapa tahun muncul dan memberikan benefit seperti Handshake yang lebih cepat dan downgrade protection. Semua browser sudah support TLS 1.3, Google Chrome sejak versi 66 dan Firefox sejak versi 60.

Agar bisa menggunakan TLS 1.3 minimal nginx yang digunakan adalah versi 1.14, OpenSSL versi 1.1.1 dan tentunya memiliki sertifikat SSL

Cek versi nginx dengan nginx -v

$ nginx -v
nginx version: nginx/1.18.0

Cek versi OpenSSL dengan openssl version

$ openssl version
OpenSSL 1.1.1i  8 Dec 2020

Setting TLS 1.3 di Nginx

Cara setting TLS 1.3 di nginx sebenarnya sangat sederhana, contohnya

server {
    listen 443 http2 ssl;
    server_name jaranguda.com;
    ssl_certificate /etc/nginx/ssl/jaranguda.com/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/jaranguda.com/jaranguda.com.key;
    root /var/www/domains/jaranguda.com;
    ssl_protocols TLSv1.2 TLSv1.3;
}

Bagian yang mengaktifkan TLS 1.3 berada dibaris ssl_protocols TLSv1.2 TLSv1.3, ingat urutannya adalah versi lama ke versi baru, bila ingin mengaktifkan semua versi TLS menjadi

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

Testing TLS 1.3

Untuk testingnya sendiri kita akan menggunakan OpenSSL dan curl, ada banyak tools yang bertebaran di Internet, tetapi dengan kedua tools ini seharusnya sudah cukup tanpa perlu menggunakan bantuan pihak ketiga (thirdparty)

Contoh dengan curl

curl --tlsv1.3 https://EXAMPLE.com

Contoh dengan openssl

openssl s_client -connect EXAMPLE.com:443 -tls1_3

Troubleshooting TLS di Nginx

Ada kasus unik yang menghabiskan berjam-jam untuk debuggingnya ;), error yang ditampilkan

# openssl
CONNECTED(00000003)
140217493542720:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 260 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
 
# curl
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS alert, protocol version (582):
* error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version
* Closing connection 0

error tersebut tetap muncul walaupun TLS 1.3 sudah di setting di server block nginx. Di server yang digunakan untuk testing, saya memiliki banyak domain (multi domain) dengan konfigurasi nginx masing-masing, saya memiliki 1 server block default yang saya beri nama 000-default isi konfigurasinya

server {
    listen 80 default_server;
    server_name _;
    root /var/www/tanpa/isi;
    index index.html;
}
 
 
server {
    listen 443 http2 default_server;
    server_name _;
    root /var/www/tanpa/isi;
    index index.html;
    ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
    ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
}

bila tidak disertakan default_server dibelakang listen maka yang menjadi default adalah berdasarkan urutan abjad file konfigurasinya. Dengan konfigurasi diatas akses ke TLS 1.3 akan selalu error seperti yang diatas. Solusinya adalah dengan menambahkan ssl_protocols TLSv1.2 TLSv1.3 dikonfigurasi tersebut, setelah restart testing terhadap semua domain bisa mengakses TLS 1.3

Tulisan menarik lainnya

  • Nginx SSL di Debian

    Untuk instalasi bisa dilihat di Instalasi nginx PHP MySQL (LEMP) di Debian 7. Disini kita…

  • Cara Menggunakan Signed SSL di Jaringan LAN

    Selain digunakan untuk memberikan layanan HTTPS di server yang memiliki publik IP, signed SSL juga…

  • Mengaktifkan OCSP SSL di Nginx

    Disini sebagai contoh saya akan menggunakan StartSSL Di server block (virtualhost) anda tambahkan ssl_stapling on;…

  • Menggunakan https di Shoutcast

    Sekarang jamannya serba pake SSL (https), walaupun ngga jelas kebutuhannya kenapa harus pake SSL :P.…

Filed Under: Linux

Reader Interactions

Comments

  1. Robeka Awom says

    6 January 2021 at 09:43

    Saya kesusaan mengantikan password WiFi saya

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Solusi AWS CLI SSL VALIDATION failed
  • Monitoring Kubernetes Cluster dengan Prometheus
  • Solusi Playwright Firefox version `GLIBCXX_3.4.30′ not found (required by /lib64/libicuuc.so.69)
  • Cara Upgrade Fedora 35 ke Fedora 36
  • Ekstrak Gzip File dan Ambil Total dengan Python

Komentar

  • Xpud on Script PHP untuk Mengambil History Lagu Shoutcast v2.5
  • Jrenx on Membuat Bot Telegram Sederhana dengan PHP
  • Sella on Kemana Menghilangnya Saldo BCA 50 ribu
  • Rian on Mengganti Halaman Error Laravel
  • Suchie on Kemana Menghilangnya Saldo BCA 50 ribu

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1m views
  • Password Terbaru ZTE F609 Indihome 781.5k views
  • Password Superadmin Huawei HG8245A 294.4k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 267.8k views
  • Cara Setting Wireless ZTE F609 Indihome 251k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 165.4k views
  • Akses UseeTV Indihome via Wireless ZTE F609 154.8k views
  • Cara Reset Password ZTE F609 Indihome 146k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 135.3k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 109k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java