Tutorial Install SSL Gratis Let’s Encrypt dan HTTP/2 di WordPress

Alasan kenapa webmaster harus mempertimbangkan https dibandingkan http adalah keamanan dan kecepatan. Keamanan karena data yang dikirim dan diterima akan dienkripsi terlebih dahulu, kecepatan karena spesifikasi HTTP/2 hanya berlaku untuk protokol https saja.

Jika web yang kamu kunjungi masih menggunakan http, artinya mereka masih menggunakan spesifikasi HTTP/1.1 yang dikenalkan tahun 1999.

Kenapa sih HTTP/1.1 perlu segera di-update?

Ketika tahun 1999, internet tidak seperti sekarang. Dulu website masih sederhana dan hanya memiliki beberapa request saja. Sekarang, website sudah jauh lebih kompleks dan memiliki banyak request. HTTP/1.1 tidak didesain untuk website modern. Akhirnya performa HTTP/1.1 untuk web modern terus menurun.

Kabar baiknya, instalasi penerus HTTP/1.1 yaitu HTTP/2 ternyata tidak begitu sulit. Siapa saja yang pernah install WordPress sendiri pastikan bisa. Saya akan tunjukan pada tulisan ini.

HTTP/1.1 vs. HTTP/2.0

Kamu bisa skip bagian ini, saya akan berbicara teknikal untuk bagian ini.

Seperti yang saya katakan sebelumnya, website modern mengirim banyak request untuk me-render satu halaman. Teknologi HTTP/1.0 hanya membolehkan satu request per satu koneksi TCP saja. Kemudian masalah ini di-address pada HTTP/1.1, browser akhirnya bisa membuat banyak request. Tetapi HTTP/1.1 bukan tanpa masalah, masalah pada HTTP/1.1 adalah bloking.

Cara kerja HTTP/1.1 adalah sebagai berikut: Browser mengirim request pertama kepada server, browser menunggu server memberikan respon. Sayangnya, jika respon server terlalu lama, request ke-2 dan seterusnya tidak akan dikirim sebelum request pertama selesai dan seterusnya.

Berikut ini adalah perbandingan HTTP/1.1 vs. HTTP/2.0.

Dari kedua gambar di atas, bisa dilihat bahwa diagram waterfall untuk HTTP/2.0 lebih rata. Waterfall rata tersebut bisa ada karena multiplexing, yaitu mengirim banyak request sekaligus sekali kirim.

Dan jika diperhatikan lebih jauh, ukuran file yang direspon server dari request, ukurannya lebih kecil. Hal tersebut karena HTTP/2 melakukan kompresi data, implikasinya keceatan loading setiap request jauh lebih cepat,

Kenapa perbedaan kecepatan loading secara keseluruhan tidak terlalu signifikan?

Pertama saya hanya melakukan test pada fresh WordPress yaitu text saja (tidak ada gambar dan file berat lainnya), kedua request yang dikirim hanya 20 (idealnya lebih dari 100).

Sebagai gambaran, berikut adalah perbandingan loading gambar antara HTTP/1.1 dan HTTP/2.0.

Demo dapat dilihat di https://http2.akamai.com/demo

Kecepatan loading HTTP/2.0 hampir 5 kali lebih cepat dari HTTP/1.1. Demo dapat dilihat di https://http2.akamai.com/demo.

Sayangnya, HTTP/2.0 tidak bisa diaplikasikan pada protokol HTTP. Web server yang mengaplikasikan HTTP/2 hanya bisa dilakukan pada koneksi yang terenkripsi. Artinya kita memerlulkan sertifikat SSL untuk bisa merasakan segala kelebihan HTTP/2.

HTTPS Gratis Let’s Encrypt!

Entah kebetulan atau tidak, setahun setelah HTTP/2.0 dikenalkan, Linux Foundation meluncurkan Let’s Encrypt, yaitu certificate authority yang memberikan sertifikat https secara gratis. Goal utama dari Let’s Encrypt cukup ambisius, yaitu membuat internet terenkripsi.

Menariknya salah satu hosting pertama yang mendukung Let’s Encrypt adalah HawkHost. HawkHost sudah mendukung dan menyediakan sertifikat Let’s Encrypt pada semua layanan mereka.

Pada tutorial ini saya memakai contoh blog WordPress dengan domain kuantum.id. Berikut adalah cara membuat https dengan Let’s Encrypt pada HawkHost.

Koneksi pada kuantum.id masih menggunakan protokol HTTP.

Koneksi pada kuantum.id masih menggunakan protokol HTTP.

Pertama login ke cPanel HawkHost lalu pilih Let’s Encrypt pada bagian SECURITY.

Pilih Let's Encrypt pada bagian SECURITY.

Pilih Let’s Encrypt pada bagian SECURITY.

Kedua, pilih domain yang akan di-install sertifikat Let’s Encrypt, lalu klik Issue. Pada contoh ini saya memakai memilih domain kuantum.id.

Pilih domain yang akan di-install kan sertifikat Let's Encrypt.

