Menyambung tulisan sebelumnya mengenai SSL Certificates pada website anda, pada tulisan ini saya akan membagikan cara lebih mudah untuk membuat website anda lebih aman dengan SSL Certificates. Selain aman cara ini lebih murah dan tentunya hijau, yaitu memanfaatkan Let's Encrypt untuk SSL Certificates.
Requirement
Seperti biasa untuk memudahkan anda dalam memahami petunjuk ini, maka beberapa hal yang perlu diperhatikan diantaranya:
- Server yang digunakan dalam contoh ini adalah ubuntu server. Sehingga tutorial ini sedikit banyak berlaku pada server berbasis debian. Namun tidak menutup kemungkinan dapat digunakan juga di distro lain, terkadang anda hanya perlu mengganti apt-get menjadi yum atau dnf.
- Stack yang digunakan adalah LAMP Stack (Linux Apache 2.2, MySQL, PHP 7).
- Ubuntu yang digunakan adalah Ubuntu 16.04
- Root direktori apache2 yang digunakan adalah /home/ubuntu/html/
Mari kita mulai!
Install Let's Encrypt Client
Langkah pertama adalah kita menginstall Let's Encrypt Client pada server website kita. Let’s Encrypt Certificates diperoleh melalui client software yang berjalan di komputer server, official client software untuk Let’s Encrypt disebut Certbot. Anda dapat menginstall Certbot langsung dari repositori ubuntu, namun direkomendasikan untuk menggunakan Repositori Certbot agar dapat memperoleh update yang lebih cepat. Pertama anda harus menambahkan Certbot Repositori pada Ubuntu anda dengan perintah berikut:
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get update install python-certbot-apache
Perintah di atas akan menambahkan repositori certbot ke server anda dan diakhiri dengan menginstall certbot-apache (sesuai requirement, server yang digunakan adalah apache). Namun pada beberapa distro server, repository certbot sudah ditambahkan sehingga tidak perlu anda tambahkan lagi seperti pada ubuntu. Untuk memudahkan mengetahui apakah certbot repositori sudah ada atau belum, coba perintah kedua dan ketiga terlebih dahulu.
Set Up SSL Certificate
Untuk memperoleh certificate pada Certbot sangat mudah. Anda hanya perlu menjalankan perintah berikut. Namun sebelumnya pastikan 000-default.conf anda sudah ditambahkan sesuai nameserver website anda.
sudo certbot --apache -d example.com
sudo certbot --apache -d example.com -d subdomain.example.com
Baris pertama untuk setting pada satu domain, jika ingin mensetup pada banyak domain/subdomain maka gunakan perintah pada baris ke-dua. Kedua perintah tersebut akan membuat semua depencencies baik configurasi redirect di 000-default.conf maupun konfigurasi ssl-conf anda. Anda tidak perlu mengubah secara manual default-ssl.conf anda. Namun sebagai catatan, let's encrypt tidak mendukung banyak konfigurasi ssl pada satu dokumen conf. Oleh karena itu apabila anda menggunakan perintah kedua, certbot akan membuat 2 dokumen ssl.conf yang berbeda sesuai dengan nama dokumen anda.
Set Up Auto Renewal
Let's Encrypt hanya berlaku selama 90 hari dan untuk menggunakannya kembali anda harus melakukan renewal setiap 90 hari. Untuk dapat melakukan pemeriksaan secara periodik maka kita akan menggunakan cron-job dengan perintah berikut.
sudo crontab -e
Perintah tersebut akan menampilkan crontab, kemudian tambahkan konfigurasi berikut pada crontab anda.
...
15 3 * * * /usr/bin/certbot renew --quiet
Pada perintah di atas cron akan mengeksekusi perintah certbot renew –quiet setiap puku 3.15 setiap harinya. Anda dapat mengubah waktu sesuai dengan yang anda inginkan.Perintah renew tersebut akan memeriksa semua certificates yang ada di sistem dan melakukan update terhadap certificates yang akan expire dalam 30 hari.
Ternyata sangat mudah dalam mengkonfigusi SSL Certificates website anda dengan let's encrypt, dan yang paling menarik adalah layanan ini tidak berbayar (gratis) sehingga anda dapat address-bar hijau dengan lebih mudah. Terimakasih dan semoga membantu, Happy Coding!
Sumber:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html