Pembuka
Pada tanggal 29 Maret 2022 kemarin, pihaknya baru saja mengumumkan bahwa mereka sudah meluncurkan layanan CA mereka dan server ACME-nya secara publik, yakni “Google Public CA”, yang mana dapat digunakan oleh siapa saja, termasuk orang yang tidak menggunakan layanan dari Google sekali pun untuk aplikasinya, tapi saat itu masih dalam uji coba terbatas dan itu tidak publik.
Pengumumannya dapat Anda baca di sini.
Tapi sejak tanggal 25 Mei 2023 berdasarkan halaman ini, layanan tersebut mulai dapat dinikmati oleh semua pengguna umum, baik yang menggunakan layanan dari Google atau pun yang tidak sama sekali.
Artinya apa? Ini artinya bahwa Anda bisa mendapatkan/menggunakan sertifikat SSL/TLS dari Google tanpa harus menggunakan layanan/hosting dari Google terlebih dahulu untuk web, blog atau aplikasinya.
Untuk saat ini, Anda bisa mendapatkan sertifikat tersebut secara gratis, mendukung RSA/ECC sebagai algoritma kunci publik dan mendukung penerbitan dalam bentuk Wildcard juga.
Selain itu, sertifikat yang diterbitkan merupakan sertifikat langsung dari “Google Trust Services (GTS)”, yang kompatibilitas perangkatnya tidak perlu diragukan lagi dan menggunakan infrastruktur dari Google untuk menerbitkannya.
Persiapan
Karena ini sepenuhnya menggunakan protokol ACME dan ini bersifat Self-managed, maka tentu saja tidak ada antarmuka pengguna dari Google secara langsung untuk mengelolanya.
Jadi, persiapan yang perlu Anda lakukan adalah sebagai berikut:
- Punya Akun Google (Kalau kamu pengguna Android, ya gak usah ditanya lah yaa)
- Punya koneksi Internet (Kalau Internet aja gak punya, gimana kamu bisa baca artikel ini?)
- Terinstalnya perkakas klien ACME di dalam perangkat kamu, entah itu di dalam Komputer PC, Laptop, Server/VPS, Ponsel Pintar, atau lainnya.
Di instruksi kali ini, saya akan memakai acme.sh sebagai perkakas klien ACME yang merupakan salah satu perkakas favorit saya. Untuk pengguna Certbot, Anda dapat membaca tutorial resminya di sini, di tutorialnya memakai perkakas Certbot juga.
Jadi, maaf yah buat pengguna Lego dan lainnya, saya belum bisa menjelaskannya, karena saya belum pernah pakai.
Namun, kalau kamu sebelumnya pernah memasang sertifikat SSL/TLS dari ZeroSSL dengan membaca artikel saya sebelumnya yang panjang kali lebar itu, pasti perkakas tersebut sangatlah familiar bagi Anda.
Jika Anda menggunakan acme.sh sebagai perkakasnya, silakan perbarui terlebih dahulu versinya dengan perintah berikut:
acme.sh --upgrade --auto-upgrade
Kalau mau, Anda juga dapat membaca artikel saya sebelumnya, siapa tahu mau nambah ilmu (terutama tentang pemasangan sertifikat SSL/TLS ke Netlify, Bunny CDN, cPanel dan DirectAdmin, serta me-renew secara otomatis), tapi kalau gak dibaca juga gak apa-apa.
Setelah semuanya sudah siap, gak usah banyak cing-cong, mari langsung eksekusi!
Membuat Proyek di Google Cloud Console
Pertama-tama, Anda perlu membuat sebuah Proyek (bahasa Inggrisnya: Project) di “Google Cloud Console” (Sebelumnya bernama “Google Developer Console”). Ini nantinya diperlukan karena kamu akan mengakses API-nya.
Sebagai catatan, Anda tidak perlu memasukkan kartu kredit/debit hanya untuk menambahkan proyek di sana, jadi Anda bisa melakukan semuanya secara gratis. Namun, kuotanya terbatas untuk 10 proyek saja per akun.
Jadi, jika kamu sebelumnya telah membuat proyek di sana, maka saya sarankan kamu lewati ini dan pakai proyek yang ada saja, cukup simpan saja “Project ID” pada proyek yang telah Anda buat sebelumnya, karena itu akan dipakai.
Jika belum, Anda bisa membuatnya melalui “Cloud Shell” yang ada di “Google Cloud Console”-nya, caranya berikut ini:
Langkah ke-1: Masuk ke “Google Cloud Console”-nya
Langkah ke-2: Setelah masuk, aktifkan “Cloud Shell”-nya dengan klik pada ikon Terminal di pojok kanan atas, seperti pada cuplikan berikut:

