Dalam artikel sebelumnya, saya pernah menuliskan sebuah artikel berjudul Tutorial Instal SSL Let’s Encrypt pada Server Nginx CentOS 7. Let’s Encrypt pada dasarnya menggunakan protokol Automatic Certificate Management Environment (ACME) yang berfungsi sebagai jembatan komunikasi terotomatisasi antara otoritas penyedia sertifikat SSL dengan web server. Protokol tersebut memudahkan admin web saat ingin melakukan pembaruan (renewal) sertifikat SSL secara berkala.
Sejak 1 Juni 2020 Let’s Encrypt berhenti mengizinkan domain baru untuk divalidasi menggunakan protokol ACMEv1. Akibatnya domain-domain yang sebelumnya masih menggunakan ACMEv1 akan gagal diperbarui dan diharuskan untuk melakukan upgrade protokol ke ACMEv2.
Masalah ini kebetulan saya alami saat mengelola VPS yang didalamnya terdapat beberapa domain yang biasanya sukses divalidasi dengan ACMEv1, sekarang menjadi gagal. Sistem operasi yang digunakan dalam studi kasus ini adalah Debian 8 “Jessie”.
Setelah mencari tahu beberapa alternatif solusi untuk masalah tersebut, saya kemudian menemukan artikel ini, yang didalamnya memuat langkah-langkah untuk meng-upgrade ACMEv1 ke ACMEv2. Sayangnya tutorial tersebut lebih ditujukan untuk pengguna Ubuntu OS. Namun, dari artikel tersebut saya bisa menemukan apa yang pertama kali harus dilakukan saat ingin melakukan upgrade ke ACMEv2, yaitu dengan melakukan upgrade versi Certbot-nya terlebih dahulu.
Certbot adalah aplikasi yang menawarkan berbagai cara untuk memvalidasi domain pada sebuah server hosting, dan secara otomatis akan mengkonfigurasi Apache dan Nginx yang berhubungan dengan setiap domain.
Berhubung Debian 8 merupakan versi OS yang lumayan jadul, yang mana pertama kali rilis tahun 2015, agak sulit menemukan tutorial yang spesifik untuk OS tersebut. Setelah dicari tahu dengan perintah terminal certbot –version, versi Certbot yang tertanam dalam VPS adalah versi 0.10.2.
Langkah pertama yang saya lakukan adalah menambahkan repository pada source list Debian 8 dengan mengedit isi file repo tersebut menggunakan perintah sudo nano etc/apt/sources.list. Repository yang ditambahkan yaitu sbb:
deb http://cdn-fastly.deb.debian.org/debian/ stretch main deb-src http://cdn-fastly.deb.debian.org/debian/ stretch main deb http://security.debian.org/ stretch/updates main deb-src http://security.debian.org/ stretch/updates main deb http://archive.debian.org/debian stretch-backports main deb-src http://archive.debian.org/debian stretch-backports main
Langkah kedua yaitu menjalankan perintah upgrade sistem yang akan mengambil beberapa resources dari repository di atas. Perintah yang digunakan yaitu sudo apt-get upgrade. Jika diminta untuk memberikan persetujuan atau konfirmasi, ketik saja ‘Y’.
Langkah ketiga yaitu melakukan upgrade Certbot dengan perintah sudo apt-get install python-certbot-apache. Jika proses sudah selesai, cek kembali dengan perintah certbot –version. Dalam studi kasus ini, versi Certbot sudah beralih ke versi 0.28.0.
Langkah keempat yaitu menjalankan perintah sudo certbot renew –dry-run, yang fungsinya untuk memastikan apakah renewal otomatis bisa berjalan dengan baik. Selama tidak muncul error setelah perintah tersebut dijalankan, maka proses renewal sudah bisa diterapkan. Lanjutkan dengan perintah sudo certbot renew. Proses renewal akan berjalan otomatis untuk semua domain yang ada di dalam VPS tersebut.
Sebagai catatan, renewal ini hanya berlaku untuk domain-domain yang tanggal sertifikat SSL-nya sudah kedaluwarsa. Jika tanggal berlaku belum kedaluwarsa, maka domain tersebut akan diabaikan atau tidak akan dilakukan renewal sebelum masa berlakunya habis. Secara default, sertifikat Let’s Encrypt ini akan butuh perpanjangan setiap tiga bulan sekali. Namun proses renewal otomatis ini juga bisa diotomatisasi melalui penjadwalan cron job.
Langkah kelima yaitu memastikan apakah tanggal sertifikat SSL untuk tiap domain sudah berubah (masih berlaku) dengan perintah certbot certificates. Di bagian bawah akan muncul daftar domain beserta keterangan tanggal berlaku sertifikat SSL Let’s Encrypt. Kita juga bisa mengecek apakah domain tersebut sudah terpasang SSL dengan mencoba mengakses https://namadomainkamu.com.