Apabila kita ingin memasang sertifikat SSL namun kekurangan budget, dapat dicoba solusi gratisan SSL dari LetsEncrypt, sebuah lembaga publik yang bertujuan untuk meng-https kan internet.

Lebih lanjutnya tentang LetsEncrypt dapat dilihat pada laman situsnya.

Untuk toolkit server linuxnya sendiri telah disediakan oleh EFF bernama certbot:

Lebih lanjut tentang certbot dapat dilihat pada: https://certbot.eff.org

Pada artikel kali ini akan dibahas mengenai cara pemasangan certbot pada server linux. Hampir seluruhnya diambil dari dokumentasi certbot yang memang sudah sangat lengkap.

Instalasi

Sejauh ini certbot telah mendukung berbagai macam distribusi linux, baik CentOS, Ubuntu, ataupun Debian. Saya asumsikan tidak berbeda jauh untuk eksekusinya.

Untuk instalasi, pertama-tama buat folder baru di /usr/local/autossl, buat agar hanya root yang bisa eksekusi. Kita akan menyimpan file certbot pada direktori ini. Kemudian masuk ke dalam autossl lalu eksekusi perintah dibawah ini:

$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto

Pembuatan Sertifikat

buat file baru dengan nama pada /usr/local/autossl dengan nama server-cert-issue.

pada file tersebut dapat diisi perintah certbot awal inisiasi pada sub domain yang diinginkan untuk dipasang sertifikat untuk pertama kali:

#!/bin/bash


MY=$(pwd)

$MY/certbot-auto certonly --webroot --email admin@example.com \
-w /some/web/dir -d somedomain.example.com

untuk subdomain lainnya mengikuti rule -w untuk web direktori dan -d untuk nama subdomain.

jangan lupa untuk menjalankan perintah sebagai root, karena cerbot memerlukan beberapa setup dan mekanisme challenge-response dengan cara menulis file pada web direktori kita yang sudah diset via -w di atas

pada saat dokumentasi ini dibuat, lamanya berlaku sertifikat hanya 3 bulan, oleh karena itu, dapat dijalankan perintah dalam cron untuk mengecek renewal sebanyak dua kali sehari seperti yang disarankan oleh certbot:

$ certbot-auto renew --quiet

Pemasangan di web server

sebenarnya cerbot memiliki fitur untuk langsung menulis di konfigurasi apache/nginx atau web server lainnya ketika kita melakukan eksekusi perintahnya, namun untuk lebih amannya kita akan menggunakan certbot hanya untuk melakukan generate cert saja, sesuai dengan parameter certonly pada pembuatan sertifikat.

Path hasil eksekusi certbot ada pada direktori /etc/letsencrypt, sedangkan path sertifikat yang akan digunakan ada pada /etc/letsencrypt/live/nama-domain.

Kemudian kita dapat memasang sertifikat tersebut pada konfigurasi web server, contohnya pada apache /etc/httpd/conf.d:

SSLCertificateFile /etc/letsencrypt/live/some-domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/some-domain/privkey.pem

setelah selesai, restart web server, maka dapat dilihat bahwa SSL gratisan dari letsencrypt telah dapat digunakan.

Happy SSL-ing :D