Securing Website with HTTPS (Domain) using Certbot and Google Compute Engine
2023-10-05 | Technology

Persiapan
Pada tutorial kali ini kita membutuhkan:
- Google Cloud Platform (Trial/Berbayar)
- Domain (Bebas mau pake ekstensi apa, disini kita pake .my.id)
Membuat External IP Static
Tujuannya agar pada saat dimatikan atau mengalami kejadian yang tidak terduga, maka IP address tetap sama dan tidak perlu di konfigurasi ulang.
Pergi ke:
VPC Network -> IP Addresses -> RESERVE EXTERNAL IP ADDRESSES.
Abaikan kedua tersebut, karena saya sudah mempunyai 2 VM.
Kemudian setting:
- Nama: (Bebas)
Disini saya memakai nama ip-static-jkt, karena saya akan membuat static IP di Jakarta.
- Network Service Tier: (Bebas juga)
Perbedaan Premium dan Standard adalah kalo premium terbuka semua IP (IPv4 dan IPv6). Lalu untuk region dan global juga terbuka semua.
- IP version: IPv4
Sebenernya ini opsional, karena yang paling sering menggunakan IPv4.
- Type: Regional
Ini juga opsional tapi kita akan memakai regional agar cepat (target client orang indo misalnya).
- Region: (Bebas)
Kita pilih asia-southeast2 karena ini server Jakarta, tapi bebas aja jika ingin region lain.
- Attached: None
Isi none dulu, karena kita belum membuat instance/VM.
Gasss, langsung create/reserve.
Kurang lebih jika sudah selesai akan seperti ini:
Membuat Instance / Virtual Machine dan Konfigurasinya
Seperti biasa, langsung saja ke Compute Engine -> VM Instance -> Create Instance.
Konfigurasikan:
- Nama: (Bebas)
- Region: (Sesuaikan dengan yang tadi, disini kita memakai asia-southeast2 atau Jakarta)
- Zone: (Bebas)
- Machine Type: (bebas ambil yang murah aja kalo buat coba-coba)
- Boot Disk: (Bebas, tapi harus pake debian. Karena ini tutor pake debian eheheh)
- Firewall:
Lalu kita ke Advanced Option, lalu ke Networking dan Network Interfaces.
Biarkan semua default, kecuali pada External IPv4 Addresses. Kita ganti menjadi IPv4 yang tadi kita sudah buat diawal (Disini dengan nama ip-static-jkt).
Untuk IP Internal kita biarkan random saja, bisa juga dicustom, caranya tidak jauh berbeda dengan ini.
Lalu pencet done dan create. Tunggu hingga Instance/VM selesai dibuat.
Jika sudah selesai, kita masuk memakai SSH. Bebas sih sebenernya mau pake apa juga, yang penting masuk VM dulu.
Setelah masuk, kita install apache2 untuk web servernya.
sudo apt-get update
sudo apt-get install apache2 -y
Oke, lalu kita coba pastikan apache2 sudah aktif dengan cara kita bisa mengunjungi External IP Address yang ada atau bisa juga dengan perintah:
sudo systemctl status apache2
setelah itu kita minimize/tutup sementara terminalnya.
Setting DNS
Kita masuk ke Network Services -> Cloud DNS -> Create Zone.
Lakukan setting:
- Zone Type: Public
- Zone Name: (Bebas)
- DNS Name: <Nama_Domain>
Sisanya biarkan default. Lalu Create.
Lalu kita sesuaikan dengan cara tekan nama yang tadi kita sudah buat.
Kita akan membuat konfigurasi baru, dengan tekan Add Standard.
Masukan IPv4 Address External dari VM yang tadi sudah kita buat, untuk DNS Name kita kosongkan saja. Dan tekan Create.
Lalu kita buat Record baru lagi seperti tadi.
Untuk DNS Name kita isi dengan www, untuk Resource ganti dengan CNAME, dan tambahkan domain kalian.
Tekan tanda panah, untuk menampilkan Name server
Lalu kita pergi ke manage domain, disini saya memakai rumah web. (Menu untuk Name Server pasti ada disemua penyedia layanan domain, cuma letaknya saja yang berbeda)
Kita pergi ke menu Name Server
Isikan Domain Server tadi, lalu change name server.
Pastikan mengisi domain server tanpa tanda apapun dibelakangnya, misalnya titik (pada contoh gambar).
Setelah sukses, tunggu beberapa menit atau max 24 jam. Selagi menunggu kita lanjut ke step berikutnya.
Install Certbot untuk membuat HTTPS
Lakukan perintah:
sudo apt install certbot python3-certbot-apache
Lalu kita membuka file konfigurasi dari apache2 dengan perintah:
cd /etc/apache2/sites-available/
Lalu kita lihat disana ada file apa saja dengan ls
, karena kita default maka kita pake 000-default.conf. Atau jika kalian sudah mempunyai configuration sendiri bisa memakainya. Lalu kita edit
sudo nano 000-default.conf
Lalu tambahkan dengan:
ServerName <nama_domain>
ServerAlias <www.nama_domain>
Setelah itu save.
Lalu masukan perintah:
sudo apache2ctl configtest
pastikan respon Syntax OK, dan lakukan reload server
sudo systemctl reload apache2
Lalu masukan perintah untuk membuat SSL:
sudo certbot --apache
-
Pada bagian email bisa kalian isikan email kalian untuk mendapatkan notifikasi.
-
Pada Term of Service bisa kita YES
-
Pada Sponsorship bisa kita NO (Atau YES juga bisa)
-
Pada menu pilih domain kita biarkan kosong (Langsung Enter) itu berarti semuanya kita pasang sertifikat.
Seharusnya sampai disini, kita sudah SELESAI karena sudah tersambung dengan domain dan terpasang Sertifikat SSL.
Membuat Auto Renew Sertifikat / SSL
Lakukan perintah untuk memastikan ssl terpasang dengan baik.
sudo certbot renew --dry-run
Lalu masukan perintah untuk mengatur jadwal pembaruan otomatis.
sudo crontab -e
dan masukan kode, untuk mengatur 1x 12jam, atau 2x dalam 24jam. Ini opsional bisa diganti sesuai keperluan.
0 */12 * * * /usr/bin/certbot renew --quiet
Kemudian save dan exit.