Memanfaatkan Layanan SSL/TLS Bebas Dari Let's Encrypt Untuk GitLab Edisi Komunitas

SSL (secure Socket Layer) atau TLS (Transport Layer Security) merupakan protokol kriptografi untuk menyediakan komunikasi yang aman melalui internet. Layanan TLS biasanya diterbitkan oleh suatu lembaga yang telah mengantongi izin dari pemerintah setempat dengan menyediakan layanan kunci publik dan kunci privat, lembaga tersebut dikenal dengan lembaga penerbit certificate authority.

Tahukah anda, untuk menerbitkan CA anda harus mengelontorkan sejumlah pengeluaran. Itu adalah hal yang wajar, mengingat harga tentu akan sebanding dengan fitur yang ditawarkannya. Rego gowo rupo, begitu kata orang Jawa.

Anda tidak perlu khawatir, saat ini, hampir penyedia jasa layanan hosting telah memasukkan layanan TLS pada setiap paketnya, tentu ini akan semakin murah. Namun, bagi anda yang membangun sendiri layanan, misalkan melalui VPS mandiri, tentu anda harus sedikit menambah anggaran anda.

Tenang, bagi anda yang memilih untuk membangun layanan mandiri di VPS dan tidak ada anggaran untuk menerbitkan sertifikat authority, kini ada solusinya, pakai saja jasa dari Le'ts Encrypt.

Let's Encrypt merupakan lembaga penerbit sertifikat otoritas yang memegang teguh semboyan open certificate authority. Layanan ini disediakan oleh Internet Security Research Group (ISRG) secara bebas dan dijalankan untuk kepentingan publik.

Lalu, bagaimana penerapan Let's Encrypt untuk VPS pribadi ? Berikut ulasannya.

Persiapan



  • Sebuah VPS yang telah memiliki domain, domain yang digunakan harus nyata dan sudah terdaftar, tidak abal-abal.

  • Rasa penasaran yang besar.


Implementasi


Saya menerapkan layanan TLS dari Let's Encrypt pada VPS yang menjalankan sistem operasi Debian GNU/Linux 9 dan telah terpasang GitLab. Sehingga inti dari tutorial ini adalah menggunakan layanan TLS dari Let's Engcrypt untuk GitLab edisi komunitas.

Instalasi Paket Pendukung


Agar dapat menggunakan layanan TLS dari Let's Encrypt di sistem operasi Debian GNULinux, anda memerlukan paket certbot, Let's Encrypt client.
$ sudo apt install certbot

Mempersiapkan Let's Encrypt Untuk Verifikasi Domain


Pertama-tama, anda membutuhkan sebuah direktori untuk acuan pada custom konfigurasi EngineX.
$ sudo mkdir -p /var/www/letsencrypt

Buka konfigurasi GitLab yang ada di direktori /etc/gitlab/.

$ sudo nano /etc/gitlab/gitlab.rb

Setelah itu carilah baris nginx['custom_server_config'] dengan memanfaatkan fitur pencarian. Jika anda menggunakan editor nano, anda dapat menggunakan kombinasi tombol Ctrl W. Hapus tanda pagar (#) yang ada awal baris konfigurasi hingga menjadi seperti ini:
nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }"

Simpan konfigurasi lalu konfigurasikan ulang GitLab-nya.
$ sudo gitlabctl-reconfigure

Mengajukan Permohonan Penerbitan Sertifikat dengan Certbot


Kedua, ajukan permohonan penerbitan sertifikat menggunakan certbot, berikut perintahnya:
$ sudo certbot certonly --webroot --webroot-path=/var/www/letsencrypt -d domain_anda

Opsi domain_anda dapat anda ganti dengan domain milik anda.

Sesaat setelah anda mengeksekusi perintah diatas, anda akan mendapatkan informasi seputar penerbitan sertifikat. Anda akan dimintai untuk memasukkan surel dan menyetujui prosesnya. Ikuti saja instruksi dari Certbot. Setelah selesai, Certbot juga akan memberitahu kepada anda letak sertifikat yang telah diterbitkan, anda dapat menjumpai sertifikat ada di direktori /etc/letsencrypt/live/domain_anda/.
$ sudo ls /etc/letsencrypt/live/domain_anda/

Maka anda akan menjumpai beberapa berkas berekstensi .pem, diantaranya cert.pem, chain.pem, fullchain.pem, dan privkey.pem. Untuk kebutuhan implementasi, anda hanya memerlukan fullchain.pem sebagai kunci publik anda dan privkey.pem sebagai kunci pribadi anda.

Konfigurasi GitLab Agar Menggunakan Sertifikat Let's Encrypt


Ketiga, buka kembali berkas konfigurasi GitLab dengan editor nano.
$ sudo nano /etc/gitlab/gitlab.rb

Temukan baris konfigurasi external_url lalu ubah http menjadi https.
external_url 'https://your_domain'

Selanjutnya, temukan baris konfigurasi redirect_http_to_https, ubah nilainya dari false menjadi true.
nginx['redirect_http_to_https'] = true

Selanjutnya, temukan kembali dua baris konfigurasi, yaitu ssl_certificate dan ssl_certificate_key untuk memasang kunci publik dan privat. Kemudian ubah PATH-nya dan arahkan ke tempat kunci-kunci anda. Ingat, hilangkan dulu tanda pagarnya (#).
nginx['ssl_certificate'] = "/etc/letsencrypt/live/domain_anda/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/domain_anda/privkey.pem"

Konfigurasikan ulang GitLab.
$ sudo gitlabctl-reconfigure

Sampai pada langkah ini, anda telah menerapkan layanan SSL/TLS untuk situs GitLab anda.

Referensi


https://letsencrypt.org/about/

https://gitlab.com/umam212/install-gitlab-ce

https://www.digitalocean.com/community/tutorials/how-to-secure-gitlab-with-let-s-encrypt-on-ubuntu-16-04

Komentar

Postingan populer dari blog ini

Implementasi IPv6 TunnelBroker untuk Server WordPress Self Host

Daftar Rekomendasi Repositori Lokal Debian 11 "Bullseye"

Koneksi Internet Bermasalah di Ubuntu 18.04, Berikut Cara Memperbaikinya