Blog Jekyll, Hosting di Gitlab, Custom Domain dan Setup SSL LetsEncrypt [Bagian 2]

3 menit waktu baca

Selayang Pandang

Pada tulisan sebelumnya, saya telah mendokumentasikan langkah demi langkah untuk instalasi blog Jekyll dengan tema Minimal Mistakes dan mengunggahnya ke hosting Gitlab. Pada tulisan kali ini, kita akan mengubah (custom) domain gitlab.io ke domain pribadi sekaligus mengatur SSL-nya menggunakan Letsencrypt.

Custom Domain Gitlab.io ke Domain Pribadi

Mendaftar/Membeli Domain Pribadi

Sebelum memilih nama domain apa yang akan kamu pakai, pastikan bahwa nama domain tsb masih tersedia. Untuk memilih registrar domain, silakan merujuk ke situs pandi.id; daftar registrar. Saya sendiri memakai registrar domain di Masterweb dengan tambahan layanan “Shared Hosting Linux (Spanel) - MWN PARKING SPANEL”, sehingga langkah berikutnya akan menampilkan ss dari Spanel Masterweb untuk pointing domain ke gitlab.

Pointing Domain Pribadi ke Hosting Gitlab

Login ke SPanel domain » pilih menu Domain » pilih Kelola Domain & DNS » pilih nama domain kamu » Sunting DNS.

Karena saya memakai subdomain blog (blog.namadomainkamu.com), maka pada baris terakhir saya isi:

No. Tipe TTL* Host  
13. A 172800 Blog 52.167.214.135
         

Lihat pada gambar berikut, Catatan : 52.167.214.135 adalah alamat name server namauserdigitlab.gitlab.io. Untuk meyakinkan, silakan cek saja:

wiros4bleng@ts-x:~$ nslookup namauserdigitlab.gitlab.io
;; Got recursion not available from 8.8.8.8, trying next server
Server:		8.8.4.4
Address:	8.8.4.4#53

Non-authoritative answer:
Name:	namauserdigitlab.gitlab.io
Address: 52.167.214.135

Pointing Hosting Gitlab ke Domain Pribadi

Login ke Gitlab » Klik projek namauserdigitlab.gitlab.io » Pilih Settings » Klik Pages » Pilih tombol + New Domain » Atur deskripsi (lihat gambar di bawah) » Klik tombol Create New Domain Selesai, maksimal 1x24 jam blog kamu dengan alamat blog.namadomainkamu.com akan tayang di internet.

Memasang SSL Letsencrypt

Instalasi Cerbot di Ubuntu Mate 17.04

~$ sudo apt-get update
~$ sudo apt-get install software-properties-common
~$ sudo add-apt-repository ppa:certbot/certbot
~$ sudo apt-get update
~$ sudo apt-get install certbot

Untuk Sistem Operasi lain, silakan disesuaikan, ikuti petunjuk di https://certbot.eff.org.

Instalasi dan Konfigurasi SSL Letsencrypt

Buka terminal #1 kemudian tulis:

~$ sudo certbot certonly -a manual -d blog.namadomainkamu.com

# Sesuaikan nama blog.domainkamu.com dengan alamat domain kamu yang asli
# Untuk domain yang lebih dari satu, tinggal tambahkan opsi -d di setiap nama domain, seperti: ~$ sudo certbot certonly -a manual -d blog.namadomainkamu.com -d namadomaindia.com -d namadomaindiayanglain.com -d dia.namadomainkamu.com, dan seterusnya

Pilih Y ketika muncul pesan Are you OK with your IP being logged?, kemudian muncul pesan lain:

ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc.T-0LtyiXZDHMsNHqBUaL8SyMCx9X63za_3hL_ZRL-E0

And make it available on your web server at this URL:

http://blog.namadomainkamu.com/.well-known/acme-challenge/ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc
-------------------------------------------------------------------------------
Press Enter to Continue

Jangan tekan Enter terlebih dahulu. Pesan tersebut menginginkan agar di blog kita terdapat halaman: http://blog.namadomainkamu.com/.well-known/acme-challenge/ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc

Isinya text: ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc.T-0LtyiXZDHMsNHqBUaL8SyMCx9X63za_3hL_ZRL-E0~$

Membuat Halaman Untuk Authorization Letsencrypt

Buka terminal lain (terminal #2)» masuk ke direktori _pages di working directory blog kemudian » buat file acme-challenge.html » simpan » push ke server Gitlab.

~$ nano _pages/acme-challenge.html

Isikan baris berikut:

---
layout: null
permalink: /.well-known/acme-challenge/ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc/
---

ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc.T-0LtyiXZDHMsNHqBUaL8SyMCx9X63za_3hL_ZRL-E0

~$ git add .
~$ git commit -m "menambahkan file acme-challenge.htm"
~$ git push

Tunggu beberapa menit, pastikan bahwa halaman http://blog.namadomainkamu.com/.well-known/acme-challenge/ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc sudah dapat diakses. Cek pakai curl atau tool favorit kamu lainnya.

~s curl http://blog.namadomainkamu.com/.well-known/acme-challenge/ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc
ydE0qpVUxeNLmtWFqP_GcJpLZ7Zu4h7piKCqadBRRsc.T-0LtyiXZDHMsNHqBUaL8SyMCx9X63za_3hL_ZRL-E0

Jika sudah dipastikan benar halaman beserta isinya, masuk ke terminal #1 kemudian tekan Enter setelah pesan “Press Enter to Continue”. Jika sukses, akan muncul pesan lanjutan:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/blog.namadomainkamu.com/fullchain.pem. Your cert
   will expire on 2017-10-16. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"

Konfigurasi SSL Letsencrypt di Hosting Gitlab

Login ke Gitlab » Klik projek namauserdigitlab.gitlab.io » Pilih Settings » Klik Pages » Pilih tombol Remove pada daftar domain blog.namadomainkamu.com.

Buat ulang dengan mengisikan Certificate (PEM) (dapat di-copas dari /etc/letsencrypt/live/blog.namadomainkamu.com/fullchain.pem) dan Key (PEM) (dapat di-copas dari /etc/letsencrypt/live/blog.namadomainkamu.com/privkey.pem).

Login ke Gitlab » Klik projek namauserdigitlab.gitlab.io » Pilih Settings » Klik Pages » Pilih tombol + New Domain » Atur deskripsi (lihat gambar di bawah) » Klik tombol Create New Domain

Silakan tunggu beberapa menit sampai website kamu dapat diakses dengan alamat https://blog.namadomainkamu.com. Untuk pengecekan bisa menggunakan curl atau tools favorit kamu yang lain, termasuk dengan web browser (pastikan “cache dan history” telah dihapus)

UPDATE!

Ada update ns dan konfigurasi TL;DR dari Gitlab, berikut adalah setup TL;DR yang diharuskan oleh Gitlab,

Saya pribadi melakukan pengubahan namadomain, dimana yang saya pakai adalah domain utama (bukan sub domain) yakni tohir.web.id (bukan lagi blog.tohir.web.id), sehingga konfigurasinya pun berubah, berikut konfigurasi sesuai dengan yang disarankan oleh Gitlab:

Tinggalkan komentar