Nap Menu's



Github

LinkedIn

Instagram

Copyright © 2025

Securing Website with HTTPS (Domain) using Certbot and Google Compute Engine

2023-10-05 | Technology

Securing Website with HTTPS (Domain) using Certbot and Google Compute Engine

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.

Selesai