Kalau ada konfirmasi “Authorize Cloud Shell”, klik “Authorize” dan gunakan akun Anda jika disuruh memilih.
Catatan: Sebenarnya kamu dapat menggunakan Google Cloud CLI sebagai gantinya, cuma ya artikel ini juga menyasar kalangan yang belum pernah pake layanan Google Cloud Console atau kalangan yang tidak ingin menginstalnya (termasuk saya sendiri), jadi ya saya cuma bahas pakai Cloud Shell-nya aja.
Langkah ke-3: Di “Cloud Shell”-nya, silakan buat proyeknya dengan perintah berikut:
gcloud projects create <PROJECT_ID>
Tentukan sendiri ID Proyeknya (Project ID) dengan menggantikan <PROJECT_ID>-nya. ID Proyek haruslah unik, boleh terdiri dari tanda strip, angka dan huruf kecil, tidak boleh selain itu.
Contoh:
gcloud projects create test-project-3049113
test-project-3049113 adalah contoh ID Proyek yang saya buat, silakan ganti ID tersebut dan tentukan sendiri ID Proyeknya dengan unik.
Langkah ke-4: Setelah menentukan ID Proyeknya, silakan tekan “Enter”, nanti secara otomatis akan dibuatkan proyeknya. Jika ini berhasil, maka keluarannya akan seperti berikut:
| |
Kira-kira akan seperti di atas.
Langkah ke-5: Jika berhasil, maka sebaiknya kamu simpan ID dari proyek tersebut dengan baik di dalam perangkat kamu.
Jika semua sudah selesai, tinggal langsung aktifkan saja.
Mengaktifkan Akses API-nya dan membuat kredensial EAB
Setelah dibuat, Anda perlu mengaktifkan Akses API-nya terlebih dahulu dan berikan izin akses untuk membuat kredensial EAB-nya.
Caranya seperti berikut:
Langkah ke-1: Masuk ke “Google Cloud Console”-nya
Langkah ke-2: Setelah masuk, silakan aktifkan “Cloud Shell”-nya dengan klik pada ikon Terminal di pojok kanan atas. Kalau ada konfirmasi “Authorize Cloud Shell”, klik “Authorize” dan gunakan akun Anda jika disuruh memilih.
Catatan: Sebenarnya kamu dapat menggunakan Google Cloud CLI sebagai gantinya, cuma ya artikel ini juga menyasar kalangan yang belum pernah pake layanan Google Cloud Console atau kalangan yang tidak ingin menginstalnya (termasuk saya sendiri), jadi ya saya cuma bahas pakai Cloud Shell-nya aja.
Langkah ke-3: Di “Cloud Shell”-nya, pastikan Anda memilih proyek mana yang ingin diaktifkan Akses API-nya:
gcloud config set project <PROJECT_ID>
Ganti <PROJECT_ID> dengan ID Proyek Anda.
Langkah ke-4: Berikan izin untuk membuat kredensial EAB dengan perintah berikut di dalam “Cloud Shell”-nya:
gcloud projects add-iam-policy-binding <PROJECT_ID> \
--member=user:<USER> \
--role=roles/publicca.externalAccountKeyCreator
Ganti <PROJECT_ID> dengan ID Proyek Anda.
Ganti <USER> dengan Alamat Surel untuk akun Google Anda atau Alamat Surel lain yang ingin Anda tambahkan izinnya.
Langkah ke-5: Aktifkan Akses API-nya dengan perintah berikut:
gcloud services enable publicca.googleapis.com
Langkah ke-6: Setelah diaktifkan, buatlah kredensial EAB-nya dengan perintah berikut:
gcloud publicca external-account-keys create
Jika berhasil, nanti keluarannya akan seperti berikut:
[b64MacKey: Qxxx_dxxxxxxxxxxxxxxxxxxxxx_cxxx-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
keyId: bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
Hal yang perlu diperhatikan/dicatat adalah bahwa:
- Nilai dari
b64MacKeyadalah “EAB HMAC Key”-nya - Nilai dari
keyIdadalah “EAB Key ID” atau “EAB KID”-nya
Jangan lupa simpan hasil keluaran tersebut itu baik-baik karena akan dipakai nantinya oleh perkakas klien ACME dan pastikan bahwa tidak ada seorang pun yang mengetahui itu, kecuali Anda sendiri.
Kredensial EAB yang tidak digunakan hanya bertahan selama 7 hari dan hanya bisa dipakai sekali saja, tapi akun untuk server ACME yang telah Anda daftarkan menggunakan kredensial tersebut tidak memiliki masa berlaku.
Jadi, buruan dipakai kredensial EAB-nya setelah ini.
Jika Anda ingin membuat kredensial EAB lagi, maka langkah-langkahnya hampir sama dengan di atas, hanya saja kamu tidak perlu lagi mengikuti langkah ke-4 dan ke-5, karena akses API-nya sudah aktif dan kamu sudah menambahkan izin sebelumnya.
Membuat Kredensial EAB untuk Mode Pementasan/Uji coba
Yap, Anda tidak salah lihat, server ACME dari Google Public CA itu sendiri memiliki fasilitas yang memungkinkan penggunanya untuk menguji penerbitan sertifikat dalam mode pementasan (Staging Mode).
Ini sangat berguna bagi Anda yang ingin menguji coba proses penerbitan sertifikat berlangsung ataupun bagi yang sedang mempelajari klien ACME yang sedang digunakan, entah itu sekadar mengecek kredensial DNS yang dipakai, menguji coba konfigurasi yang telah ditetapkan, dll, tanpa mempengaruhi rate limit aslinya.
Caranya hampir sama dengan yang di atas, hanya saja sebelum kredensial itu dibuat atau setelah langkah ke-5 di atas, ada langkah-langkah ke depan yang cukup berbeda dari yang biasanya, lanjutan langkah-langkahnya menjadi sebagai berikut:
Langkah ke-6: Anda perlu mengganti alamat URL Endpoint untuk Google Public CA-nya dengan perintah berikut, lalu tekan “Enter”:
gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Langkah ke-7: Setelah menggantikan alamat URL Endpoint-nya, Anda perlu membuat kredensial EAB dengan perintah yang sama. Kalau belum yakin, lupa atau merasa malas, Anda bisa copy-paste perintah berikut:
gcloud publicca external-account-keys create
Jika berhasil, nanti keluarannya akan seperti berikut:
[b64MacKey: Qxxx_dxxxxxxxxxxxxxxxxxxxxx_cxxx-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
keyId: bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
Hal yang perlu diperhatikan/dicatat adalah bahwa:
- Nilai dari
b64MacKeyadalah “EAB HMAC Key”-nya - Nilai dari
keyIdadalah “EAB Key ID” atau “EAB KID”-nya
Selain hal di atas, hal yang perlu Anda catat adalah bahwa kredensial EAB yang Anda buat barusan adalah kredensial EAB untuk Mode Pementasan, jadi pastikan Anda memisahkan kredensial EAB untuk produksi dan mode pementasan jika Anda pernah membuat kredensial EAB sebelumnya.
Simpanlah kredensial tersebut dengan baik.
Langkah ke-8: Setelah selesai mencatat, Anda perlu mengembalikan alamat URL Endpoint-nya seperti semula dengan perintah berikut:
gcloud config unset api_endpoint_overrides/publicca
Setelah ini semua, pakai kredensialnya secepat mungkin, karena kredensial tersebut cuma bertahan selama 7 hari setelah pembuatan jika tidak dipakai dan hanya bisa dipakai sekali saja.
Meski begitu, akun untuk server ACME yang telah Anda daftarkan menggunakan kredensial tersebut tidak memiliki masa berlaku.
Jika Anda ingin membuat kredensial EAB lagi, maka langkah-langkahnya hampir sama dengan di atas, hanya saja kamu tidak perlu lagi mengikuti langkah ke-4 dan ke-5, karena akses API-nya sudah aktif dan kamu sudah menambahkan izin sebelumnya.
Mengkaitkan Kredensial EAB dengan Perkakas Klien ACME
Setelah membuat kredensial EAB-nya, sekarang waktunya Anda gunakan kredensial tersebut ke dalam perkakas klien ACME dalam rangka mendaftarkan sebuah “akun” untuk server ACME-nya, dalam instruksi kali ini saya memakai acme.sh sebagai perkakas klien untuk protokol ACME-nya.
Untuk mendaftarkan sebuah akun dengan menggunakan Kredensial EAB yang telah dibuat sebelumnya, Anda dapat menggunakan perintah berikut:
acme.sh --register-account -m <ALAMAT_SUREL_KAMU> \
--eab-kid <EAB_KID_KAMU> \
--eab-hmac-key <EAB_HMAC_KEY_KAMU> \
--server google
Ganti:
<ALAMAT_SUREL_KAMU>menjadi alamat surel kamu<EAB_KID_KAMU>menjadi “EAB KID” yang telah kamu simpan sebelumnya<EAB_HMAC_KEY_KAMU>menjadi “EAB HMAC Key” yang telah kamu simpan sebelumnya
Jika ingin mendaftarkan sebuah akun untuk mode uji coba atau pementasannya, Anda bisa mengganti google pada argumen --server menjadi googletest dan pastikan bahwa Anda menggunakan kredensial EAB yang tepat untuk itu.
Jika registrasi berhasil, maka Anda sudah mulai bisa menerbitkan sertifikat SSL/TLS dengan menggunakan “Google Public CA”, lalu bisa Anda kelola sesuka hati menggunakan perkakas acme.sh.
Menerbitkan sertifikat SSL/TLS dari Google
Untuk menerbitkan sertifikat SSL/TLS dari Google melalui acme.sh, maka Anda hanya perlu pelajari contoh perintah berikut:
acme.sh --issue \
-d "*.contoh.com" \
-d contoh.com \
--dns dns_cf --server google
Perintah di atas akan menerbitkan sertifikat SSL/TLS dengan menggunakan “Google Public CA” sebagai CA-nya, sertifikat tersebut mencakup hanya untuk domain *.contoh.com dan contoh.com saja dengan menggunakan layanan DNS dari Cloudflare sebagai metode verifikasinya.
Selain itu, perintah di atas juga secara baku akan menerbitkan sertifikat dengan kunci ECC, kalau kamu ingin menggunakan kunci RSA, maka tambahkan parameter -k 4096, 4096 di sini adalah ukuran kunci RSA yang akan digunakan, yakni 4096-bit, Anda dapat menggantinya menjadi 2048, 3072, atau 8192.
Jika Anda sudah lama menggunakan acme.sh sebelumnya, maka harusnya sudah familiar dengan perintah di atas yang sebenarnya cuma nambahin parameter --server google saja. Kalau belum pernah sama sekali menggunakannya, saran saya kamu pelajari itu di artikel saya sebelumnya.
Anda juga bisa menggantikan google pada parameter --server menjadi googletest jika Anda ingin menguji coba proses penerbitan sertifikat tanpa harus mempengaruhi rate limit aslinya.
Jika ingin menerbitkan sertifikat SSL/TLS dengan rantai murni ECC, Anda dapat menambahkan parameter --profile minimal agar GTS menerbitkan sertifikatnya menggunakan profil minimal.
Contoh perintahnya menjadi seperti berikut:
acme.sh --issue \
-d "*.contoh.com" \
-d contoh.com \
--dns dns_cf \
--profile minimal \
--server google
Perintah di atas akan menerbitkan sertifikat SSL/TLS dengan profil minimal dan tentu menggunakan rantai ECC penuh, tapi ini akan menghilangkan beberapa ekstensi seperti subject:commonName (atau disebut Common Name), subjectKeyIdentifier (SKID), basicConstraints dan keyEncipherment, yang mungkin saja bakal mempengaruhi kompatibilitas perangkat.
Untuk nama profil mana saja yang dapat digunakan, silakan kunjungi halaman resminya, secara baku GTS menggunakan profil standard yang mana kita belum bisa memilih rantai kepercayaan sendiri dan tidak memakai rantai murni ECC.
Perkakas acme.sh menggunakan ZeroSSL sebagai CA baku, sehingga Anda tetap diharuskan untuk menggunakan parameter --server setiap kali menerbitkan sertifikat SSL/TLS baru dari Google.
Jika Anda ingin menggantikan CA bakunya, Anda bisa memakai perintah berikut:
acme.sh --set-default-ca --server google
Dengan begini, Anda tidak perlu lagi memakai parameter --server hanya sekadar menerbitkan sertifikat SSL/TLS dari Google saja.
Nah, artikelnya saya cukupkan sampai sini saja. Jika Anda mempunyai pertanyaan lain, silakan tanyakan itu di kolom komentar yang tersedia, tapi sebelum bertanya, ada baiknya bila Anda membaca dan memahami pertanyaan yang (akan) sering ditanya beserta jawabannya agar bisa menjadi referensi buat Anda.
Pertanyaan yang (akan) sering ditanyakan
Pertanyaan ke-1: Apakah saya perlu memasukkan kartu kredit/debit terlebih dahulu agar dapat menggunakan Google Cloud Console?
Seharusnya tidak perlu kamu masukkan dan semua itu bisa Anda lakukan secara gratis tanpa membayar biaya sepeser pun.
Hanya saja, maksimum proyek yang bisa Anda buat adalah sebanyak 10 proyek per Akun. Jadi, jika Anda pernah memiliki/membuat proyek sebelumnya di “Google Cloud Console” atau Google Developer Console, maka saya sangat menyarankan agar memakai proyek yang ada saja.
Pertanyaan ke-2: Apakah semua sertifikat SSL/TLS yang diterbitkan oleh Google Public CA ini gratis?
Ya, sepenuhnya gratis. Semua jenis sertifikat TLS (Standar, Multi-domain, dan Wildcard) dengan algoritma RSA atau ECC dapat diterbitkan secara gratis via protokol ACME. Namun, ini bersifat self-managed, artinya Anda bertanggung jawab penuh atas pengelolaannya tanpa dukungan langsung dari Google.
Pertanyaan ke-3: Berapa lama masa aktif sertifikat SSL/TLS dari Google Public CA ini?
Sertifikat Google Trust Services berdurasi maksimum 90 hari. Standar ACME memungkinkan permintaan masa aktif lebih singkat, bahkan hingga 1 hari dan Google mampu mengikutinya.
Namun, Google menyarankan minimum 3 hari untuk menghindari masalah ketidaksesuaian waktu sistem atau tumpang tindih validitas yang dapat mengakibatkan gangguan akses.
Pertanyaan ke-4: Bagaimana caranya agar saya bisa menerbitkan sertifikat SSL/TLS dengan masa aktif kurang dari 90 hari?
Di acme.sh, Anda bisa tambahkan parameter --valid-to <tanggal waktu> saat ingin menerbitkan sebuah sertifikat.
Contoh:
acme.sh --issue \
-d "*.contoh.com" \
-d contoh.com \
--dns dns_cf --valid-to "+30d"
Perintah di atas akan menerbitkan sertifikat SSL/TLS untuk domain *.contoh.com dan contoh.com dengan masa berlaku selama 30 hari.
Contoh lainnya:
acme.sh --issue \
-d "*.contoh.com" \
-d contoh.com \
--dns dns_cf --valid-to "+30h"
Sama seperti perintah sebelumnya, bedanya hanya masa aktifnya selama 30 jam saja.
Format yang diterima oleh parameter di atas adalah +*d dan +*h saja, selain itu akan ditolak.
Selain menggunakan format relatif, Anda juga dapat menggunakan format absolut dengan menentukan tanggal dan waktunya secara lengkap. Penulisan tanggal dan waktunya harus memenuhi standar ISO 8601 atau sesuai dengan format RFC3339, sehingga ditulis seperti ini: 2022-04-01T08:10:33Z
Contoh:
acme.sh --issue \
-d "*.contoh.com" \
-d contoh.com \
--dns dns_cf --valid-to "2022-04-01T08:10:33Z"
Perintah di atas akan menerbitkan sertifikat SSL/TLS untuk domain *.contoh.com dan contoh.com dengan masa berlaku pada tanggal 01 April 2022 dengan pukul 08:10:33 dalam waktu UTC.
Menggunakan format absolut membuat acme.sh tidak sanggup memperbarui sertifikatnya secara otomatis, jadi disarankan pakai format relatif. Untuk lebih lanjut, silakan kunjungi halaman dokumentasinya.
Pertanyaan ke-5: Apakah sertifikat SSL/TLS Google Public CA merupakan sertifikat langsung Google Trust Services (GTS)? Bagaimana kompatibilitasnya?
Ya, langsung dari GTS. Kompatibilitas bisa dijamin melalui karena dua hal berikut:
- Cross-sign dengan GlobalSign Root CA - R1 (Halaman demonya di sini) yang telah tersedia secara luas sejak 1999 dan berlaku dari tahun 1998.
- Penggunaan aktif di seluruh layanan Google termasuk Penelusuran, YouTube, dan Google Drive ini membuktikan kompatibilitas perangkat yang sangat baik.
Sehingga Anda tidak perlu khawatir tentang masalah kompatibilitas, ada halaman demo yang dapat Anda coba juga.
Menerbitkan sertifikat dengan profil minimal pun akan mendapatkan GTS Root R4 yang Cross-sign dengan GlobalSign Root CA - R1 juga.
Saya tidak tahu pasti bagaimana kompatibilitasnya, tapi mengingat ada 4 ekstensi yang terhapus termasuk subject:commonName, mungkin ini akan mempengaruhi kompatibilitas pada perangkat yang lebih lama, terutama sebelum Windows 7 SP1 karena bisa jadi mereka bergantung pada ekstensi-ekstensi tersebut, jadi coba saja pasang saja sertifikat itu di perangkat yang lebih lama kalau mau, toh itu tergantung perangkat lunak yang kamu pakai juga.
Pertanyaan ke-6: Sebelumnya saya sudah membuat kredensial EAB-nya, lalu bagaimana cara membuatnya lagi?
Padahal sudah saya bahas di dalam artikel ini, ya sudah saya bahas lagi di sini.
Mudah saja, cukup masuk ke Google Cloud Console -> Lalu buka Cloud shell-nya dan lakukan otorisasi -> Pastikan ID proyeknya sudah dipilih dan sesuai, lalu jalankan perintah berikut:
gcloud publicca external-account-keys create
Setelah itu tinggal catat saja, serta daftarkan akun seperti biasa sebelum 7 hari, ya cuma itu saja yang perlu kamu lakukan tanpa perlu mengganti URL (kecuali kalau kamu ingin membuatnya untuk mode pementasan) ataupun membuat izin IAM dan lainnya.
Pertanyaan ke-7: Kalau saya menerbitkan sertifikat SSL/TLS dengan memakai ECC sebagai algoritma kunci publiknya, apakah rantai yang dipakai itu murni ECC juga?
Sayangnya, belum untuk profil standar. Tapi iya kalau kamu menggunakan profil minimal.
Pertanyaan ke-8: Saya memakai perkakas ACME selain acme.sh, seperti Certbot, apa alamat URL untuk direktori ACME-nya?
Alamat URL-nya sebagai berikut:
Server Produksi (baku):
https://dv.acme-v02.api.pki.goog/directory
Server Uji coba:
https://dv.acme-v02.test-api.pki.goog/directory
Pertanyaan ke-9: Apakah sertifikat TLS dengan ekstensi SXG ini dapat diinstal di web server yang tidak mendukung SXG? Dan, bagaimana akses dari peramban web yang tidak mendukungnya juga?
Sertifikat TLS tersebut harusnya dapat dipasang pada web server normal pada umumnya yang tidak mendukung SXG, contohnya saya memasang sertifikat tersebut ke Bunny CDN yang tidak mendukung SXG secara resmi, jadi harusnya di web server biasa pun bisa.
Saat diakses menggunakan peramban web yang tidak mendukung SXG pun seperti Mozilla Firefox, Zen Browser dan keluarga bisa-bisa saja diakses seperti biasa, palingan tidak dapat menggunakan fitur SXG-nya saja.
Walau begitu saya tidak terlalu direkomendasikan untuk menggunakan sertifikat TLS dengan tambahan ekstensi ini, apalagi kalau web server-nya tidak mendukung fitur ini, terlebih standar yang digunakan saja masih belum benar-benar matang sampai sekarang.
Jadi kalau kamu ada masalah saat penggunaan, saya sarankan beralih lagi ke sertifikat TLS biasa.
PEMBARUAN Jum’at, 21 Agustus 2026: Sejak bulan Juli 2026 kemarin, Google Trust Services mengumumkan bahwa varian SXG akan dihentikan karena standarnya sendiri belum diterapkan secara luas, pas tanggal 30 September 2026 nanti penerbitan akan dialihkan sepenuhnya untuk menerbitkan sertifikat TLS biasa, meninggalkan SXG sepenuhnya. Pengumumannya bisa dibaca di sini, jadi lebih baik pakai sertifikat TLS biasa sekalian.
Pertanyaan ke-10: Kenapa kamu memakai acme.sh?
Perkakas acme.sh dipilih karena alasan berikut:
- Ringan dan simpel
- Pengelolaan yang sangat fleksibel
- Fiturnya lengkap, seperti:
- Dukungan penyedia DNS yang banyak (termasuk Cloudflare DNS, Netlify DNS, Bunny DNS, dll)
- Pilihan CA yang cukup banyak (Let’s Encrypt, ZeroSSL, SSL.com dan Google Trust Services)
- Bisa menggunakan CA kustom
- Pengelolaan sertifikat (meliputi penerbitan, pencabutan, penghapusan, konfigurasi, penginangan, dan pembaruan sertifikat)
- Menggunakan Cron job untuk memperbarui sertifikat secara otomatis
- Dan lain-lain
- Tidak memerlukan akses root sehingga lebih aman
- Berbasis Shell yang portabel dan kompatibel di hampir semua sistem operasi
- Semuanya (termasuk konfigurasinya) terpusat di satu folder, yakni
~/.acme.shsehingga mudah dipindahkan ke perangkat lain
Alasan-alasan tersebutlah yang membuat saya secara pribadi lebih menyukai ini ketimbang perkakas klien ACME berbasiskan CLI lainnya, seperti Certbot misalnya.
Tapi, ada satu lagi klien ACME yang mana itu terbaik buat saya, yakni Certimate yang sekarang saya gunakan sekarang menggantikan acme.sh, nanti saya bahas di artikel ke depan untuk ulasannya.
Pertanyaan ke-11: Apa kelebihan dan kekurangan dari Google Public CA menurut kamu?
Kelebihan:
- Penerbitan/pembaruan sertifikat yang cepat. Hal ini dikarenakan ia menggunakan infrastruktur jaringan dari Google untuk server ACME-nya dan kita penggunanya akan diarahkan ke server terdekat saat memakainya, sehingga proses penerbitan/pembaruan akan menjadi jauh lebih cepat
- Jauh lebih minim gangguan, sehingga kamu lebih jarang menemukan galat 5xx dan 4xx (kecuali kalau itu disebabkan oleh kesalahanmu sendiri) karena infrastruktur jaringan dari Google itu tadi
- Alamat URL CRL yang berbeda di setiap sertifikat (Entah ini merupakan sesuatu kelebihan atau bukan, mungkin lebih ke “keunikan”)
- Kamu bisa menerbitkan sertifikat dalam bentuk standar, Multi-domain, dan bahkan Wildcard baik menggunakan RSA ataupun ECC sebagai algoritma kunci publiknya
- Mendukung nama domain Unicode yang disandikan menggunakan Punycode atau dengan kata lain nama domain terinternasionalisasikan itu didukung, termasuk penggunaan huruf selain alfabet, emoji, dsb
- Masa berlaku sertifikat bervariasi, bisa dimulai dari 1 hari sampai 90 hari ke depan, walaupun disarankan minimum 3 hari
- Tersedia 2 profil yang bisa kamu pilih untuk menerbitkan sertifikat, jadi sesuaikan dengan kebutuhan, yakni sebagai berikut:
standarduntuk sertifikat standar, tapi ukuran sertifikatnya cukup besar (profil bawaan)minimaluntuk sertifikat dengan ukuran yang jauh lebih kecil dan rantai yang sepenuhnya ECC, tapi menghapus 4 ekstensi penting, termasuksubject:commonName(atau “Common Name”)
- Sertifikat yang diterbitkannya dapat digunakan oleh hampir semua perangkat. Untuk alasannya, silakan lihat jawaban untuk pertanyaan ke-5
- Yang paling penting adalah semuanya bisa digunakan secara cuma-cuma alias gratis
Kekurangan:
Rantai sertifikat yang didapat masih menggunakan kunci RSA jika menggunakan profil standar atau tidak memakai profil sama sekali, yang mana kamu juga tidak bisa memilih rantainya sesuka hati
Tentu kamu bisa menerbitkan sertifikat dengan rantai (hampir) murni ECC, tapi harus menggunakan profil
minimal, yang mana itu akan menghapus 4 ekstensi penting, termasuksubject:commonName(atau “Common Name”) dan mungkin akan berimbas pada kompatibilitas perangkat lama yang bergantung pada ekstensi-ekstensi tersebut.Tidak mendukung nama domain Unicode yang disandikan atau di-encode menggunakan Punycode.Sehingga kemungkinan besar tidak ada dukungan nama domain terinternasionalisasikan (bahasa Inggris: Internationalized Domain Names atau disingkat menjadi IDN) dan huruf lain selain alfabet, termasuk emojiPEMBARUAN Jum’at, 21 Agustus 2026: Sejak bulan Februari 2026, Google Trust Services secara resmi mendukung nama domain terinternasionalisasikan, termasuk huruf selain alfabet dan emoji, jadi poin ini tidak lagi berlaku. Pengumumannya bisa dibaca di sini.
Jika Anda ingin situs web atau blog-nya diakses oleh pengguna di Tiongkok Daratan (bukan Hong Kong, Makau dan Taiwan, tentunya), tidak saya sarankan untuk memakai sertifikat TLS ini karena seluruh layanan Google, termasuk untuk CRL dan ekstensi AIA-nya diblokir oleh GFW (Great Firewall) yang berimbas pada pemuatan situs web Anda karena masalah pada pemuatan sertifikatnya/jabat tangan TLS-nya.
Tapi, kebanyakan peramban web secara baku tidak lagi mengecek pencabutan sertifikat lebih lanjut jika server-nya tidak bisa diakses, sehingga web/aplikasi dengan sertifikat TLS tersebut tetap dapat dimuat seperti biasanya dan sertifikat tetap dianggap masih valid setelah dicabut, atau bahkan bisa jadi mereka tidak mengeceknya sama sekali.
Jadi selama sertifikat dan private key-nya dipasang dengan lengkap dan benar, mungkin poin ini harusnya sudah tidak lagi berlaku. Mungkin saja saya bisa salah mengenai ini, jadi mohon beri masukkannya melalui kolom komentar.
Untuk perbandingan antar CA ACME lebih lanjut, silakan kunjungi salah satu halaman dokumentasi Posh-ACME dengan klik di sini.
Mungkin hal di atas bisa saja ada yang salah, jika ada koreksi, silakan berikan masukkannya melalui kolom komentar.
Pertanyaan ke-12: Apa pengalamanmu saat menggunakan Google Public CA? Apakah ada masalah sejauh ini?
Sejauh ini belum ada masalah apa pun, baik saat penerbitan sampai pemakaiannya. Penerbitannya bisa dibilang cepat, jauh lebih cepat ketimbang saat saya memakai ZeroSSL dan saya belum pernah menemukan galat 5xx yang membuat perkakas acme.sh mengulangi proses penerbitan sertifikat.
Jika ada masalah saat pemakaian ataupun pembaruan sertifikat (semoga jangan), mungkin akan saya perbarui juga di sini.
Untuk pencabutannya belum saya coba, karena saya belum sempat dan belum ada urgensi juga untuk mencabut sertifikatnya, mungkin ke depannya akan saya coba.
Pertanyaan ke-13: Saya memasang CAA Record di dalam pengaturan DNS pada Domain saya, apa CAA Record yang harus saya isi?
Pastikan Anda menambahkan pki.goog di dalamnya. Dengan ini, Anda akan mengizinkan GTS untuk menerbitkan sertifikat SSL/TLS-nya untuk domain Anda.
Untuk referensinya/selebihnya, bisa kunjungi URL direktori ACME-nya secara langsung melalui peramban web-mu, alamat URL-nya sudah saya sebutkan di jawaban pada pertanyaan ke-8 lalu lihat pada bagian caaIdentities dan di situ akan ada pki.goog sebagai isi dari caaIdentities yang merupakan CAA Record yang bisa Anda isi untuk mengizinkannya.
Hal di atas bukan hanya berlaku untuk GTS saja, tapi berlaku juga untuk URL direktori ACME lainnya seperti Let’s Encrypt, ZeroSSL, Buypass, SSL.com, dll yang bisa Anda coba sendiri.
Namun untuk GTS ini, ketika alamat URL-nya dibuka, maka keluarannya berupa teks JSON yang sudah diminimalkan (minified), sehingga tampilannya tidak enak dilihat dan dibaca oleh kebanyakan orang pada umumnya.
Untuk mempercantik tampilan/keluaran JSON, silakan gunakan ekstensi berikut di peramban web Anda:
- Google Chrome, Chromium dan keluarga: JSON Lite, JSON Formatter, JSON Formatter oleh Arnav Kumar atau JSON-handle
- Mozilla Firefox, Zen Browser dan keluarga: JSON Lite atau JSON Formatter oleh Arnav Kumar
Selain di peramban web, Anda juga dapat melihat keluarannya di dalam aplikasi Terminal Emulator. Berikut di bawah ini jika Anda ingin menggunakan curl dan jq:
curl -s https://dv.acme-v02.api.pki.goog/directory | jq
Atau, di bawah ini jika Anda menggunakan PowerShell (versi terbaru) atau Windows PowerShell (versi lama):
iwr https://dv.acme-v02.api.pki.goog/directory | ConvertFrom-Json | ConvertTo-Json
Anda bisa mengganti alamat URL di atas dengan alamat URL direktori ACME lainnya, selain itu Anda juga dapat menggantikan perintah iwr di atas dengan Invoke-WebRequest kalau mau, karena iwr merupakan kependekan dari itu.
Penutup
Yap, sekian saja artikelnya untuk kali ini, bagaimana? Mudah, bukan? Dengan begini, Anda bisa memakai sertifikat SSL/TLS dari Google secara gratis tanpa perlu memakai layanan dari mereka untuk Web/Blog-nya.
Itu aja? Yah, tidaklah, selanjutnya ya pasang sertifikat SSL/TLS-nya ke dalam Situs Web/Blog kamu agar bisa digunakan, jika Anda memakai Netlify, Bunny CDN, atau/dan cPanel, saya sarankan Anda baca artikel saya sebelumnya dan mulai bacanya dari bagian Memasang Sertifikat SSL.
Maaf yah buat pengguna Certbot dan Klien ACME lainnya, baris perintahnya tidak saya bahas di sini, karena saya sendiri belum pernah menggunakannya, saya sendiri memakai acme.sh sebagai perkakas klien ACME.
Terima kasih bagi Anda yang telah membaca serta mempelajari yang ada di artikel ini, mohon maaf jika artikel ini memiliki beberapa kekeliruan dan kesalahan, seperti salah ketik, kurang jelas, salah informasi, dll, karena artikel ini jauh dari sempurna.
Saya akan berusaha untuk terus-terusan memperbarui artikel ini seiring berkembangnya Informasi yang ada, karena yang saya pos ini adalah tutorial, sehingga perlu adanya penyesuaian.
Jika adanya kesalahan dan kekeliruan, atau kalau Anda memiliki pertanyaan lainnya, bisa Anda berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk kedepannya nanti.
Penggunaan Gambar dan Atribusi
Berkas-berkas Gambar (seperti Cuplikan layar dan Gambar lainnya) yang di gunakan di dalam artikel ini, disediakan di dalam repositori blog ini.
Jika Anda ingin menjelajahinya, silakan kunjungi Alamat URL berikut:
https://github.com/FarrelF/Blog/tree/main/content/post/2022/05/15-cara-mendapatkan-sertifikat-ssl-dari-google
Google dan logonya merupakan Merek Dagang, Merek Dagang Terdaftar, atau/dan Pakaian Dagang dari “Google LLC”, sehingga nama merek dan logo tersebut bukanlah milik saya pribadi.
