Menginstall Sertifikat SSL Let’s Encrypt di Ubuntu Server

Ada banyak penyedia sertifikat SSL yang bagus dan terpercaya. Namun hampir semua berbayar, mulai dari belasan dolar hingga ribuan dolar pertahun, tergantung tingkat keamanan dari sertifikat SSL tersebut. Semakin tinggi tingkat keamanannya, tentu harganya semakin mahal.
Biasanya website-website dari perusahaan besar yang memiliki layanan e-commerce atau e-banking yang berani membeli sertifikat SSL dengan tingkat keamanan paling tinggi.

https://enterprise.comodo.com/security-solutions/digital-certificates/ssl-certificates/

Namun untuk website-website personal atau perusahaan-perusahaan menengah kebawah, tentu mengeluarkan uang ratusan dolar pertahun hanya untuk sertifikat SSL akan terasa berat.
Lalu bagaimana solusinya?

Let’s Encrypt, Sertifikat SSL Gratis!

Let’s Encrypt merupakan penyedia sertifikat SSL (Certificate Authority) yang 100% gratis dan mudah. Sertifikat dari Let’s Encrypt juga sudah diterima oleh semua browser sehingga tetap aman.

Ditulisan ini kita akan menginstall sertifikat SSL dari Let’s Encrypt di Ubuntu Server.
Sebelum memulai, kebutuhan yang harus dipenuhi:

Ubuntu Server
Pada saat tulisan ini dibuat, versi ubuntu yang disarankan adalah Ubuntu Server 18.04. Order VPS untuk server ubuntu kalian.

Domain name yang telah teregistrasi dan diarahkan ke DNS server yang akan digunakan (Ubuntu Server).
Belum punya domain? Beli dulu lah. cuma 10rb

Apache Web Server
Pastikan telah membuat Virtual Host untuk domain yang akan buatkan sertifikatnya.

Instalasi Sertifikat SSL

Jika menggunakan ubuntu server terbaru, Certbot telah ada secara default di Ubuntu Repository. Tapi jika belum ada, kalian bisa menginstalnya dengan menambahkan repository PPA Certbot:

$ sudo add-apt-repository ppa:certbot/certbot 

Kemudian instal apache package untuk Certbot

$ sudo apt install python3-certbot-apache

Cek konfigurasi Virtual Host sebelum instal sertifikat:

$ sudo apache2ctl configtest

Jika muncul error, kalian harus melakukan konfigurasi ulang terhadap Virtual Host tersebut. Namun jika tidak, bisa dilanjutkan instalasi sertifikat.
Sebagai contoh, domain yang akan diinstal SSL adalah: domainku.com

$ sudo certbot --apache -d domainku.com -d www.domainku.com

Setelah perintah tersebut di eksekusi, Certbot akan menanyakan alamat email dan meminta persetujuan terhadap terms of service mereka. Lalu Certbot akan memverifikasi domain yang akan dibuatkan sertifikat SSL. Certbot akan memunculkan pesan kesalahan jika domain tersebut tidak terkonfigurasi dengan benar di server ini.

Jika semuanya sukses, Certbot kemudian akan memberikan pilihan konfigurasi untuk seting domain HTTPS, apakah setiap request akan otomatis di-redirect ke HTTPS, atau tidak.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Masukkan nomor yang dipilih dan tekan enter. Certbot akan menyimpan konfigurasi domain dan menampilkan rangkuman:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/domainku.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/domainku.com/privkey.pem
   Your cert will expire on 2019-04-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Selamat! Sertifikat SSL telah berhasil diinstal. Kalian coba test langsung dengan mengakses domain tersebut di browser menggunakan akses HTTPS. Atau jika memilih auto-redirect, coba ketikkan alamat domain di browser tanpa menggunakan HTTPS.
Misalkan http://domainku.com/
Jika semuanya lancar, seharusnya akan otomatis di-redirect menjadi https://domainku.com/

Kalian juga bisa test di website: https://www.ssllabs.com/ssltest/
Akan dimunculkan detail sertifikat, dan akan mendapatkan rating A.

Auto Renewal

Sertifikat SSL Let’s Encrypt akan kadaluarsa setelah 3 bulan. Setelah kadaluarsa kalian harus memperbarui sertifikat tersebut dengan menggunakan perintah yang sama.

Namun Certbot telah mempermudahnya dengan secara otomatis memperpanjang masa aktif sertifikat SSL. Certbot menambahkan script di cron-job server untuk pengecekan masa aktif sertifikat SSL. Script ini berjalan 2 kali sehari, dan akan otomatis memperpanjang sertifikat yang akan kadaluarsa dalam waktu 30 hari ke depan.

Untuk mengetes proses perpanjangan sertifikat oleh Certbot, bisa menggunakan perintah:

$ sudo certbot renew --dry-run

Jika tidak memunculkan error artinya kalian sudah bisa tenang, sertifikat kalian akan terus aktif selama server berjalan. Jika suatu saat Certbot gagal memperpanjang sertifikat, Certbot akan mengirimkan email ke alamat email telah didaftarkan sebelumnya dan memberitahukan informasi tentang sertifikat yang akan kadaluarsa.

Sampai disini website kalian telah terlindungi oleh HTTPS.

Tertarik ingin mencoba instal sendiri sertifikat SSL nya?

Order VPS di MasterWeb, harga mulai dari Rp100rban.
Banyak domain murah juga.

Leave a Reply

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

Back to Top