Pilih domain yang akan di-install kan sertifikat Let’s Encrypt.

Ketiga, pilih subdomain mana saja yang akan digunakan. Lalu klik Issue.

Pilih subdomain mana saja yang akan digunakan.

Pilih subdomain mana saja yang akan digunakan.

Selanjutnya kita akan mendapat pesan bahwa sertifikat sudah di-install pada domain yang kita pilih,

The SSL certificate is now installed onto the domain “kuantum.id” using the IP address “999.999.999.999”. The existing virtual host was updated with the new certificate. Apache is restarting in the background.

Kuantum.id sudah bisa diakses dengan protokol https.

Kuantum.id sudah bisa diakses dengan protokol https.

Selesai!, domain sudah dapat dikunjungi dengan protokol https.

Kuantum.id memiliki sertifikat SSL valid.

Kuantum.id memiliki sertifikat SSL valid.

Redirect Permanen HTTP ke HTTPS

Domain kuantum.id sekarang bisa diakses baik melalui protokol http maupun https. Dalam sudut pandang SEO, hal ini buruk, karena website kuantum.id bisa dikenakan duplicate meta tag.

Karena itu, semua pengunjung kuantum.id yang mengakses dengan protokol http harus diarahkan ke protokol https. Berikut ini adalah cara mem-force domain http ke https melalui .htaccess.

Pada cPanel, pilih file manager untuk membuka .htaccess. Sebelumnya pastikan bahwa kita sudah bisa membuka file yang berawalan titik di depan. Caranya dengan klik setting pada file manager > show hidden file.

File manager cPanel HawkHost.

Biasanya pada file .htaccess sudah terdapat kode default. Untuk itu, paste kode di bawah pada bagian paling atas. Jangan lupa untuk mengganti domain kuantum.id dengan domain kamu.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.kuantum.id/$1 [R,L]

Adakalanya kita hanya ingin memakai https hanya untuk spesifik direktori saja, misalnya wp-admin. Hal ini mungkin, yaitu dengan menambahkan kode RewriteCond %{REQUEST_URI} folder.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} folder 
RewriteRule ^(.*)$ https://www.kuantum.id/wp-admin/$1 [R,L]

Save .htaccess yang sudah dimodifikasi. Sekarang, semua calon pengunjung yang mengunjungi kuantum.id dengan protokol http akan diarahkan ke protokol https.

Aktivasi HTTP/2.0

Tidak semua hosting mendukung HTTP/2.0, jika kamu memakai VPS kamu bisa menginstallnya sendiri. Tetapi jika kamu memakai shared hosting, kamu bisa bertanya ke bagian bantuan apakah mereka sudah mendukung HTTP/2.0 atau belum. Jika belum kamu dapat meminta untuk di-install-kan.

Kabar baiknya, jika kamu bersama HawkHost, mereka secara default sudah mendukung HTTP/2.0. Jadi begitu kita memakai SSL, HTTP/2.0 secara otomatis digunakan.

Inilah yang saya suka dari HawkHost, mereka sangat up-to-date dan passionate terhadap teknologi, khususnya hosting.

Jika kamu memakai unmanaged service, saya asumsikan kamu bisa install sendiri software. Untuk server apache, kamu hanya perlu install mod_http2, sedangkan nginx, kamu harus memakai nginx versi 1.9.5 atau lebih baru.

Alternatif: CloudFlare

Bagaimana jika hosting tidak mendukung HTTP/2.0 dan saya tidak bisa install sendiri?

Alternatif lainnya adalah dengan CloudFlare. Pada free service CloudFlare mereka sudah menyediakan SSL gratis dan HTTP/2.0. Syaratnya kamu harus bisa memakai DNS mereka.

Untuk aktivasi HTTP/2.0 pada CloudFlare, kita hanya perlu melakukan dua langkah pengaturan. Prtama pada bagian pilih Flexible pada bagian Crypto > Flexible.

CloudFlare SSL

Kedua, pada bagian pilih SPDY + HTTP2 pada bagian Network > SPDY + HTTP2.

CloudFlare HTTP/2.0

**

Penting: Setelah install SSL dan migrasi dari HTTP ke HTTPS. Ternyata ada berbagai masalah yang saya hadapi. Baca post migrasi http ke https untuk menghindari masalah yang sama.

Sekarang kita tahu bahwa sertifikat SSL bisa didapatkan secara gratis melalui Let’s Encrypt. Kita juga tahu bahwa HTTP/2.0 memberikan performa yang jauh lebih baik dibandingkan HTTP/1.1. Di masa depan, tidak lama lagi, kita akan menemui banyak website yang tidak lagi memakai protokol http.

HTTP/2.0 dan Let’s Encrypt perlu kita apresiasi karena sudah membuat internet menjadi lebih baik. Semoga penjelasan Let’s Encrypt dan tutorial HTTP/2.0 ini dapat membantu.

Jangan lupa subscribe dan komentar!

{ 1 comment… add one }
  • teknohot 11/12/2017, 12:13 pm

    saya pake http/2.0 , ternyata memang cepat

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.