Cara Mengamankan Apache Web Server dengan Let's Encrypt di Ubuntu 16.04

Bagus Aji Santoso 18 Oktober 2017

Cara Mengamankan Apache Web Server dengan Let's Encrypt di Ubuntu 16.04

Pendahuluan

Tutorial ini akan mengajak pembaca untuk mengatur sertifikat TLS/SSL dari Let’s Encrypt di server Ubuntu 16.04 yang menjalankan Apache sebagai server webnya. Kita juga akan membahas bagaimana mengotomasi proses perbaruan sertifikat.

Sertifikat SSL dipakai di dalam server web untuk mengenkripsi traffic antara server dan klien dengan memberikan tambahan lapisan keamanan bagi user yang mengakses aplikasi web kita. Let's Encrypt memberikan cara mudah untuk mengambil dan memasang sertifikat terpercaya tanpa biaya.

Prasyarat

Untuk menyelesaikan tutorial ini kita akan membutuhkan:

Jika sudah siap untuk move on, login ke server dengan akun user biasa.

Langkah 1 — Pasang Klien Let's Encrypt

Sertifikat Let's Encrypt dapat diunduh lewat software klien yang berjalan di server kita. Klien resmi untuk Let's Encrypt bernama Certbot dan sudah memiliki repositori Ubuntu sendiri dengan versi terbaru. Karena pengembangannya yang sangat aktif, maka kita dapat langsung memasang Certbot terbaru dari repositorinya sendiri daripada menggunakan repositori Ubuntu.

Pertama, tambahkan dulu repositorinya:

sudo add-apt-repository ppa:certbot/certbot

Tekan ENTER untuk menerima. Lalu, jalankan perintah di bawah:

sudo apt-get update

Terakhir, pasang Certbot dengan perintah:

sudo apt-get install python-certbot-apache

Software klien certbot Let's Encrypt sekarang sudah siap dipakai.

Langkah 2 — Mempersiapkan Sertifikat SSL

Membuat sertifikat SSL untuk Apache menggunakan Certbot cukup mudah. Klien secara otomatis akan mengambil dan memasang sertifikal SSL baru yang valid untuk domain yang diberikan sebagai parameter saat menjalankannya.

Untuk menjalankan pemasangan interaktif dan mengambil sertifikat untuk satu domain, jalankan perintah certbot sebagai berikut, alamat example.com dapat diganti dengan domain sendiri:

sudo certbot --apache -d example.com

Jika ingin menggunakan satu sertifikat valid untuk beberapa domain atau subdomain, kita bisa menambahkannya setelah domain utama. Domain yang pertama yang diberikan akan menjadi base domain untuk membuat sertifikatnya. Oleh karena itu sangat direkomendasikan untuk menggunakan top-level domain sebagai parameter pertama baru diikuti oleh subdomain atau alias yang lain:

sudo certbot --apache -d example.com -d www.example.com

Di contoh ini, base domainnya adalah example.com.

Setelah dependensi terpasang, kita akan dimintai beberapa data yang diperlukan untuk pembuatan sertifikat. Kita akan dimintai alamat email untuk melakukan recovery key serta pemberitahuan dan kita juga dapat mengatur untuk mengaktifkan http dan https sekaligus atau memaksa semua request ke https. Cara paling aman ialah dengan menggunakan https saja, kecuali jika memang membutuhkan ada traffic yang hanya dilakukan dengan http.

Setelah pemasangan selesai, kita dapat melihat sertifikat yang dibuat di etc/letsencrypt/live. Kita juga dapat melakukan verifikasi status sertifikat SSL melalui tautan berikut: (jangan lupa untuk mengganti example.com dengan base domain):

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

Seharusnya sekarang kita sudah bisa mengakses website dengan https.

Langkah 3 — Mengatur Perbaruan Otomatis

Sertifikat Let's Encrypt hanya valid selama 90 hari. Pengguna disarankan untuk mengotomatiskan proses perbaruan sertifikatnya. Kita perlu menyiapkan perintah yang akan berjalan secara otomatis untuk memeriksa tanggal kadaluarsa sebuah sertifikat dan memperbaruinya.

Untuk menjalankan proses di atas kita akan menggunakan cron, service sistem standar untuk melakukan pekerjaan yang berulang. Kita akan memberitahu cron apa yang harus dilakukan dengan membuka dan mengubah isi file bernama crontab.

sudo crontab -e

Tambahkan baris berikut ke dalam crontab:

crontab

. . .
15 3 * * * /usr/bin/certbot renew --quiet

Bagian 15 3 * * * dari perintah di atas artinya "jalankan perintah ini setiap hari jam 3:15 pagi.

Perinath renew akan memberitahu Certbot untuk memeriksa semua sertifikat yang terpasang di sistem dan memperbarui setiap sertifikat yang akan kadaluarsa dalam 30 hari. Opsi quiet memberitahu Certbot untuk tidak menampilkan informasi apapun atau menunggu masukan pengguna.

Sistem cron akan menjalankan perintah ini setiap hari. Karena kita memasang sertifikat dengan menggunakan --apache, maka Apache juga akan direstart untuk menggunakan sertifkat yang baru.

Penutup

Di tutorial ini, kita telah belajar bagaimana memasang sertifikat SSL gratis dari Let's Encrypt untuk mengamankan website yang menggunakan Apache. Kami sarankan pembaca untuk memeriksan blog resmi Let's Encrypt untuk info terbaru serta membaca dokumentasi Certbot untuk detail lebih lengkap mengenai klien yang tadi kita gunakan.

Diterjemahkan dari How To Secure Apache with Let's Encrypt on Ubuntu 16.04 di bawah Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.