• 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

  • Cara Mengganti Port Screen Sharing macOS
  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.1k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.8k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.1k views
  • Cara Reset Password ZTE F609 Indihome 147.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.5k views

Kategori

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

Sponsor

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