Rocky Linux - Cockpit Dengan SSL Let's Encrypt

Rocky Linux – Cockpit Dengan SSL Let’s Encrypt

Install Cockpit

sudo dnf install cockpit

Setelah proses install, kita akan aktifkan servicesnya dan akan membuatnya otomatis saat ada proses booting. Dan proses mengaktifkan pada proses boot tidak akan bisa dijalankan jika service cockpit belum berjalan, karena itu, yang harus dijalankan adalah service cockpit terlebih dahulu. Tidak sama seperti service lainnya yah, OK.

sudo systemctl start cockpit
sudo systemctl enable --now cockpit.socket

Untuk melihat apakah sudah running atau belum bisa melihat statusnya dengan perintah:

sudo systemctl status cockpit

Setelah itu buka di browser dengan URL IP Address-nya server dengan port 9090, https://192.168.0.248:9090, dan login dengan menggunakan password yang biasa dipakai untuk SSH non-root. Lihat caranya di Setelah Install Rocky Linux, Terus Ngapain?.

Oh iya, tidak sama seperti service lainnya, yang sebelumnya harus kita masukkan ke firewallD agar bisa diakses secara public, karena di Rocky Linux 9 service cockpit default sebagai service yang bertengger di exclude saat kita melakukan install Rocky Linux. Ini salah satu alasan kenapa saya mulai untuk install cockpit.

Anda juga bisa menambahkan komponen lainnya seperti virtual machines, file system browser, file sharing dan lainnya.

cockpit-composer.noarch : Composer GUI for use with Cockpit
cockpit-file-sharing.noarch : Cockpit user interface for managing SMB and NFS file sharing.
cockpit-machines.noarch : Cockpit user interface for virtual machines
cockpit-navigator.noarch : A File System Browser for Cockpit
cockpit-packagekit.noarch : Cockpit user interface for packages
cockpit-pcp.x86_64 : Cockpit PCP integration
cockpit-podman.noarch : Cockpit component for Podman containers
cockpit-session-recording.noarch : Cockpit Session Recording
cockpit-storaged.noarch : Cockpit user interface for storage, using udisks

Untuk mengaktifkan salah satu komponennya tinggal di install nama packagenya, seperti sudo dnf install cockpit-navigator.

Baca juga:  Instalasi Apache, MariaDB dan phpMyAdmin di Ubuntu

Install Nginx

Karena nantinya server yang akan saya gunakan difungsikan juga sebagai web server maka saya memilih Nginx sebagai web servernya dan ini berkaitan juga dengan nantinya dalam pembuatan SSL dari Let’s Encrypt. Karena kalau kita memilih certonly –standalone nantinya akan kerepotan saat proses renewal SSL Let’s Encrypt, karena akan selalu error dikarenakan port 80 sedang digunakan oleh service lain.

Kita mulai dengan meng-install Nginx.

sudo dnf install nginx

Setelah itu kita akan mengaktifkan otomatis di proses booting dan menjalankan servicenya sekarang juga.

sudo systemctl enable nginx
sudo systemctl start nginx

Dan kemudian meng-enable-kan service http dan https di FirewallD.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Instal Certbot

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx

SSL Certificate Let’s Encrypt

Ikuti prosesnya dari perintah berikut:

sudo certbot --nginx -d fileserver.kloningspoon.com

Nah, nanti akan ada pesan sudah berhasil mengambil certificate tetapi error saat proses deploy ke Nginx karena tidak diketemukan block dengan name server dengan domain yang kita request. Tapi santai aja, kita lanjut aja prosesnya, karena yang kita butuhkan adalah certificatenya, hehehe.

Mengaplikasikan SSL Let’s Encrypt Untuk Cockpit

Setelah proses request certificate, saatnya kita memasukan certificatenya untuk digunakan oleh cockpit, dengan perintah:

sudo bash -c "cat /etc/letsencrypt/live/fileserver.kloningspoon.com/fullchain.pem /etc/letsencrypt/live/fileserver.kloningspoon.com/privkey.pem > /etc/cockpit/ws-certs.d/fileserver.kloningspoon.com.cert"

Silakan dicoba lagi untuk web access cockpitnya dengan menggunakan domain yang sudah menggunakan SSL Let’s Encrypt, https://fileserver.kloningspoon.com:9090. Jreng, gak ada error lagi Your connection is not private.

Baca juga:  Setelah Install Rocky Linux, Terus Ngapain?

Renewal Let’s Encrypt

Karena SSL Let’s Encrypt hanya berlaku untuk 3 bulan saja maka kita perlu untuk melakukan langkah otomatis agar kita tidak melakukan secara manual per 3 bulan untuk memperpanjang certificate SSL Let’s Encrypt domain kita.

Karena kita melakukan sebuah command khusus untuk certificate cockpit, maka kita perlu melakukan sebuah tambahan action sebelum dan sesudah proses renewal Let’s Encrypt.

sudo vim /etc/letsencrypt/renewal-hooks/pre/fileserver.kloningspoon.com.sh
#kita akan menghapus terlebih dahulu certificate yang telah dibuat sebelumnya
rm -f /etc/cockpit/ws-certs.d/fileserver.kloningspoon.com.cert

Kita akan merubah permission file yang baru kita buat agar nantinya bisa di eksekusi.

sudo chmod 755 /etc/letsencrypt/renewal-hooks/pre/fileserver.kloningspoon.sh

Setelah itu kita akan memasukkan perintah setelah proses renewal agar menggabungkan certificate yang dibutuhkan oleh cockpit.

sudo vim /etc/letsencrypt/renewal-hooks/post/fileserver.kloningspoon.com.sh
#menggabungkan fullchain dan privkey
cat /etc/letsencrypt/live/fileserver.kloningspoon.com/fullchain.pem /etc/letsencrypt/live/fileserver.kloningspoon.com/privkey.pem > /etc/cockpit/ws-certs.d/fileserver.kloningspoon.com.cert
#restart cockpit setelah proses penggabungan certificate
systemctl restart cockpit

Dan rubah file permission.

sudo chmod 755 /etc/letsencrypt/renewal-hooks/post/fileserver.kloningspoon.com.sh

Setelah itu kita akan mengedit crontab agar mengeksekusi renewal request 2x dalam sehari dengan jam yang berbeda.

sudo crontab -e
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --quiet

OK, selesai. Semoga berhasil.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

÷ six = one