Sudah dipastikan bahwa enkripsi SSL/TLS yang ada di web kalian akan membuat web kalian menjadi lebih tinggi hasilnya pada hasil pencarian dan membuat pengguna yang mengaksesnya menjadi sedikit lebih aman. Namun, ada beberapa penghalang yang terkadang membuat pemilik web mengaplikasikan SSL/TLS dalam website mereka.
2 penghalang yang paling besar adalah biaya dan proses manual dalam mendapatkan sertifikat tersebut. Tepi sekarang, dengan Let’s Encrypt, Kedua hal tersbeut bukan lagi menjadi masalah. Let’s Encrypt membuat enkripsi SSL/TLS menjadi gratis untuk semua orang.
Apa sih Let’s Encrypt itu? Merupakan sebuah Certification Authority (CA) yang menyediakan sertifkat sertifikat SSL/TLS secara gratis. Sertifikat yang dikeluarkan oleh Let’s ENcrypt sudah dipercaya oleh hampir semua browser sekarang ini, termasuk browser yang sudah tua seperti Internet Explorer di Windows XP SP3. Sebagai tambahan, Let’s Encrypt sudah sepenuhnya otomatis, baik dalam hal penerbitan atau pembaruan sertifikat.
Lalu bagaimana caranya menggunakan Let’s Encrypt pada Nginx yang berjalan di atas CentOS 8 Server? Berikut ini hasil percobaan yang saya lakukan.
Persyaratan
- Memiliki Nginx yang terpasang di atas CentOS 8 Server.
- Memiliki akses penuh terhadap nama domain yang ingin dipasangkan sertifikat SSL/TLS.
- Membuat DNS Record yang terhubung dengan nama domain dan IP publik server kalian
Tahapan
1. Memasang klien Certbot Let’s Encrypt
Pertama, kalian harus masuk terlebih dahulu ke server CentOS 8 kalian dengan perintah:
ssh <user>@<Server_IP>
Paket Certbot tidak otomatis tersedia secara default dalam pakcage manager. Untuk itu kalian harus menambahkan repository EPEL untuk memasang Certbot. Caranya:
sudo dnf install epel-release

Ketika ditanyakan konfirmasi untuk melakukan instalasi, ketik Y.
Sekarang kalian sudah memiliki akses ke repositori tambahan tersebut. Install beberapa paket yang dibutuhkan berikut:
sudo dnf install certbot python3-certbot-nginx

Perintah di atas akan memasang Certbot dan plugin Nginx untuk Certbot, yang mana dibutuhkan untuk menjalankan program.
Proses instalasi akan menanyakan kalian tentang mengimpor GPG Key. Konfirmasi hal tersebut sehingga instalasi dapat diselesaikan. Sekarang kalian sudah memasang klien Let’s Encrypt.

Namun sebelum mendapatkan sertifikat, kalian terlebih dahulu harus memastikan semua port yang dibutuhkan sudah terbuka. Untuk melakukan hal tersebut, kalian perlu mengupdate pengaturan firewall pada tahap selanjutnya.
2. Mengupdate Pengaturan Firewall
Untuk menggunakan Certbot, pastikan port http dan https terbuka. Cara untuk membukanya di firewall adalah dengan menjalankan perintah:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

Sekarang kalians sudah siap untuk menjalankan Certbot dan mendapatkan sertifikat.
3. Memperoleh Sertifikat
Sekarang kalian dapat melakukan permintaan penerbitan sertifikat SSL untuk domain kalian.
Ketika mengeluarkan sertifikat SSL untuk NGINX menggunakan klien Certbot, klien tersebut akan secara otomatis memperoleh sertifikat tersebut dan memasang sertifkat SSL yang baru dan valid untuk domain yang yang dimasukkan ke dalam parameter. Caranya:
sudo certbot --nginx -d <domain_kalian> -d www.<domain_kalian>

Sertifikat yang dihasilkan berada di sebuah direktori setelah nama domain kalian pada direktori /etc/letsencrypt/live.
4. Memasang Sertifikat
Usai mendapatkan sertifikat SSL, tahap selanjutnya adalah memasangnya. Letakkan sertifikat tadi di dalam konfigurasi Nginx seperti berikut:

Jika sudah. Uji konfigurasi nginx terlebih dahulu dan kemudian restart service nginx. Caranya:
nginx -t service nginx restart service nginx status

Sekarang sudah selesai menggunakan Certbot, kalian bisa memeriksa status SSL sertifikat. Verifikasi status sertifikatnya dengan membuka link berikut pada browser kalian.
https://www.ssllabs.com/ssltest/analyze.html?d=domain_kamu

Kalian sudah bisa mengakses web kalian dengan awalan https. Namun, kalian harus memperbarui sertifikat secara rutin untuk membuatnya tetap berjalan. Dalam tahap berikutnya, kalian akan tahu cara memperbaruinya secara otomatis.
5. Pengaturan Auto-Renewal
Sertifikat Let’s Encrypt valid untuk 90 hari, tapi sangat direkomendasikan untuk kalian memperbaruinya setiap 60 jari untuk memberi toleransi pada margin of error. Klien Certbot Let’s Encrypt memiliki perintah renew yang secara otomatis memeriksa status sertifikat yang terinstal dan mencoba untuk memperbarui jika masa aktifnya kurang dari 30 hari waktu kadaluarsa.
Sebelum mengaplikasikanya, kalian bisa mengujicoba terlebih dahulu. Caranya:
sudo certbot renew --dry-run

Cara paling praktis untuk memastikan sertifikat kalian tidak kadaluarsa adalah dengan membuat cronjob yang secara periodik akan menjalankan perintah pembaruan sertifikat secara otomatis untuk kalian.
Karena eksekusi pembaruan sertifikat hanya dilakukan jika waktunya kurang dari 30 hari, akan lebih aman jika pemeriksaan dilakukan setiap minggu atau bahkan setiap hari.
Untuk membuat crontab yang akan memeriksa kadaluarsa sertifikat setiap siang, edit crontab dan tambahkan konfigurasi berikut:
crontab -e
Isinya:
0 12 * * * /usr/bin/certbot renew --quiet
Jika sudah selesai, simpan dan tutup file konfigurasinya. Perintah renew akan memeriksa semua sertifikat yang terpasang pada sistem dan mengupdate setiap sertifikat yang akan kadaluarsa dalam waktu kurang dari 30 hari.
*****
Itu tadi cara menggunakan sertifikat SSL/TLS Let’s Encrypt untuk server kalian. Semoga tulisan ini berguna ya.
Tulisan ini juga bertujuan untuk menggantikan tutorial lama (DI SINI) yang sudah tak lagi berlaku.
