[{"content":" Pembuka Tidak dipungkiri bahwa Windows adalah sebuah sistem operasi yang paling populer dipasaran, termasuk Windows 10 yang menurut GS Statcounter itu menguasai pangsa pasar sebesar 41,74% per bulan Oktober 2025, yang artinya masih banyak yang memakai Windows 10, walau Windows 11 sekarang sudah dominan.\nSayangnya, persyaratan Windows 11 ini menjadi \u0026ldquo;tembok api\u0026rdquo; untuk sebagian orang, yakni Secure Boot, RAM \u0026gt;= 4 GB, UEFI dan yang paling penting adalah TPM 2.0, serta mereka ingin mengakhiri masa dukungan Windows 10 pada tanggal 14 Oktober 2025, yang mana sekarang sudah berakhir.\nMaka dari itu, di artikel ini saya akan membahas opsi apa saja yang bisa Anda lakukan, beserta apa kelebihan dan kekurangannya dari opsi yang ada. Opsi-opsi yang tersedia terbagi menjadi dua, yakni \u0026ldquo;Tidak paksa pakai Windows 11\u0026rdquo; dan \u0026ldquo;Paksa pakai Windows 11\u0026rdquo; yang keduanya memiliki konsekuensinya masing-masing jika Anda melakukan salah satunya.\nTidak paksa pakai Windows 11 Sebuah opsi yang memungkinkan untuk tidak memaksakan diri untuk menggunakan Windows 11 di perangkat yang tidak memenuhi syarat, tapi ingin komputernya bisa digunakan sebagaimana mestinya.\nAda beberapa solusi yang bisa ditawarkan, yakni sebagai berikut:\nSolusi ke-1: Upgrade Perangkat untuk menggunakan Windows 11 Ini adalah solusi paling realistis tanpa memaksakannya di perangkat yang tidak memenuhi syarat, yakni upgrade perangkatmu baik laptop dan komputer desktop agar dapat memenuhi syarat untuk menggunakan Windows 11.\nJika kamu adalah pengguna laptop, maka sudah saatnya kamu membeli laptop baru yang sistem operasinya sudah memakai Windows 11 dan itu biasanya gratis.\nSedangkan jika kamu adalah pengguna komputer desktop (PC Desktop), maka sudah saatnya kamu merakit PC dengan menjual komponen lama kamu, lalu membeli dan memasang komponen baru lagi, pastikan komponen yang digunakan sudah terbaru agar bisa mendapatkan dukungan jangka panjang dan kinerja yang lebih baik.\nSebelum merakit PC, pastikan bahwa kamu terhubung dengan akun Microsoft terlebih dahulu agar lisensinya bisa ditautkan secara otomatis, agar lisensi bisa diaktivasi ulang ketika kamu mengganti perangkatmu secara signifikan, termasuk setelah kamu merakit PC barumu. Jangan pernah menonaktifkan lisensi digital Windows kamu dan menghapus kunci produknya dengan alasan apa pun!\nLalu, bagaimana dengan aktivasinya? Jika kamu membeli laptop baru dengan Windows 11 sebagai sistem operasi bawaan, biasanya kamu tidak perlu aktivasi lagi, yang artinya kamu mendapatkan lisensi tersebut secara gratis.\nSedangkan jika kamu adalah pengguna komputer desktop, maka kamu perlu mentransfer dan mengaktivasi ulang Windows 10 di perangkat barumu dengan mengikuti halaman ini, baca di dalam bagian \u0026ldquo;Reactivate Windows 10 after a hardware change\u0026rdquo; dan klik pada \u0026ldquo;If you have a digital license, run the Activation troubleshooter.\u0026rdquo; untuk mengetahui caranya.\nPastikan kamu menggunakan akun Microsoft yang sama dengan yang ada di perangkat lamamu sebelum aktivasi ulang, terutama jika kamu habis instal ulang Windows dan kalau bisa pastikan kalau perangkat lama kamu masih aktif dan belum dihapus, karena transfer lisensi terkadang tidak akan bekerja kalau data-data di perangkat lama kamu terhapus.\nSetelah berhasil diaktivasi ulang, baru kamu upgrade ke Windows 11.\nSolusi ke-2: Gunakan sistem operasi lain Ini adalah solusi yang paling realistis jika perangkat kamu tidak memenuhi syarat untuk menggunakannya, tapi gak mau keamanan perangkatmu berkurang dan kamu tidak mau perangkat lunak sehari-harimu (terutama peramban web) tertinggal karena masa dukungan Windows 10 yang sudah habis, yakni dengan menggunakan sistem operasi lain.\nSistem operasi lain yang dapat Anda coba adalah GNU/Linux, ChromeOS Flex atau FydeOS. Sistem operasi GNU/Linux memiliki banyak sekali distribusi, salah satu contoh yang paling terkenal adalah Ubuntu, Linux Mint, Zorin OS, elementaryOS, dll.\nDistribusi GNU/Linux yang saya rekomendasikan salah satunya adalah Linux Mint, kenapa? Karena selain mudah digunakan, pengalaman yang baik karena mirip dengan Windows dan banyak fitur, Linux Mint itu merupakan salah satu distribusi yang stabil dan semuanya sudah out of the box.\nKarena Linux Mint berbasis Ubuntu LTS yang populer, maka kamu bisa menggunakan komunitas Ubuntu juga kalau kamu perlu bantuan, tapi komunitas Linux Mint terutama forum internasionalnya itu juga sangat aktif. Selain Linux Mint, ada juga Zorin OS yang tampilannya lebih bagus dan fiturnya lumayan lengkap.\nSemua distribusi yang saya sebut di atas menggunakan rilisan stabil, yang mana sebagian besar aplikasi mungkin menggunakan versi yang lebih lama karena lebih jarang diperbarui, kecuali jika distribusi tersebut mengalami peningkatan versi.\nMau distribusi umum yang selalu up-to-date atau yang semua aplikasinya bisa menggunakan versi terbaru? Ada CachyOS yang bisa dibuat gaming juga, dan ini berbasiskan Arch Linux, sehingga menggunakan rilisan bergulir. Atau mau terfokus pada gaming saja? Ada Bazzite yang memang dikhususkan untuk gaming, walau bisa untuk umum tapi ya fokus mereka memang ke situ.\nGak mau pake GNU/Linux? Kamu bisa pakai ChromeOS Flex dari Google, FydeOS atau pakai Apple macOS sekalian yang perlu beli perangkat baru juga ujung-ujungnya kalau mau aman.\nRisiko menggunakan sistem operasi lain Menggunakan sistem operasi lain bukanlah tanpa kekurangan dan risiko, dengan menggunakan sistem operasi lain artinya kamu harus siap dengan perbedaan antarmuka, pengalaman penggunaan, dukungan driver dan dukungan perangkat lunak yang berbeda ketimbang saat kamu menggunakan Windows untuk sehari-hari.\nSeperti Microsoft Office yang sehari-hari kamu pakai yang tidak bisa, driver tertentu tidak tersedia di sistem operasi baru, dll, sehingga mungkin mempengaruhi kesanggupan sistem operasi dalam mengoperasikan perangkatmu atau komponennya, serta produktivitasmu dalam menggunakannya.\nIni artinya, kamu harus siap beradaptasi dengan sistem operasi baru kamu dan segala perangkat lunaknya, antarmuka dan pengalamannya yang berbeda ketimbang saat kamu menggunakan Windows 10.\nJika kamu tidak sanggup beradaptasi dengan sistem operasi lain, maka solusi ini tidak cocok untuk kamu.\nSolusi ke-3: Tetap pakai Windows 10 Kamu tetap bisa memakai Windows 10, bahkan setelah masa dukungan telah berakhir. Secara kompatibilitas perangkat lunak dan gim tertentu, ini lebih baik, seperti Valorant yang masih tidak meminta TPM 2.0 dan Secure Boot agar dapat dimainkan ketika penggunanya tetap menggunakan Windows 10.\nTapi kamu tidak akan mendapatkan pembaruan apa pun setelah masa dukungan telah berakhir (Mungkin Windows Defender dan Microsoft Edge dikecualikan, entahlah).\nSelain itu, mungkin beberapa perangkat lunak lain akan meninggalkan dukungan utamanya terhadap Windows 10 jauh atau tidak jauh setelah masa dukungannya telah berakhir, sehingga kamu tidak akan mendapatkan pembaruan dari perangkat lunak tersebut, kecuali kalau kamu menggunakan versi perusahaan atau kanal jangka panjangnya.\nJadi kamu harus siap dengan segala ketertinggalan yang ada, termasuk celah keamanan yang menanti dan juga kamu mungkin perlu mempersiapkan perangkat lunak Antivirus pihak ketiga sebagai keamanan tambahan untuk perangkat kamu kalau sewaktu-waktu Windows Defender tidak mendapatkan pembaruan lagi.\nTapi mengingat Windows 10 masih sangat populer, maka kecil kemungkinan pengembang perangkat lunak lain bakal meninggalkan dukungannya terhadap sistem operasi tersebut. Maka dari itu, saya sarankan untuk tetap menggunakan Windows 10 seperti biasanya.\nSelain itu, jangan lupa untuk selalu gunakan pemblokir iklan atau ekstensi uBlock Origin di peramban web kamu agar kamu bisa berselancar dengan aman, tapi nonaktifkan pemblokirnya jika kamu ingin mendukung para pembuat konten tersebut di internet.\nSolusi ke-4: Tetap pakai Windows 10, tapi aktifkan ESU (disarankan) Sama seperti solusi ke-3, kamu tetap bisa gunakan Windows 10, tapi kamu harus mengaktifkan program ESU (Extended Security Updates) di Windows kamu.\nKonsekuensinya mirip dengan solusi ke-3, yakni beberapa perangkat lunak lain mungkin akan meninggalkan dukungan utamanya terhadap Windows 10 jauh atau tidak jauh setelah masa dukungan Windows 10-nya berakhir.\nSehingga perangkat lunak tersebut tidak lagi mendapatkan pembaruan, kecuali kalau kamu menggunakan kanal jangka panjang dari perangkat lunak tersebut, yang itu pun pembaruan yang ada hanya pembaruan keamanan dan perbaikan kutu saja.\nTapi karena Windows 10 masih sangat populer, maka kecil kemungkinan pengembang perangkat lunak akan meninggalkan dukungan utamanya terhadap Windows 10. Sehingga disarankan untuk tetap menggunakan Windows 10, tapi aktifkan program ESU-nya, seperti yang dibahas pada solusi ini.\nBedanya solusi ini dengan solusi sebelumnya adalah bahwa kamu masih bisa mendapatkan pembaruan dari Microsoft sampai 3 tahun setelah masa dukungannya berakhir, yakni sampai tahun 2028, sehingga jika masa dukungan Windows 10 kamu habis maka kamu tetap mendapatkan pembaruan dari Microsoft melalui Windows Update, termasuk pembaruan Windows Defender juga. Sedangkan solusi sebelumnya tidak sama sekali.\nProgram ESU ini secara resmi berbayar dan kalau kamu mau membelinya, silakan pelajari di sini untuk pengguna rumahan atau di sini untuk pengguna korporat.\nTapi kamu bisa dapatkan itu secara gratis dan legal dengan menautkan akun Microsoft Anda, lalu sinkronisasikan pengaturan PC Anda atau tukarkan 1.000 poin Microsoft Rewards Anda jika tidak ingin mensinkronisasikan pengaturan PC-nya, tapi itu semua hanya menambah dukungan selama 1 tahun saja, belum tentu dapat ditambah lagi.\nBagaimana kalau ingin menambahkan masa dukungan selama 3 tahun secara gratis? Ya bisa saja, tapi dengan menjalankan \u0026lsquo;aplikasi\u0026rsquo; tambahan.\nApakah cara ini aman? Kalau \u0026lsquo;aman\u0026rsquo; yang dimaksud adalah aman dari malware dan virus, ya tentu saja ini aman.\nTapi, apakah ini legal? Oh, tentu saja tidak!, makanya saya letakkan ini di akhir-akhir.\nSanggahan dan Peringatan: Cara yang saya lontarkan di bawah ini merupakan sepenuhnya illegal, sehingga jika kamu melakukannya, maka kamu bisa saja berisiko melanggar aturan hukum yang berlaku.\nMeski Microsoft tidak terlalu peduli dengan hal ini, terutama untuk pengguna rumahan dan usaha kecil. Tapi risiko seperti tuntutan hukum atau terkena razia dari pihak auditor akan tetap ada, apalagi jika Anda melakukan itu di lingkungan perusahaan atau kelembagaan (seperti lembaga pemerintah, dll).\nJadi, segala risiko apa pun yang akan Anda hadapi ke depan setelah mengikuti cara di bawah ini, silakan tanggung sendiri.\nUntuk mengaktifkan program ESU 3 tahun secara gratis, maka kamu perlu menggunakan Microsoft Activation Scripts (MAS) dari Massgrave untuk itu, silakan ikuti instruksi yang ada di sana untuk membuka skripnya.\nSetelah skripnya berhasil dibuka, pastikan kamu pilih TSforge, lalu pilih Activate - ESU agar dapat mengaktifkan ESU.\nSeperti inilah caranya mengaktifkan program ESU di dalam Windows 10. Tentu saja cara tersebut merupakan cara yang illegal, jika kamu merasa tidak sanggup menghadapi risiko legalitas, maka kamu harus bersedia untuk membayar program ESU atau rela hanya diberikan 1 tahun masa dukungan tambahan jika ingin memakai jalur legal.\nSolusi ke-5: Pakai Windows 10 (IoT) Enterprise LTSC 2021 Sanggahan dan Peringatan: Solusi yang saya lontarkan di bawah ini merupakan sepenuhnya illegal, karena:\nAnda pengguna rumahan yang menggunakan edisi yang tidak peruntukkannya, seperti Enterprise Solusi ini menggunakan aktivator untuk aktivasi, yang mana ini merupakan cara aktivasi yang tidak resmi dan illegal Sehingga jika kamu melakukannya, maka kamu bisa saja berisiko melanggar aturan hukum yang berlaku, kecuali jika Anda membelinya menggunakan jalur yang resmi.\nMeski Microsoft tidak terlalu peduli soal ini, terutama untuk pengguna rumahan dan usaha kecil. Tapi risiko seperti tuntutan hukum atau terkena razia dari pihak auditor akan tetap ada, terutama jika Anda melakukan itu di lingkungan perusahaan atau kelembagaan (seperti lembaga pemerintah, dll).\nJadi, segala risiko apa pun yang akan Anda hadapi ke depan setelah mengikuti cara di bawah ini, silakan tanggung sendiri.\nKamu bisa pakai Windows 10 (IoT) Enterprise LTSC 2021 untuk tetap menggunakan Windows 10, tapi dengan masa dukungan yang jauh lebih panjang, masing-masing masa dukungannya sebagai berikut:\nWindows 10 Enterprise LTSC 2021 sampai 12 Januari 2027 Windows 10 IoT Enterprise LTSC 2021 sampai 13 Januari 2032 Sebenarnya ini adalah solusi bagi pihak perusahaan yang masih ingin menggunakan Windows 10 karena alasan kompatibilitas dan stabilitas sistem mereka, tentunya mereka harus membeli lisensinya secara resmi dari Microsoft (atau melalui distributor resminya).\nSedangkan jika kamu pengguna rumahan ingin menggunakan ini, ya bisa, karena secara biner sama seperti Windows 10 pada umumnya, bahkan kalau kamu pakai IoT sekali pun.\nJadi kalau kamu mau, gunakan Windows 10 IoT Enterprise LTSC saja sekalian yang masa dukungannya paling panjang ketimbang Windows 10 Enterprise LTSC.\nKonsekuensi dan risiko Konsekuensi dan risiko kamu menggunakan ini sama seperti yang ada pada solusi ke-3, bedanya versi LTSC ini masih tetap dapat pembaruan dari Microsoft dengan masa dukungan yang sangat panjang.\nHanya saja ini bukan jaminan bahwa beberapa perangkat lunak lain tidak akan meninggalkan dukungannya terhadap Windows 10 setelah masa dukungan versi biasanya/GAC (General Availability Channel) berakhir, karena kebanyakan dari mereka tidak mengikuti kanal LTSC ini dalam pengembangannya.\nJadi kalau kamu menggunakan LTSC, tapi masa dukungan Windows 10 versi biasa/GAC-nya berakhir, maka kemungkinan dukungan perangkat lunak lain juga akan berakhir, jauh atau tidak jauh setelahnya.\nKalau berakhir, ujung-ujungnya tetap saja kamu harus siap dengan segala ketertinggalan yang ada, termasuk celah keamanan yang menanti, kecuali kalau kamu menggunakan versi perusahaan atau kanal jangka panjang dari perangkat lunak tersebut, yang itu pun pembaruan yang ada hanya pembaruan keamanan dan perbaikan kutu saja.\nTapi mengingat Windows 10 masih sangat populer, maka kecil kemungkinan pengembang perangkat lunak bakal meninggalkan dukungannya.\nItu belum lagi sama kemungkinan perangkat lunak tertentu yang tidak mendukung versi LTSC dari Windows 10 ini. Jadi jika Anda ingin menetap di Windows 10 tanpa terkena masalah kompatibilitas perangkat lunak, maka saran saya gunakan solusi ke-4 terlebih dahulu, baru ikuti solusi ini jika masa dukungannya benar-benar berakhir, yakni tahun 2028.\nMengunduh dan melakukan in-place upgrade Tautan untuk mengunduh berkas ISO Anda dapat mengunduh berkas ISO-nya dengan tautan di bawah ini, semua berkas ISO di sini resmi dari Microsoft yang diunduh dari My Visual Studio (MVS).\nWindows 10 IoT Enterprise LTSC 2021 x64: (cocok bagi yang ingin instal ulang)\nNama Berkas: en-us_windows_10_iot_enterprise_ltsc_2021_x64_dvd_257ad90f.iso Ukuran Berkas: 4626,91 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: 2463b19beac328290e6a8adcedb7533a SHA1: 76c3c10e38307d29fd8b4748522ed144dba35829 SHA256: a0334f31ea7a3e6932b9ad7206608248f0bd40698bfb8fc65f14fc5e4976c160 Tautan: Buzzheavier Windows 10 IoT Enterprise LTSC 2021 ARM64: (cocok buat pengguna ARM64)\nNama Berkas: en-us_windows_10_iot_enterprise_ltsc_2021_arm64_dvd_e8d4fc46.iso Ukuran Berkas: 4225,23 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: 4fb9dc5b4b872110f2be17c35fbd843b SHA1: 54822de5035ed87c1982db9dcd924083de599ca1 SHA256: d265df49b30a1477d010c79185a7bc88591a1be4b3eb690c994bed828ea17c00 Tautan: Buzzheavier Windows 10 Enterprise LTSC 2021: (disarankan bagi yang ingin melakukan in-place upgrade)\nHash: Silakan kunjungi My Visual Studio atau MVS Dump untuk mengetahuinya Tautan: Massgrave (disarankan) | os.click Kamu bisa saja memakainya dengan melakukan instal ulang atau instal bersih (clean install), tapi di sini saya akan bahas tentang caranya melakukan in-place upgrade ke Windows 10 IoT Enterprise LTSC 2021, yang mana ini tidak akan menghilangkan atau menghapus data dan aplikasi apa pun, karena kalau cuma instal bersih semua orang pasti tahu caranya.\nCara in-place upgrade-nya berikut di bawah ini:\nUnduh berkas ISO Windows 10 Enterprise LTSC dengan arsitektur dan bahasa Windows yang sesuai dengan yang terinstal di sistem kamu yang tautannya berada di atas, silakan cek terlebih dahulu menggunakan cara berikut sebelum mengunduh:\nUntuk mengecek bahasa Windows yang terinstal, kamu perlu buka PowerShell sebagai Administrator, lalu eksekusi perintah: dism /english /online /get-intl | find /i \u0026quot;Default system UI language\u0026quot; Masih di dalam PowerShell, untuk mengecek arsitektur yang terinstal, eksekusi perintah: Get-CimInstance -Class Win32_OperatingSystem | select OSArchitecture | Format-List Klik kanan pada berkas ISO yang diunduh, lalu ke \u0026ldquo;Open With\u0026rdquo; -\u0026gt; Windows Explorer\nDrive DVD baru akan muncul di Windows Explorer, yang berarti image instalasi telah berhasil dipasang.\nBuka Command Prompt sebagai Administrator, lalu eksekusikan perintah berikut:\nreg add \u0026#34;HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\u0026#34; /v EditionID /d IoTEnterpriseS /f Buka DVD drive itu, lalu jalankan setup.exe, lanjutkan terus sampai selesai dan pastikan bahwa kamu tidak mencentang yang berkaitan dengan \u0026ldquo;Download updates\u0026rdquo; atau apalah itu yang biasanya agak tersembunyi biar supaya lebih cepat Pastikan ada tulisan \u0026ldquo;Keep personal files and apps\u0026rdquo; pada layar terakhir. Kemudian kamu dapat melanjutkan prosesnya sampai akhir Sepertinya itu saja cara melakukan in-place upgrade-nya, Windows akan me-restart komputermu secara otomatis selama beberapa kali dalam prosesnya, tunggu saja sampai selesai.\nTapi kalau kamu mau instal bersih Windows 10 IoT Enterprise LTSC 2021 dengan bahasa yang berbeda, karena berkas ISO-nya cuma tersedia dalam bahasa Inggris AS maka gunakan berkas ISO Windows 10 Enterprise LTSC dengan bahasa yang kamu pilih untuk instal.\nLalu setelah instalasi selesai, masukkan kunci produk QPM6N-7J2WJ-P88HH-P3YRH-YY74H untuk beralih ke Windows 10 IoT Enterprise LTSC 2021, tapi itu tidak akan mengaktifkan Windows-nya, karena itu merupakan kunci produk generik yang bukan ditujukan untuk aktivasi, bagian itu akan saya bahas di bagian selanjutnya.\nAktivasi Windows Setelah sukses melakukan in-place upgrade, habis instal bersih atau mengganti edisinya menjadi Windows 10 IoT Enterprise LTSC 2021, maka Windows-nya belum aktif, ya itu wajar saja karena kamu melakukan peralihan ke Windows 10 IoT Enterprise LTSC yang mana itu beda lisensinya, maka dari itu kamu perlu melakukan aktivasi.\nUntuk melakukan itu secara gratis, Anda perlu menggunakan Microsoft Activation Scripts (MAS) dari Massgrave untuk itu, silakan ikuti instruksi yang ada di sana untuk membuka skripnya.\nSetelah skripnya berhasil dibuka, pastikan kamu pilih HWID agar dapat mengaktifkan Windows.\nJika Windows-nya sudah aktif dengan cara di atas, maka kamu bisa menautkan lisensi Windows tersebut dengan akun Microsoft kamu, artinya kamu punya lisensi digital atas Windows 10 IoT Enterprise LTSC 2021 kamu.\nHal itu tidak mungkin dilakukan jika kamu menggunakan aktivator macam KMSpico yang ketinggalan jaman itu, karena pengembangnya sudah sangat lama tidak mengembangkannya kembali.\nSeperti inilah cara melakukan in-place upgrade ke Windows 10 IoT Enterprise LTSC 2021 dan cara mengaktifkannya. Tentu saja solusi ini jelas illegal, jadi kalau kamu merasa tidak sanggup menghadapi risiko legalitas, maka solusi ini jelas bukan buat kamu.\nPaksa pakai Windows 11 Sebuah opsi yang memungkinkan untuk memaksakan diri menggunakan Windows 11 di perangkat yang tidak memenuhi syarat dalam menggunakan Windows 11 biasa. Dengan begini, Anda dapat menghindari ketertinggalan versi perangkat lunak lain yang jauh atau tidak jauh setelah masa dukungan Windows 10 telah berakhir.\nNamun, dengan ini juga, maka perangkat lunak dan gim tertentu, terutama yang mewajibkan syarat minimum Windows 11 biasa seperti TPM 2.0 dan Secure Boot itu tidak dapat dijalankan. Contohnya Valorant yang mensyaratkan TPM 2.0 dan Secure Boot agar dapat dimainkan oleh pengguna Windows 11, sedangkan pengguna Windows 10 masih bisa memainkannya tanpa perlu memenuhi kedua syarat itu.\nJadi kalau memaksa pakai Windows 11, maka Anda harus siap dengan konsekuensi yang akan dihadapi ke depannya, seperti masalah kompatibilitas perangkat lunak dan driver perangkat keras yang akan Anda hadapi ke depannya.\nAda beberapa solusi yang bisa ditawarkan untuk paksa pakai Windows 11, yakni sebagai berikut:\nSolusi ke-6: Bypass (hampir) semua persyaratan minimal Windows 11 Kamu dapat menginstal/maksa pakai Windows 11 dengan mem-bypass hampir semua persyaratan minimal Windows 11, termasuk TPM 2.0, RAM \u0026gt;= 4 GB, Secure Boot dan UEFI.\nAda beberapa opsi yang bisa dilakukan, seperti membuat bootable dengan Rufus yang memiliki fitur tersebut atau menggunakan penghasil berkas autounattended.xml yang berkas tersebut diletakkan ke dalam root drive dari media bootable (misalnya: E:\\) atau ke dalam ISO Windows.\nSelain itu, ada juga beberapa cara lainnya dari Windows 11 Forum yang dapat Anda baca di sini.\nDengan ini, kamu tetap dapat meng-upgrade sistem operasimu ke Windows 11 tanpa harus memenuhi syarat minimal, tapi bukan berarti tanpa konsekuensi apa pun. Selain kompatibilitas dengan perangkat lunak dan gim tertentu, konsekuensinya adalah bisa jadi ke depannya kamu tidak akan mendapatkan pembaruan fitur (Feature update) karena perangkatmu tidak memenuhi syarat untuk menginstal Windows 11 itu sendiri, tapi pembaruan kumulatif (Cumulative update) masih bisa kamu dapatkan setiap bulannya.\nSolusi ke-7: Pakai Windows 11 IoT Enterprise 25H2/LTSC 2024 Sanggahan dan Peringatan: Solusi yang saya lontarkan di bawah ini merupakan sepenuhnya illegal, karena:\nAnda pengguna rumahan yang menggunakan edisi yang tidak peruntukkannya, seperti Enterprise Solusi ini menggunakan aktivator untuk aktivasi, yang mana ini merupakan cara aktivasi yang tidak resmi dan illegal Sehingga jika kamu melakukannya, maka kamu bisa saja berisiko melanggar aturan hukum yang berlaku, kecuali jika Anda membelinya menggunakan jalur yang resmi.\nMeski Microsoft tidak terlalu peduli soal ini, terutama untuk pengguna rumahan dan usaha kecil. Tapi risiko seperti tuntutan hukum atau terkena razia dari pihak auditor akan tetap ada, terutama jika Anda melakukan itu di lingkungan perusahaan atau kelembagaan (seperti lembaga pemerintah, dll).\nJadi, segala risiko apa pun yang akan Anda hadapi ke depan setelah mengikuti cara di bawah ini, silakan tanggung sendiri.\nKamu bisa memakai Windows 11 IoT Enterprise yang secara resmi mereka tidak mensyaratkan TPM 2.0, UEFI dan Secure Boot sejak tahun 2024 yang lalu, serta tidak adanya pemblokiran CPU atau prosesor tertentu sehingga kamu dapat menggunakan Windows 11 tanpa harus bypass ini-itu yang berakibat pada tidak dapatnya pembaruan fitur atau malah bisa jadi Microsoft memblokir pembaruan hanya karena perangkatnya tidak didukung oleh Windows 11 versi biasa.\nSebenarnya ini adalah sebuah edisi sistem operasi yang ditujukan untuk perusahaan yang berkaitan dengan IoT (Internet of Things), tapi secara biner mereka sama dengan Windows edisi biasanya, sehingga tidak ada kompatibilitas perangkat lunak yang dikorbankan hanya karena dia \u0026lsquo;IoT\u0026rsquo;.\nJadi, kalau kamu adalah pengguna rumahan yang ingin menggunakannya, maka bisa-bisa saja dan kamu tetap bisa menjalankan aplikasi kamu sehari-hari seperti biasanya kalau kamu menggunakan sistem operasi tersebut.\nAda 2 jenis edisi yang dapat Anda coba salah satunya, yakni Windows 11 IoT Enterprise 25H2 (GAC) dan Windows 11 IoT Enterprise LTSC 2024 yang masing-masing dari mereka memiliki perbedaan.\nApa itu LTSC? Apa bedanya? Dan, apakah cocok untuk saya? tl;dr: Jika kamu tidak yakin, saran saya jauhi LTSC dan pilihlah kanal biasa beserta edisinya, kecuali jika Anda ingin menggunakan Windows lama dengan waktu yang lebih lama, misalnya Windows 10, tapi konsekuensi seperti ditinggal dukungan oleh perangkat lunak tetap berlaku dan silakan tanggung sendiri.\nMicrosoft merilis Windows dengan 2 kanal layanan yang berbeda, yakni sebagai berikut:\nGAC (General Availability Channel)\nIni adalah kanal umum dari Windows untuk konsumen umum, yang bisa kamu sebut sebagai \u0026ldquo;Windows biasa\u0026rdquo; Bisa ditujukan untuk semua orang dan golongan, termasuk pengguna rumahan, institusi, organisasi atau bahkan perusahaan (tergantung edisi) Contoh edisi yang ada di dalam kanal ini adalah: Home, Home Single Language, Pro, Pro for Workstation, Enterprise, IoT Enterprise dan Education Biasanya sudah termasuk Microsoft Store dan kebanyakan aplikasi UWP lainnya Masa dukungan maksimum dalam build yang sama adalah 2 tahun untuk edisi konsumen atau 3 tahun untuk edisi perusahaan Harus menginstal pembaruan fitur (Feature update) untuk memperpanjang masa dukungan, bisa diinstal melalui Windows Update Ini adalah kanal layanan utama, yang mana perangkat lunak dan gim lain biasanya mengikuti kanal ini dalam pengembangannya LTSC (Long-term Servicing Channel)\nIni adalah kanal jangka panjang dari Windows (mungkin istilah ini berlaku untuk perangkat lunak lain, seperti Microsoft Office), sebelumnya dikenal sebagai LTSB (Long-term Servicing Branch) Kanal ini dirancang untuk perangkat yang fungsionalitas dan fiturnya harus tetap konstan dari waktu ke waktu, seperti sistem medis, perangkat pengontrol industri, mesin ATM, mesin kasir dan perangkat kontrol lalu lintas udara Sudah jelas kalau kanal ini ditujukan untuk institusi, organisasi atau perusahaan dengan kebutuhan khusus Contoh edisi yang ada di dalam kanal ini adalah: Enterprise LTSC dan IoT Enterprise LTSC Tidak termasuk Microsoft Store dan tidak memiliki sebagian besar aplikasi UWP bawaan (Catatan: Jika kamu instal bersih) Masa dukungan maksimum dalam build yang sama adalah 5 tahun untuk Enterprise LTSC atau 10 tahun untuk IoT Enterprise LTSC Build terbaru dari kanal ini dirilis 3-4 tahun sekali dan kamu tidak bisa memperbaruinya melalui Windows Update, seperti halnya kamu melakukan pembaruan fitur (Feature update) di dalam kanal GAC Ini bukanlah kanal layanan utama, yang mana perangkat lunak dan gim lain tidak mengikuti kanal ini. Sebagai contoh, peramban web dan gim mungkin tidak akan memberikan masa dukungan dari 5 sampai 10 tahun di dalam build Windows yang sama, kecuali mereka menyediakan kanal jangka panjangnya yang itu pun hanya mencakup pembaruan perbaikan saja Alasan menggunakan LTSC:\nKamu tidak suka terhadap pembaruan fitur tahunan Windows Kamu tidak menyukai aplikasi UWP (atau dari Microsoft Store) yang terinstal bawaan Kamu menginginkan Windows yang ringan, tapi resmi dari Microsoft tanpa modifikasi macam AtlasOS, ReviOS, dll (Catatan: Hanya berlaku jika kamu instal bersih) Kamu menginginkan dukungan pembaruan yang lebih panjang pada Windows, termasuk pada Windows lama (seperti Windows 10) Alasan tidak menggunakan LTSC:\nSeperti yang dijelaskan di atas, gim dan perangkat lunak lain mungkin tidak mendukung LTSC ini setelah build yang sama mencapai akhir masa pakainya di GAC, kecuali perangkat lunak tersebut memiliki kanal jangka panjangnya yang itu pun hanya pembaruan perbaikan saja Jika kamu instal bersih dengan LTSC, maka beberapa gim mungkin tidak berfungsi sebagaimana mestinya, untuk itu kamu perlu menginstal Microsoft Store dan aplikasi Xbox secara manual Jika Anda menggunakan perangkat keras baru, maka dikhawatirkan perangkat keras tersebut tidak sepenuhnya didukung oleh build LTSC yang sudah berumur 2-3 tahun (versi baru LTSC dirilis setiap 3 tahun sekali) Anda mungkin akan melewatkan fitur-fitur baru yang ditambahkan di GAC yang tidak tersedia di LTSC Salah paham mengenai LTSC:\nLTSC itu cepat\nLebih tepat kalau disebut \u0026rsquo;lebih ringan\u0026rsquo;, karena penggunaan RAM yang lebih sedikit. Kenapa? Karena tidak banyak aplikasi UWP yang berjalan di latar belakang dan juga aplikasi UWP itu sendiri. Ini hanya berlaku jika Anda menginstal bersih Windows dengan kanal LTSC, kalau memilih in-place upgrade dari kanal GAC maka jatuhnya ya sama saja.\nKamu bisa mendapatkan hasil yang kurang lebih sama di kanal GAC secara penggunaan RAM dengan mematikan aplikasi di latar belakang dan aplikasi start-up, lalu restart komputernya setelah itu untuk merasakan perbedaannya\nLTSC itu mengutamakan privasi\nSayangnya tidak juga, sama saja dengan edisi Windows lain. Hanya saja untuk edisi perusahaan (Enterprise) dari Windows (termasuk LTSC), kamu benar-benar sepenuhnya bisa menonaktifkan telemetrinya cukup menggunakan Group Policy Editor saja\nYang jelas, IoT Enterprise LTSC ini memiliki masa dukungan yang paling panjang ketimbang LTSC biasa, yakni sampai 10 Oktober 2034. Selain itu, untuk versi LTSC-nya ini memiliki persyaratan RAM minimum yang tergolong ringan, yakni sebesar 2 GB, sedangkan kanal GAC-nya minimum 4 GB.\nMengunduh dan melakukan in-place upgrade Tautan untuk mengunduh berkas ISO (Kanal GAC) Anda dapat mengunduh berkas ISO Windows IoT Enterprise kanal GAC dengan tautan di bawah ini, semua berkas ISO di sini resmi dari Microsoft yang diunduh dari My Visual Studio (MVS).\nWindows 11 IoT Enterprise 25H2 x64: (cocok bagi yang ingin instal ulang)\nNama Berkas: en-us_windows_11_iot_enterprise_version_25h2_x64_dvd_67098cd6.iso (Utama) X24-12902_26200.6584.250915-1905.25h2_ge_release_svc_refresh_CLIENTENTERPRISE_OEM_x64FRE_en-us.iso Ukuran Berkas: 7318,01 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: 7ee34c0eaa7dc81c502de12d4a4a0345 SHA1: 0324d02aa88df64c159e6479f30cbc0a18952e14 SHA256: 2717211095e362c8005ae1ed36be771f27f2031545b065be1718b6fe717b6b12 Tautan: Buzzheavier Windows 11 IoT Enterprise 25H2 x64 ARM64: (cocok buat pengguna ARM64)\nNama Berkas en-us_windows_11_iot_enterprise_version_25h2_arm64_dvd_59e0d737.iso (Utama) X24-12903_26200.6584.250915-1905.25h2_ge_release_svc_refresh_CLIENTENTERPRISE_OEM_A64FRE_en-us.iso Ukuran Berkas: 7241,80 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: 67936bd7e33134d2f87b7861ceb3e898 SHA1: 15f42dab2135b60649b21e4baa4e0719b899d2a0 SHA256: de28a746bad8879b680aaf6a2e2993bf80aaad23904e0acc449815ada5c90107 Tautan: Buzzheavier Windows 11 25H2 - Pembaruan Juli 2026 (26200.8875): (disarankan bagi yang ingin melakukan in-place upgrade)\nHash: Silakan kunjungi Files RG-Adguard, MVS Dump atau tautan Microsoft Software Download untuk mengetahuinya Tautan: Massgrave Windows 11 25H2 RTM (26200.6584): (disarankan bagi yang ingin menggunakan versi pembaruan yang agak lama)\nHash: Silakan kunjungi Files RG-Adguard, MVS Dump atau tautan Microsoft Software Download untuk mengetahuinya Tautan: Gravesoft MSDL | Microsoft Software Download Tautan untuk mengunduh berkas ISO (Kanal LTSC) Anda dapat mengunduh berkas ISO Windows IoT Enterprise kanal LTSC dengan tautan di bawah ini, semua berkas ISO di sini resmi dari Microsoft yang diunduh dari My Visual Studio (MVS).\nWindows 11 IoT Enterprise LTSC 2024 x64: (cocok bagi yang ingin instal ulang)\nNama Berkas: en-us_windows_11_iot_enterprise_ltsc_2024_x64_dvd_f6b14814.iso (Utama) X23-81951_26100.1742.240906-0331.ge_release_svc_refresh_CLIENT_ENTERPRISES_OEM_x64FRE_en-us.iso Ukuran Berkas: 4906,48 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: 66608a96a4f2d73b4a1d054e76e6eae4 SHA1: d5dd0a493b6a9c92f7f2a54bb2fb2544587a15fd SHA256: 4f59662a96fc1da48c1b415d6c369d08af55ddd64e8f1c84e0166d9e50405d7a Tautan: Buzzheavier | Microsoft OEM Portal (unduh langsung, disarankan) | os.click Catatan: Khusus tautan OEM Portal, nama berkas untuk unduhannya akan berbeda. Jadi harap ganti nama berkas tersebut menjadi nama berkas yang ada di sini sebelum mengunduh agar lebih mudah dibuka setelah mengunduh. Jangan khawatir, itu merupakan berkas yang sama, beda di tautan unduhan dan nama berkasnya saja Windows 11 IoT Enterprise LTSC 2024 ARM64: (cocok buat pengguna ARM64)\nNama Berkas: en-us_windows_11_iot_enterprise_ltsc_2024_arm64_dvd_ec517836.iso (Utama) X23-81950_26100.1742.240906-0331.ge_release_svc_refresh_CLIENT_ENTERPRISES_OEM_A64FRE_en-us.iso Ukuran Berkas: 4884,20 MB Hash: (Untuk lebih lanjut, silakan kunjungi: Files RG-Adguard, MVS Dump atau MVS) MD5: d5c60d16df2708369e98059f0e15ee94 SHA1: 5811aca5f0dd3a6c260e1c9e2315334b10888e46 SHA256: f8f068cdc90c894a55d8c8530db7c193234ba57bb11d33b71383839ac41246b4 Tautan: Buzzheavier Windows 11 Enterprise LTSC 2024: (disarankan bagi yang ingin melakukan in-place upgrade)\nHash: Silakan kunjungi My Visual Studio atau MVS Dump untuk mengetahuinya Tautan: Massgrave (disarankan) | os.click Kamu bisa saja memakainya dengan melakukan instal ulang atau instal bersih (clean install), tapi di sini saya akan bahas tentang caranya melakukan in-place upgrade ke Windows 11 IoT Enterprise, yang mana ini tidak akan menghilangkan atau menghapus data dan aplikasi apa pun, karena kalau cuma instal bersih semua orang pasti tahu caranya.\nCara in-place upgrade-nya berikut di bawah ini:\nUnduh berkas ISO Windows 11 biasa (untuk ke Windows 11 IoT Enterprise 25H2) atau Windows 11 Enterprise LTSC (untuk ke Windows 11 IoT Enterprise LTSC 2024) dengan arsitektur dan bahasa Windows yang sesuai dengan yang terinstal di sistem kamu yang tautannya berada di atas, silakan cek terlebih dahulu menggunakan cara berikut sebelum mengunduh:\nUntuk mengecek bahasa Windows yang terinstal, kamu perlu buka PowerShell sebagai Administrator, lalu eksekusi perintah: dism /english /online /get-intl | find /i \u0026quot;Default system UI language\u0026quot; Masih di dalam PowerShell, untuk mengecek arsitektur yang terinstal, eksekusi perintah: Get-CimInstance -Class Win32_OperatingSystem | select OSArchitecture | Format-List Klik kanan pada berkas ISO yang diunduh, lalu ke \u0026ldquo;Open With\u0026rdquo; -\u0026gt; Windows Explorer\nDrive DVD baru akan muncul di Windows Explorer, yang berarti image instalasi telah berhasil dipasang.\nBuka Command Prompt sebagai Administrator, lalu eksekusikan perintah berikut untuk melakukan in-place upgrade ke Windows 11 IoT Enterprise 25H2:\nreg add \u0026#34;HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\u0026#34; /v EditionID /d IoTEnterprise /f Atau, berikut kalau mau ke kanal LTSC-nya:\nreg add \u0026#34;HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\u0026#34; /v EditionID /d IoTEnterpriseS /f Buka DVD drive itu, lalu jalankan setup.exe, lanjutkan terus sampai selesai dan pastikan bahwa kamu tidak mencentang yang berkaitan dengan \u0026ldquo;Download updates\u0026rdquo; atau apalah itu yang biasanya agak tersembunyi biar supaya lebih cepat Pastikan ada tulisan \u0026ldquo;Keep personal files and apps\u0026rdquo; pada layar terakhir. Kemudian kamu dapat melanjutkan prosesnya sampai akhir Sepertinya itu saja cara melakukan in-place upgrade-nya, Windows akan me-restart komputermu secara otomatis selama beberapa kali dalam prosesnya, tunggu saja sampai selesai.\nTapi, kalau kamu mau instal bersih Windows 11 IoT Enterprise dengan bahasa yang berbeda, sedangkan berkas ISO-nya (baik GAC maupun LTSC-nya) hanya tersedia dalam bahasa Inggris AS, kamu bisa gunakan berkas ISO Windows 11 biasa untuk kanal GAC atau Windows 11 Enterprise LTSC untuk kanal LTSC dengan bahasa yang kamu pilih untuk instal.\nSaat membuat media bootable dengan Rufus, pastikan kamu tidak mencentang atau menggunakan bypass apa pun, karena itu tidak berguna. Setelah dibuatkan bootable-nya dengan Rufus, navigasikan ke folder sources di dalam media bootable yang Anda buat, lalu buatlah sebuah berkas yang bernama PID.txt dengan isi berikut:\nUntuk kanal GAC (Windows 11 IoT Enterprise 25H2):\n[PID] Value=XQQYW-NFFMW-XJPBH-K8732-CKFFD Untuk kanal LTSC (Windows 11 IoT Enterprise LTSC 2024):\n[PID] Value=CGK42-GYN6Y-VD22B-BX98W-J8JXD Simpan berkasnya, lalu mulai instal bersih Windows-nya, maka secara otomatis Setup Windows akan mengambil edisi IoT Enterprise, jadi kamu tetap bisa menginstal Windows 11 secara resmi meski perangkatmu tidak mendukung tanpa perlu menggunakan fitur bypass dari Rufus.\nAktivasi Windows Setelah sukses melakukan in-place upgrade atau habis instal bersih, maka Windows-nya belum aktif, ya itu wajar saja karena kamu melakukan peralihan yang mana itu jauh sekali perbedaan lisensinya, maka dari itu kamu perlu melakukan aktivasi.\nUntuk melakukan itu secara gratis, Anda perlu menggunakan Microsoft Activation Scripts (MAS) dari Massgrave untuk itu, silakan ikuti instruksi yang ada di sana untuk membuka skripnya.\nSetelah skripnya berhasil dibuka, pastikan kamu pilih HWID agar dapat mengaktifkan Windows.\nJika Windows-nya sudah aktif dengan cara di atas, maka kamu bisa menautkan lisensi Windows tersebut dengan akun Microsoft kamu, artinya kamu punya lisensi digital atas Windows 11 kamu.\nSeperti inilah cara melakukan in-place upgrade ke Windows 11 IoT Enterprise dan cara mengaktifkannya. Tentu saja solusi ini jelas illegal, jadi kalau kamu merasa tidak sanggup menghadapi risiko legalitas, maka solusi ini jelas bukan buat kamu.\nYa sudah, semua pembahasan di artikel ini sudah selesai, kamu bisa akhiri saja sampai sini jika Anda tidak mempunyai keluhan/pertanyaan apa pun.\nNamun, jika Anda memiliki pertanyaan, maka ada baiknya baca terlebih dahulu bagian berikutnya sebelum bertanya, barangkali saja pertanyaan dari pikiran kamu bisa terjawab di sini.\nPertanyaan yang (akan) sering ditanya Pertanyaan ke-1: Bagaimana jika solusi ke-1 mengenai transfer lisensi ini gagal? Jawab: Pastikan bahwa perangkat lamamu tidak dipindahtangankan terlebih dahulu ke orang lain ataupun menghapus data-data di perangkat lamanya, termasuk memutuskan hubungan (unlink) akun Microsoft kamu dari perangkat lamamu agar transfer lisensinya berjalan dengan lancar.\nSelain itu, gunakan akun Microsoft yang sama dengan akun yang berada di perangkat lamamu, jika akunnya berbeda jelas tidak bisa.\nMeski begitu, itu semua bukan jaminan kalau transfer lisensi bakalan berhasil, jadi cara ini tidak terlalu dapat diandalkan meski fitur tersebut didokumentasikan secara resmi, tapi bisa dicoba.\nTerkadang fitur transfer lisensi ini sifatnya untung-untungan, kadang bisa kadang tidak. Kalau kamu cukup beruntung, transfer lisensi bisa berhasil dan Windows bisa aktif, bahkan walau data-data di perangkat lama sudah terhapus sepenuhnya.\nKalau masih gagal gimana? Kalau tidak membeli lisensi Windows aslinya, ya kamu bisa aktivasi secara permanen dengan memakai Microsoft Activation Scripts dari Massgrave. Bila sebelumnya kamu pernah membeli lisensi Windows asli, simpan saja bukti pembayaran dan kotak produk Windows-nya bila ada, barangkali suatu saat hal itu sangat diperlukan untuk pembuktian kalau kamu pernah membeli lisensi Windows asli.\nTidak disarankan untuk membeli lisensi dengan harga miring di situs lokapasar (cth. Shopee, Tokopedia, dll) sedangkan harga aslinya mulai dari 2,6jt-an atau lebih untuk edisi yang lebih tinggi.\nPertanyaan ke-2: Apa yang terjadi pada lisensi Windows di perangkat yang lama setelah saya berhasil transfer lisensi ke perangkat baru? Jawab: Kemungkinan besar tidak terjadi apa-apa, lisensi digital Windows masih tetap aktif di perangkat lama, jadi transfer lisensi di sini tidak memindahkan lisensi Windows, melainkan cuma menyalinkan lisensinya ke perangkat baru.\nPertanyaan ke-3: Mengapa kamu sarankan untuk menggunakan aktivator untuk aktivasi Windows? Padahal lisensi Windows di situs lokapasar (cth. Shopee) sangat murah Jawab: Karena dengan kamu membeli lisensi tersebut, maka sebagian besar uang yang kamu bayar belum tentu sampai ke Microsoft sepenuhnya, terlebih jenis lisensi yang dijual itu adalah Volume yang mana ini digunakan oleh perusahaan, tidak diperbolehkan digunakan untuk pribadi kalau kamu adalah orang yang menghargai pengembang perangkat lunak.\nBiasanya kunci produk yang dijual tersebut didapatkan dari MVS (My Visual Studio) yang sebenarnya untuk tujuan pengujian semata, \u0026ldquo;impor\u0026rdquo; kunci produk dari lokapasar luar negeri, atau melakukan pencucian uang dengan membuat perusahaan fiktif, lalu mendaftarkan perusahaan tersebut agar bisa mendapatkan lisensi \u0026ldquo;Volume\u0026rdquo; yang jauh lebih murah. Selain itu, ada juga lisensi yang beneran asli, tapi didapatkan dengan cara yang haram, contohnya carding.\nKalau kamu membeli itu, maka artinya kamu telah menyumbangkan sebagian besar uang kamu ke penjual dan uangnya menjadi penggerak buat penjual untuk menipu banyak orang dan kejahatan lainnya, jatuhnya yang kamu lakukan malah jauh lebih parah ketimbang orang yang membajak perangkat lunak itu sendiri.\nJadi kalau kamu gak punya uang buat beli lisensi aslinya, daripada uangnya beli sesuatu yang gak ada manfaatnya seperti itu, lebih baik bajak saja sekalian. Sayangilah uangmu dengan menggunakannya untuk hal-hal yang bermanfaat, walaupun harganya di bawah Rp10.000,00 juga tetaplah uang.\nOkelah, tapi bukannya Windows itu gratis ya? Gak perlu diaktifkan juga bisa dipake meski fiturnya ada yang gak bisa, kenapa harus bajak? Kalau Windows itu gratis, kenapa Microsoft menjual Windows itu sendiri di toko daringnya? Bisa diunduh secara gratis dan dipake gratis seterusnya bukan berarti Windows itu beneran OS gratisan, terlihat dari bagaimana Windows membatasi beberapa fitur karena tidak diaktivasi.\nBahkan di EULA-nya sendiri, di dalam bagian 5. Authorized Software and Activation, pihaknya jelas-jelas mengatakan:\nYou are authorized to use this software only if you are properly licensed and the software has been properly activated with a genuine product key or by other authorized method.\nArtinya kamu diijinkan menggunakan Windows HANYA kalau kamu mengaktifkannya dengan benar dengan kunci produk asli. Kalau gak diaktifkan, ya artinya kamu melanggar EULA ini, terlepas dari apakah Windows-nya bisa digunakan seterusnya atau tidak, itu tidak mengubah fakta yang terjadi.\nSehingga hal tersebut menjadikan 11-12 dengan pengguna bajakan, bedanya kamu diberikan rasa aman bahwa kamu telah menghargai mereka dan tidak melanggar apa pun hanya karena fiturnya lebih sedikit, padahal sebenarnya tidak demikian.\nJadi kalau kamu masih menggunakan Windows dan kamu gak mau membeli perangkat baru, maka pilihanmu hanya ada dua, yaitu:\nMembeli lisensi asli dan legal di toko resmi Microsoft atau di mitra resminya, tapi mahal. Atau, Bajak sekalian Windows-nya, gratis, tapi risiko legalitas ditanggung sendiri karena illegal, apalagi kalau kalian dari pihak korporat Itu saja pilihannya. Kalau mau komputermu pakai OS yang legal dan gratis sepenuhnya ya pakai sistem operasi lain lah! Ada itu GNU/Linux dan sistem operasi lain yang bisa kamu coba.\nTapi kenapa kok Windows-nya masih bisa dipake? Ya karena untuk memperbesar pangsa pasar (marketshare) agar Windows dan ekosistem Microsoft dikenal oleh banyak orang, dengan memakai Windows saja kamu telah menyumbang pangsa pasar ke korporat besar agar mereka melirik Windows dan ekosistem Microsoft-nya, terlepas dari apakah Windows-nya diaktifkan atau tidak, diaktifkan pakai apa, lisensi yang digunakan legal atau tidak, dll.\nMayoritas keuntungan Microsoft itu dari pihak korporat, seperti Azure, OEM, layanan Microsoft 365 dan Windows untuk korporat, Visual Studio, dll, ada pun dari pengguna individual ya dari langganan itu, misalnya layanan Xbox (Xbox Game Pass, Xbox Cloud Gaming, dll), Microsoft 365, dll.\nMemang ada keuntungan dari penjualan lisensi Windows untuk individual, tapi itu bukan prioritas utama dan jauh lebih sedikit ketimbang lainnya, itulah mengapa Microsoft juga tidak terlalu peduli dengan pembajakan yang dilakukan oleh pengguna individual.\nKalau mereka membatasi hampir semua fiturnya dan melakukan razia ke penggunanya hanya karena mereka melanggar EULA kayak yang pernah dilakukan waktu dulu, yang rugi malah mereka itu sendiri selain karena rugi waktu, tenaga dan uang untuk merazia dan menuntut sana-sini, hal ini membuat penggunanya berkurang dan pangsa pasar pun ikut berkurang, walau bisa saja semua itu dilakukan kalau mereka mau.\nPertanyaan ke-4: Apakah akan aman jika saya tetap menggunakan Windows 10? Seberapa amankah untuk ke depannya? Jawab: Kalau kamu merupakan pengguna kasual yang setiap hari cuma menjelajah internet, menikmati hiburan yang disediakan di komputer (entah itu menonton film, bermain gim, dll) atau mengerjakan tugas di PC mungkin bakalan aman untuk saat ini, selama kamu:\nTidak menonaktifkan Antivirus dan Firewall Tidak mematikan fitur UAC (User Account Control) Tidak sembarangan memberikan akses Administrator ke orang lain (cth. Selalu gunakan tipe \u0026ldquo;Standard\u0026rdquo; saat membuat pengguna/User di Windows, bukan \u0026ldquo;Administrator\u0026rdquo;, terutama untuk orang lain selain dirimu) Versi definisi antivirus-mu selalu yang terbaru atau selalu diperbarui Mempertebal perlindungannya jika menggunakan Windows Defender, dengan cara berikut: Minimal aktifkan fitur \u0026ldquo;Controlled folder access\u0026rdquo; agar melindungi berkas-berkas penting kamu dari malware dengan memblokir segala perubahan dari aplikasi yang tidak terpercaya Bila memungkinkan, aktifkan semua fitur proteksi di dalam \u0026ldquo;Core isolation\u0026rdquo; untuk melindungi perangkatmu dengan melindungi kernel Windows Untuk penebalan (hardening) lebih lanjut, kamu bisa pakai DefenderUI, versi gratisnya cukup untuk pengguna rumahan Perangkat lunak (termasuk peramban web) yang kamu gunakan selalu yang terbaru, meski itu adalah pembaruan keamanan Memasang pemblokir iklan di peramban web (seperti uBlock Origin) dan memperbarui daftar-daftarnya Menonaktifkan protokol jaringan yang usang di Windows kamu, seperti NetBIOS dan SMBv1 Selektif dalam mencolok penyimpanan eksternal dan menggunakan jaringan lokal Selektif dalam menentukan folder yang akan dibagikan ke jaringan lokal beserta hak aksesnya Selektif dalam memilih jenis jaringan yang terkoneksi (antara jaringan publik atau privat). Kalau kamu menggunakan laptop, pastikan Public network (Jaringan publik) terpilih, terutama setiap kali terkoneksi dengan jaringan yang bukan berasal dari tempat tinggal sendiri/rumah Selektif dalam menginstal perangkat lunak dan membuka sebuah aplikasi Seberapa amannya untuk ke depan saya tidak tahu secara pasti, tapi mengingat Windows-mu tidak mendapatkan pembaruan setelah masa dukungannya berakhir, maka saya tidak dapat menjamin bahwa ke depan akan aman walau kamu sudah melakukan semua hal di atas, karena eksploitasi celah keamanan di Windows selalu berkembang.\nJadi, disarankan untuk mengaktifkan ESU di Windows 10 kamu agar tetap mendapatkan pembaruan dengan minimum 1 tahun yang bisa kamu dapatkan secara gratis. Tapi, kamu masih bisa mengabaikan ini dengan menganggap kalau sistemnya aman-aman saja.\nPertanyaan ke-5: Untuk memperpanjang masa dukungan Windows 10, lebih baik pakai ESU atau langsung upgrade ke edisi IoT LTSC aja? Jawab: Sebaiknya aktifkan saja ESU terlebih dahulu, meng-upgrade Windows-mu ke edisi IoT Enterprise LTSC itu selain membutuhkan usaha yang lebih, perangkat lunak tertentu belum tentu kompatibel dengan edisi ini.\nSetelah masa dukungan ESU-nya sudah habis, barulah kamu upgrade ke edisi IoT Enterprise LTSC.\nPertanyaan ke-6: Jadi, menurutmu sebaiknya saya tetap memakai Windows 10 atau paksa upgrade ke Windows 11? Jawab: Ya tergantung kenyamanan, kebutuhan dan kesanggupan perangkat kamu. Tetap memakai Windows 10 atau paksa upgrade ke Windows 11 itu mempunyai manfaat dan risikonya masing-masing.\nTapi mungkin akan lebih baik kalau kamu menetap terlebih dahulu di Windows 10, lihat perkembangan perangkat lunaknya bagaimana, kalau perangkat lunaknya sudah meninggalkan dukungan setelah masa dukungan Windows 10 berakhir, sedangkan kamu butuh perangkat lunak tersebut di versi terbaru, mungkin kamu perlu paksa upgrade ke Windows 11.\nPerlu diingat bahwa dengan memaksa untuk upgrade ke Windows 11, artinya perangkat lunak atau gim tertentu yang meminta syarat Windows 11 umum seperti TPM 2.0 tidak akan bisa berjalan, tapi perangkat lunak lain mungkin masih bisa.\nSedangkan kalau kamu tetap menggunakan Windows 10, mungkin perangkat lunak atau gim tertentu tidak akan meminta syarat macam TPM 2.0 agar dapat dijalankan, tapi beberapa atau banyak perangkat lunak akan meninggalkan dukungan utamanya jauh atau tidak jauh setelah masa dukungan Windows 10 berakhir, kalaupun dapat ya itu pembaruan keamanan dan perbaikan kutu, bukan pembaruan fitur.\nUntuk kasus penggunaan Steam dan peramban web seperti Google Chrome/Chromium dan Mozilla Firefox, mungkin saja mereka bisa memperpanjang dukungannya terhadap Windows 10, mengingat rekam jejak mereka yang pernah melakukan hal serupa terhadap Windows 7, baik pembaruan keamanan dan kutu maupun pembaruan fitur, jadi harusnya mereka juga bisa mendukung Windows 10 dengan lebih lama.\nPertanyaan ke-7: Saya ingin instal bersih Windows dan ingin Windows-nya bebas dari bloatware yang mengganggu, sebaiknya apa saja yang perlu saya lakukan? Jawab: Cukup instal ulang saja dengan Windows 10/11 IoT Enterprise LTSC, dengan begini kamu akan mendapatkan pengalaman Windows yang jauh lebih bersih ketimbang saat kamu menggunakan Windows biasanya dengan masa dukungan yang panjang.\nTentunya ini tanpa perlu melakukan modifikasi dari pihak ketiga macam AtlasOS, ReviOS, Ghost Spectre, dll, serta edisi tersebut merupakan edisi resmi dari Microsoft, sehingga kamu tidak perlu mempertaruhkan kestabilan dan keamanan dalam menggunakannya.\nSaking bersihnya LTSC ini, sampai-sampai aplikasi UWP itu gak ada, contohnya Xbox, Photos, Phone Link, dan bahkan Microsoft Store itu sendiri, kalkulator yang ada pun hanyalah kalkulator dari zaman Windows 7.\nAtau, kamu juga dapat menggunakan Windows edisi biasa, tapi kamu perlu debloat sendiri, saya gak perlu kasih tahu caranya untuk ini.\nPertanyaan ke-8: Kenapa kamu menyarankan penggunaan LTSC ketimbang menggunakan modifikasi macam AtlasOS, ReviOS, Ghost Spectre, dll, untuk pengalaman Windows yang lebih bersih? Jawab: Karena biasanya mereka menonaktifkan komponen-komponen yang mereka anggap \u0026rsquo;tidak penting\u0026rsquo; untuk meningkatkan performa, padahal komponen Windows itu saling berhubungan satu sama lain, kalau saja satu dimatikan dan kamu kurang beruntung maka sistemmu akan terkena efek domino.\nEfek dominonya ini disebabkan oleh fitur-fitur ada yang bergantung pada komponen yang dinonaktifkan itu yang pada akhirnya merambat ke aplikasi-aplikasi atau bahkan sistem yang berperilaku aneh, aplikasi yang tiba-tiba suka crash sendiri atau bahkan aplikasi tertentu tidak dapat dijalankan.\nEfek dominonya ini bagaimana maksudnya? Salah satu contoh efek dominonya kalau kamu mensuspensi atau bahkan menonaktifkan Microsoft Software Protection Platform (SppSvc) hanya karena komponen tersebut memakan penggunaan CPU yang besar.\nIya, penggunaan CPU pasti turun drastis, tapi dengan kamu menonaktifkan komponen tersebut selain bikin Windows dan Microsoft Office menjadi gak aktif, Windows Update, Microsoft Office dan Microsoft Store bakalan tidak bekerja dengan baik karena mereka bergantung pada komponen tersebut untuk memvalidasi lisensi, tidak menutup kemungkinan bahwa kamu juga bakalan berhadapan dengan masalah ketika kamu menggunakan aplikasi UWP lainnya, apalagi kalau ada pembelian dalam aplikasi.\nUntuk jangka panjangnya, tidak menutup kemungkinan bahwa registri yang berkaitan dengan WPA (Windows Product Activation) akan dipenuhi dengan data-data yang korup karena kegagalan mereka dalam memvalidasi lisensi, sehingga ini akan berefek ke boot Windows yang memakan waktu sangat lama dan stuck di logo Windows selama beberapa menit (pengalaman saya malah sampai 15 menit), tergantung jumlah registrinya.\nUntungnya semua masalah SppSvc ini bisa diperbaiki dengan memperbaiki registri WPA dan aktifkan kembali SppSvc-nya, palingan setelahnya kamu perlu alihkan dulu akun di komputer kamu ke akun lokal, lalu alihkan lagi ke akun Microsoft lagi aja kalau kamu dari awal memakai akun Microsoft untuk login.\nSatu komponen itu dimatikan saja bisa kena masalah di sistem ke depannya, apalagi kalau banyak? Kalau kamu cukup beruntung ya kamu bakalan bisa menggunakannya dengan biasa saja, tapi kalau sedikit tidak beruntung saja, seperti kena masalah di sistem dan suka berperilaku aneh, ya harusnya kamu lapor ke pembuat mod-nya agar diperbaiki oleh mereka, kalau gak ya ujung-ujungnya apa? Ya betul, instal ulang.\nKamu bawa ke teknisi yang jago sekali pun, ya palingan ujung-ujungnya disarankan instal ulang ke Windows edisi resmi tanpa modifikasi juga, karena mereka tidak mau ambil pusing oleh masalah yang disebabkan oleh modifikasi Windows itu sendiri.\nItu juga belum kalau ternyata kamu menghapus Windows Defender tanpa menginstal antivirus pihak ketiga hanya karena ingin meringankan sistem, ya kalau itu sih siap-siap aja virus/malware bakalan datang dengan sendirinya, dan jangan salah, mereka juga bisa menyebar lewat jaringan dan media penyimpanan eksternal, kamu pikir mereka ada hanya karena aktivitas internet dan instal software bajakan saja?\nJadi jangan salahkan sistem kalau komputermu tiba-tiba terkena virus, malware atau bahkan ransomware yang menyerang dan menyandera data-data pentingmu, toh menonaktifkannya itu adalah 100% hasil dari keputusanmu sendiri.\nDi sisi lain, Windows dengan kanal LTSC (termasuk IoT Enterprise LTSC) itu resmi dari Microsoft yang jauh lebih bersih ketimbang edisi biasanya, tapi tentu saja itu sangat stabil dengan masa dukungan yang sangat panjang tanpa perlu melakukan feature update, menggunakannya juga tidak menimbulkan masalah yang berarti, tidak seperti ketika kamu menggunakan modifikasi untuk Windows.\nItulah mengapa saya lebih menyarankan menggunakan LTSC sekalian ketimbang menggunakan modifikasi macam AtlasOS, ReviOS, Ghost Spectre, Tiny11, dll, tapi itu adalah hak kamu kalau kamu masih ingin memakainya.\nKamu juga bisa melakukan debloating di Windows edisi biasa secara mandiri (lihat di pertanyaan ke-7), itu akan jauh lebih baik ketimbang kamu memakai modifikasi macam AtlasOS, dll, karena kamu sendiri yang menentukan mana komponen yang layak dipakai dan mana yang tidak, bukan mereka.\nPertanyaan ke-9: Apakah berkas ISO itu sendiri merupakan asli dari Microsoft? Jawab: Tentu saja itu asli dari Microsoft yang diunduh melalui MVS, lalu diunggah lagi oleh mereka agar bisa diunduh oleh banyak orang. Kamu bisa mengecek keaslian berkas ISO dengan mencocokkan Hash yang ada di link Files RG-Adguard atau MVS Dump dengan yang ada di komputermu setelah diunduh.\nKalau kamu setidak yakin itu dengan berkas ISO yang disediakan, silakan pastikan sendiri dengan mengambil Hash SHA256 ISO-nya secara gratis dan resmi dengan cara berikut:\nKunjungi My Visual Studio (MVS), login menggunakan akun Microsoft kamu dan daftarkan diri sebagai \u0026ldquo;Dev Essentials\u0026rdquo; kalau belum pernah Cari Windows yang ingin kamu unduh (Pastikan kamu pilih \u0026ldquo;All Downloads\u0026rdquo; alih-alih \u0026ldquo;Available for my subscription(s)\u0026rdquo;) Pilih bahasa dan arsitektur sistem Klik pada ikon di bawah kolom tabel \u0026ldquo;Info\u0026rdquo; Informasi mengenai berkas ISO dan Hash SHA256-nya muncul di situ, silakan cocokan dengan yang ada di sana dan di Files RG-Adguard. Serta kamu dapat verifikasi sendiri hasil unduhannya, bisa pakai OpenHashTab, NanaZip, 7-Zip atau melalui perintah Get-FileHash di PowerShell 7 Itulah cara mengecek keaslian berkas ISO Windows yang tersedia tautannya di sini.\nPertanyaan ke-10: Kalau ISO di sini merupakan asli dari Microsoft, kenapa link download-nya bukan dari Microsoft juga? Jawab: Karena agar dapat mengunduh berkas ISO-nya dari sana, kamu harus berlangganan Visual Studio yang minimalnya paket \u0026ldquo;Professional\u0026rdquo; (atau \u0026ldquo;Enterprise\u0026rdquo; biar lengkap sekalian) dan itu semua perlu bayar tahunan (yang harga 1 tahun pertamanya dari puluhan juta sampai hampir ratusan juta rupiah), bukan bulanan. Selain itu, tautan unduhan yang dihasilkan dari MVS (My Visual Studio) itu tidak bertahan lama, biasanya hanya berlaku sampai 10 jam saja.\nTapi kan ISO Windows itu gratis diunduh di situs resmi Microsoft-nya langsung? Betul, tapi hanya untuk edisi biasa dan itu pun versinya lebih lama walau build-nya terbaru, sehingga kamu perlu menginstal Cumulative Update melalui Windows Update biar sistem kamu pakai versi terbaru.\nBelum lagi kalau kamu mau mengunduh ISO edisi perusahaan (Enterprise/Business Edition) dari Windows, ISO Windows jadul (seperti Windows 7), dll, itu semua perlu diunduh di MVS dan itu perlu berlangganan Visual Studio dengan sistem tahunan.\nMakanya orang-orang mengunggah ulang berkas ISO yang didapat dari sana, agar orang lain dapat mengunduhnya walau masa berlaku tautan dari sana sudah habis.\nEdisi perusahaan dari Windows memang tersedia untuk diunduh langsung melalui situs web Microsoft-nya tanpa perlu MVS, tapi itu hanya evaluasi semata dan kamu tidak bisa sama sekali mengaktifkannya bahkan setelah 90 hari, sehingga sangat tidak disarankan untuk menggunakannya.\nPertanyaan ke-11: Apakah aktivator seperti itu aman? Jawab: Kalau aman yang dimaksud adalah bebas dari virus dan malware, jawabannya adalah Iya. Keterbukaan kode dan kepopuleran aktivator tersebut di luaran sana cukup jadi bukti bahwa aktivator tersebut aman, selain itu skrip tersebut tidak menyisipkan kode apa pun yang dapat membahayakan komputer kamu.\nSkrip tersebut cuma membantu proses aktivasi Windows dan Microsoft Office. Maka dari itu, kamu bisa lakukan semua itu dengan manual kalau mau, silakan kunjungi halaman dokumentasi pada masing-masing metode aktivasi: HWID untuk aktivasi Windows, Ohook untuk aktivasi Microsoft Office atau TSforge untuk aktivasi Windows/ESU di Windows.\nNgomong-ngomong selain membantu proses aktivasi, skrip tersebut dapat digunakan sebagai \u0026lsquo;alat\u0026rsquo; untuk melakukan troubleshooting sistem Windows dan Microsoft Office baik sebelum masuk ke dalam skripnya maupun sebelum mengaktivasi sampai sistemnya dalam keadaaan \u0026lsquo;sempurna\u0026rsquo; untuk diaktivasi, ada juga fitur perbaikan yang bisa dicoba. Karena jika adanya kesalahan di sistem kamu, maka skrip tersebut tidak akan bisa mengaktifkannya, melainkan hanya memberikan solusi yang bisa kalian coba untuk perbaiki terlebih dahulu.\nSaking komprehensifnya cara skrip tersebut dalam melakukan troubleshooting, tidak terlalu mengherankan bila pada Maret 2023 \u0026ldquo;CS\u0026rdquo; Microsoft pernah memakai skrip ini untuk mengaktifkan Windows di komputer konsumennya tapi untungnya viral dan orang-orang jadi tahu, pada awal bulan Maret 2025 hal yang sama terjadi lagi, tapi gak viral.\nKemungkinan besar mereka berpikir bahwa skrip tersebut dapat membantu mereka dalam melakukan troubleshooting di komputer konsumennya, karena mereka tidak diberikan alat dan pengetahuan tentang troubleshooting Windows yang memadai.\nPenutup Ya begitu saja artikelnya, bagaimana menurutmu? Mudah bukan? Di sini ada 7 cara untuk mempersiapkannya dengan risiko dan manfaatnya masing-masing, tinggal pilih salah satunya saja mana yang menurut Anda cocok.\nPersiapkan hal itu sedini mungkin jika Anda masih ingin menggunakan komputernya, lebih cepat lebih baik. Semoga dengan artikel ini, Anda dapat mempersiapkan semuanya.\nTerima kasih bagi 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, kurang rapi, dll, karena artikel ini jauh dari sempurna.\nSaya akan berusaha untuk terus-terusan memperbarui artikel ini seiring berkembangnya informasi yang ada, karena yang saya pos ini adalah tutorial, sehingga perlu adanya penyesuaian.\nJika adanya kesalahan dan kekeliruan, atau kalau Anda memiliki pertanyaan lainnya, silakan berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk ke depannya nanti.\nTerima kasih atas perhatiannya 😊\nPenggunaan 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.\nJika Anda ingin menjelajahinya, silakan kunjungi alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2025/10/13-masa-dukungan-windows-10-sudah-habis Gambar unggulan yang digunakan pada artikel ini merupakan foto dari sebuah trit dari Reddit, foto tersebut dimiliki oleh seorang pengguna Reddit yakni r/mildlyinfuriating/.\n","date":"2025-10-13T22:52:05+07:00","image":"/masa-dukungan-windows-10-sudah-habis/windows-10-end-of-support-warning_hu_b10a1d2941bf300a.webp","permalink":"/masa-dukungan-windows-10-sudah-habis/","title":"Masa Dukungan Windows 10 sudah habis pada tanggal 14 Oktober 2025: Kita harus apa?"},{"content":"Pembuka Rclone adalah sebuah program berbasis baris perintah yang bertujuan untuk mengelola berkas di layanan penyimpanan berbasis awan (Cloud Storage).\nPerangkat lunak ini adalah alternatif yang kaya fitur dari antarmuka penyedia penyimpanan berbasis awan, selain itu Rclone sendiri mendukung berbagai macam penyedia penyimpanan awan dan protokol transfer standar.\nSedangkan GitHub Actions adalah sebuah platform integrasi dan penyebaran berkelanjutan (disebut sebagai CI/CD, yang merupakan singkatan dari Continuous Integration and Continuous Deployment) dari GitHub yang memungkinkan Anda untuk mengotomatiskan alur pembangunan (build), pengujian, dan penyebaran Anda.\nPlatform tersebut dapat digunakan dengan berbagai tujuan, seperti menghimpun kode sumber, menguji sebuah perangkat lunak beserta fungsinya, menghasilkan sebuah web statis lalu mengunggahnya, dll.\nKenapa? Karena pada dasarnya platform tersebut merupakan komputer/server virtual yang menjalani perintah apa pun yang Anda perlukan, tetapi dengan kontrol yang lebih terbatas, jadi Anda hanya bisa menjalankan perintah yang sudah tertera di dalam konfigurasinya saja.\nSelain itu, data yang tersimpan di dalamnya akan terhapus secara otomatis oleh sistem setelah selesai (kecuali jika data-data tersebut diunggah ke server yang berbeda), hal seperti ini merupakan umum di platform CI/CD mana pun, tidak terbatas pada GitHub Actions saja.\nKarena batasan-batasan tersebut yang tidak seperti perangkat pada umumnya, maka cara memakai/mengimplementasikan Rclone di CI/CD seperti GitHub Actions itu sendiri akan cukup berbeda ketimbang memakainya di dalam komputer/server biasa.\nNah, oleh karena itu, artikel yang cukup singkat ini akan membahas tentang cara memakai Rclone di GitHub Actions, jika Anda adalah pengguna Rclone dan ingin mengimplementasinya ke GitHub Actions yang merupakan penyedia CI/CD dengan berbagai keperluan, mungkin artikel ini akan sangat cocok untuk Anda.\nPersiapan Berikut di bawah ini adalah persiapan yang harus Anda lakukan untuk mengimplementasinya ke dalam GitHub Actions, antara lain:\nMempunyai akun GitHub, repositorinya dan bisa memakai GitHub Actions Terpasangnya Rclone di dalam sistem operasi Anda dan pernah menggunakan serta mengkonfigurasi Rclone sebelumnya Itu aja? Iya, cuma itu aja persiapannya. Setelah semuanya sudah siap, tinggal perlu implementasikan saja ke GitHub Actions\nKonfigurasi GitHub Actions Untuk konfigurasinya, Anda bisa memakai contoh konfigurasi berikut. Konfigurasi di bawah ini adalah konfigurasi agar GitHub Actions dapat menghasilkan web statis dengan Hugo Extended dan mengunggahnya ke penyimpanan S3 dengan Rclone:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 name: Build and Deploy on: push: branches: - main jobs: build: name: Build runs-on: ubuntu-22.04 env: TZ: Asia/Jakarta ## Mengatur Zona Waktu menjadi Asia/Jakarta, yang merupakan sebutan lain dari WIB (Waktu Indonesia Barat) HUGO_ENV: production ## Mengatur lingkungan yang digunakan oleh Hugo ## Langkah di bawah ini akan mengkloning kode sumber dari Repo kamu steps: - name: Checkout the Code uses: actions/checkout@v3 with: fetch-depth: 0 ## Langkah di bawah ini akan menginstal Hugo Extended di dalam sistem CI/CD yang sedang dijalankan - name: Install and Set up Hugo Extended uses: peaceiris/actions-hugo@v2 with: hugo-version: \u0026#39;latest\u0026#39; extended: true ## Langkah di bawah ini akan membangun sebuah web statis - name: Building the Static Web run: hugo --gc --minify ## Langkah di bawah ini akan menginstal dan mengkonfigurasi Rclone di dalam sistem CI/CD - name: Installing and Configuring Rclone run: | curl https://rclone.org/install.sh | sudo bash mkdir -p ${HOME}/.config/rclone echo \u0026#34;${{ secrets.RCLONE_CONFIG }}\u0026#34; \u0026gt; ${HOME}/.config/rclone/rclone.conf ## Langkah di bawah ini akan mengunggah web statis ke penyimpanan S3 - name: Upload Static Web to S3 Storage env: ## Variabel di bawah ini (RCLONE_CONFIG_PASS) adalah kata sandi untuk mengakses Konfigurasi Rclone ## jika Anda mengenkripsinya, jika tidak maka Anda tidak perlu mendeklarasikan variabel di bawah ini ## Sedangkan jika iya, maka Anda perlu mendeklarasikan variabel itu yang nilainya diambil dari \u0026#34;Secrets\u0026#34; yang bernama \u0026#34;RCLONE_CONFIG_PASS\u0026#34; RCLONE_CONFIG_PASS: ${{ secrets.RCLONE_CONFIG_PASS }} ## Kedua variabel di bawah ini adalah menentukan nama remot dan lokasi tujuannya S3_SERVICE: NAMA_REMOTE_RCLONE ## Ganti NAMA_REMOTE_RCLONE dengan nama remot yang ada di konfigurasi Rclone S3_STORAGE_BUCKET_PATH: LOKASI_TUJUAN ## Ganti LOKASI_TUJUAN dengan folder/lokasi tujuan di remot yang ingin Anda isi run: rclone sync -v -P --stats-one-line ./public ${S3_SERVICE}:/${S3_STORAGE_BUCKET_PATH} Konfigurasi di atas merupakan contohnya saja yang kasusnya adalah menghasilkan web statis dengan Hugo, lalu mengunggahnya ke penyimpanan berbasis S3, bisa saja Anda memiliki kasus yang berbeda sehingga konfigurasinya tidaklah sama seperti di atas.\nNamun secara garis besar, itulah cara memakai Rclone di GitHub Actions, tetapi ada beberapa hal yang harus Anda perhatikan di atas, yakni:\n${{ secrets.RCLONE_CONFIG }}: Ini adalah sebuah variabel \u0026ldquo;Secrets\u0026rdquo; yang bernama RCLONE_CONFIG dan berisikan konfigurasi Rclone itu sendiri. Karena isinya tersimpan di dalam \u0026ldquo;Secrets\u0026rdquo;, maka tidak mungkin variabel tersebut dideklarasikan ke dalam berkas konfigurasi, nanti akan saya bahas cara pembuatannya.\nBiasanya, berkas konfigurasi Rclone berlokasi di:\nUntuk Windows: %APPDATA%\\rclone\\rclone.conf %USERPROFILE%\\.config\\rclone\\rclone.conf Untuk *nix $XDG_CONFIG_HOME/rclone/rclone.conf ~/.config/rclone/rclone.conf Atau, di dalam direktori program itu sendiri Untuk lebih lanjut, silakan kunjungi halaman dokumentasinya.\nAtau, Anda dapat mengetahui keberadaan berkas tersebut dengan mengeksekusi perintah rclone config file, nanti akan keluar lokasi berkas konfigurasi Rclone yang Anda pakai sekarang\n${{ secrets.RCLONE_CONFIG_PASS }}: Ini adalah sebuah variabel \u0026ldquo;Secrets\u0026rdquo; yang bernama RCLONE_CONFIG_PASS dan berisikan kata sandi untuk konfigurasi Rclone jika Anda mengenkripsinya. Karena isinya tersimpan di dalam \u0026ldquo;Secret\u0026rdquo;, jadi tidak mungkin dideklarasikan ke dalam berkas konfigurasi, nanti akan saya bahas cara pembuatannya.\nBagi yang belum tahu apa itu \u0026ldquo;Secrets\u0026rdquo;. \u0026ldquo;Secrets\u0026rdquo;, sesuai dengan namanya, adalah sebuah variabel-variabel bersifat \u0026lsquo;rahasia\u0026rsquo; yang nilainya disimpan di dalam server yang terenkripsi.\nBukan hanya terenkripsi, bahkan isi dari variabel \u0026ldquo;Secret\u0026rdquo; pun disembunyikan dari dalam log GitHub Actions, sehingga tidak ada seorang pun yang dapat mengetahui apa isinya, kecuali jika diakali, misalnya mengunggah isi dari \u0026ldquo;Secret\u0026rdquo; tersebut ke server luar dan hal tersebut perlu izin/turun tangan langsung dari pengurus atau/dan pembuat repositorinya.\nSemua variabel \u0026ldquo;Secrets\u0026rdquo; pada konfigurasi di atas bisa diubah sesuka hati, contohnya: ${{ secrets.RCLONE_CONFIG }} menjadi ${{ secrets.RCLONE_CONFIG_FILE }}. Namun ketika Anda ingin membuatnya nanti, pastikan namanya sesuai dengan yang ada di konfigurasi (Atau, konfigurasinya menyesuaikan dengan yang ada di \u0026ldquo;Secrets\u0026rdquo;-nya).\nKalau sudah selesai, simpanlah berkas konfigurasi untuk GitHub Actions tersebut ke dalam direktori .github/workflows yang terletak di dalam repositori kamu.\nSetelah disimpan, jangan dibuat commit, lalu di-push dulu. Bagian selanjutnya adalah membuat terlebih dahulu \u0026ldquo;Secret\u0026rdquo;-nya.\nMembuat GitHub Actions Secret Langkah-langkah untuk membuat GitHub Actions Secret-nya sebagai berikut:\nLangkah ke-1: Kunjungi repositori GitHub kamu terlebih dahulu\nLangkah ke-2: Di repositori, klik pada \u0026ldquo;Settings\u0026rdquo; yang berikon roda gerigi\nLangkah ke-3: Nanti di bagian \u0026ldquo;Security\u0026rdquo;, klik pada \u0026ldquo;Secrets\u0026rdquo;, lalu klik \u0026ldquo;Actions\u0026rdquo; di dalamnya\nLangkah ke-4: Kamu akan mengunjungi \u0026ldquo;Actions secret\u0026rdquo;, untuk membuatnya klik pada Button \u0026ldquo;New repository secret\u0026rdquo;\nLangkah ke-5: Isikan nama dari \u0026ldquo;Secret\u0026rdquo; yang ingin Anda buat, lalu isikan juga nilainya. Jika sudah selesai dan merasa yakin, klik pada Button \u0026ldquo;Add secret\u0026rdquo; untuk menambahkan \u0026ldquo;Secret\u0026rdquo;\nLangkah ke-6: Jika sudah berhasil dibuat, seharusnya muncul pesan \u0026ldquo;Repository secret added\u0026rdquo; dan \u0026ldquo;Secret\u0026rdquo; dengan nama yang Anda tentukan tadi sudah langsung ada\nKalau Anda merasa tidak paham atau kebingungan dalam mengikuti langkah-langkah di atas, Anda dapat melihat cuplikan berikut di bawah ini, saya urutkan gambarnya berdasarkan angka yang tertera di keterangan gambar:\nSetelah GitHub Actions Secret dibuat Setelah itu, Anda perlu memeriksa apakah konfigurasi beserta variabelnya sudah benar-benar sesuai dengan kebutuhan Anda, kalau merasa yakin maka Anda dapat segera buat commit, lalu push ke dalam repositori Anda.\nSetelah di-push, lihat log progresnya akan berjalan seperti apa, pastikan bahwa GitHub Actions dapat menjalankannya dengan baik tanpa mengalami masalah/galat (error).\nPenutup Terima kasih kepada Anda yang telah membaca dan memahami artikel ini. Itu saja dulu untuk artikel kali ini, maaf artikelnya belum memiliki gambar ataupun cuplikan apa pun untuk saat ini, sehingga terkesan sangat kurang lengkap.\nPEMBARUAN Selasa, 09 September 2022: Sekarang artikel ini memiliki cuplikan dan diperbarui supaya lebih lengkap.\nArtikel ini saya buat berdasarkan pengalaman saya dalam mengimplementasikan Rclone ke dalam GitHub Actions untuk mengunggah web statis ke berbagai penyedia penyimpanan.\nSemoga artikel ini bermanfaat untuk Anda, terutama yang ingin mengimplementasikan Rclone ke dalam GitHub Actions. Itu saja dan terima kasih atas perhatiannya 😊\n","date":"2022-08-19T19:56:40+07:00","permalink":"/cara-memakai-rclone-di-github-actions/","title":"Cara memakai Rclone di GitHub Actions"},{"content":"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 \u0026ldquo;Google Public CA\u0026rdquo;, 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.\nPengumumannya dapat Anda baca di sini.\nTapi 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.\nArtinya 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.\nUntuk saat ini, Anda bisa mendapatkan sertifikat tersebut secara gratis, mendukung RSA/ECC sebagai algoritma kunci publik dan mendukung penerbitan dalam bentuk Wildcard juga.\nSelain itu, sertifikat yang diterbitkan merupakan sertifikat langsung dari \u0026ldquo;Google Trust Services (GTS)\u0026rdquo;, yang kompatibilitas perangkatnya tidak perlu diragukan lagi dan menggunakan infrastruktur dari Google untuk menerbitkannya.\nPersiapan Karena ini sepenuhnya menggunakan protokol ACME dan ini bersifat Self-managed, maka tentu saja tidak ada antarmuka pengguna dari Google secara langsung untuk mengelolanya.\nJadi, persiapan yang perlu Anda lakukan adalah sebagai berikut:\nPunya 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.\nJadi, maaf yah buat pengguna Lego dan lainnya, saya belum bisa menjelaskannya, karena saya belum pernah pakai.\nNamun, 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.\nJika Anda menggunakan acme.sh sebagai perkakasnya, silakan perbarui terlebih dahulu versinya dengan perintah berikut:\nacme.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.\nSetelah semuanya sudah siap, gak usah banyak cing-cong, mari langsung eksekusi!\nMembuat Proyek di Google Cloud Console Pertama-tama, Anda perlu membuat sebuah Proyek (bahasa Inggrisnya: Project) di \u0026ldquo;Google Cloud Console\u0026rdquo; (Sebelumnya bernama \u0026ldquo;Google Developer Console\u0026rdquo;). Ini nantinya diperlukan karena kamu akan mengakses API-nya.\nSebagai 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.\nJadi, jika kamu sebelumnya telah membuat proyek di sana, maka saya sarankan kamu lewati ini dan pakai proyek yang ada saja, cukup simpan saja \u0026ldquo;Project ID\u0026rdquo; pada proyek yang telah Anda buat sebelumnya, karena itu akan dipakai.\nJika belum, Anda bisa membuatnya melalui \u0026ldquo;Cloud Shell\u0026rdquo; yang ada di \u0026ldquo;Google Cloud Console\u0026rdquo;-nya, caranya berikut ini:\nLangkah ke-1: Masuk ke \u0026ldquo;Google Cloud Console\u0026rdquo;-nya\nLangkah ke-2: Setelah masuk, aktifkan \u0026ldquo;Cloud Shell\u0026rdquo;-nya dengan klik pada ikon Terminal di pojok kanan atas, seperti pada cuplikan berikut:\nKalau ada konfirmasi \u0026ldquo;Authorize Cloud Shell\u0026rdquo;, klik \u0026ldquo;Authorize\u0026rdquo; dan gunakan akun Anda jika disuruh memilih.\nCatatan: 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.\nLangkah ke-3: Di \u0026ldquo;Cloud Shell\u0026rdquo;-nya, silakan buat proyeknya dengan perintah berikut:\ngcloud projects create \u0026lt;PROJECT_ID\u0026gt; Tentukan sendiri ID Proyeknya (Project ID) dengan menggantikan \u0026lt;PROJECT_ID\u0026gt;-nya. ID Proyek haruslah unik, boleh terdiri dari tanda strip, angka dan huruf kecil, tidak boleh selain itu.\nContoh:\ngcloud 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.\nLangkah ke-4: Setelah menentukan ID Proyeknya, silakan tekan \u0026ldquo;Enter\u0026rdquo;, nanti secara otomatis akan dibuatkan proyeknya. Jika ini berhasil, maka keluarannya akan seperti berikut:\n1 2 3 4 5 $ gcloud projects create test-project-3049113 Create in progress for [https://cloudresourcemanager.googleapis.com/v1/projects/test-project-3049113]. Waiting for [operations/cp.5266221063755867120] to finish...done. Enabling service [cloudapis.googleapis.com] on project [test-project-3049113]... Operation \u0026#34;operations/acat.p2-566660100705-de51fa1a-3c95-49b1-907a-7e26627da3e4\u0026#34; finished successfully. Kira-kira akan seperti di atas.\nLangkah ke-5: Jika berhasil, maka sebaiknya kamu simpan ID dari proyek tersebut dengan baik di dalam perangkat kamu.\nJika semua sudah selesai, tinggal langsung aktifkan saja.\nMengaktifkan 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.\nCaranya seperti berikut:\nLangkah ke-1: Masuk ke \u0026ldquo;Google Cloud Console\u0026rdquo;-nya\nLangkah ke-2: Setelah masuk, silakan aktifkan \u0026ldquo;Cloud Shell\u0026rdquo;-nya dengan klik pada ikon Terminal di pojok kanan atas. Kalau ada konfirmasi \u0026ldquo;Authorize Cloud Shell\u0026rdquo;, klik \u0026ldquo;Authorize\u0026rdquo; dan gunakan akun Anda jika disuruh memilih.\nCatatan: 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.\nLangkah ke-3: Di \u0026ldquo;Cloud Shell\u0026rdquo;-nya, pastikan Anda memilih proyek mana yang ingin diaktifkan Akses API-nya:\ngcloud config set project \u0026lt;PROJECT_ID\u0026gt; Ganti \u0026lt;PROJECT_ID\u0026gt; dengan ID Proyek Anda.\nLangkah ke-4: Berikan izin untuk membuat kredensial EAB dengan perintah berikut di dalam \u0026ldquo;Cloud Shell\u0026rdquo;-nya:\ngcloud projects add-iam-policy-binding \u0026lt;PROJECT_ID\u0026gt; \\ --member=user:\u0026lt;USER\u0026gt; \\ --role=roles/publicca.externalAccountKeyCreator Ganti \u0026lt;PROJECT_ID\u0026gt; dengan ID Proyek Anda. Ganti \u0026lt;USER\u0026gt; dengan Alamat Surel untuk akun Google Anda atau Alamat Surel lain yang ingin Anda tambahkan izinnya.\nLangkah ke-5: Aktifkan Akses API-nya dengan perintah berikut:\ngcloud services enable publicca.googleapis.com Langkah ke-6: Setelah diaktifkan, buatlah kredensial EAB-nya dengan perintah berikut:\ngcloud publicca external-account-keys create Jika berhasil, nanti keluarannya akan seperti berikut:\n[b64MacKey: Qxxx_dxxxxxxxxxxxxxxxxxxxxx_cxxx-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx keyId: bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] Hal yang perlu diperhatikan/dicatat adalah bahwa:\nNilai dari b64MacKey adalah \u0026ldquo;EAB HMAC Key\u0026rdquo;-nya Nilai dari keyId adalah \u0026ldquo;EAB Key ID\u0026rdquo; atau \u0026ldquo;EAB KID\u0026rdquo;-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.\nKredensial 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.\nJadi, buruan dipakai kredensial EAB-nya setelah ini.\nJika 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.\nMembuat 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).\nIni 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.\nCaranya 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:\nLangkah ke-6: Anda perlu mengganti alamat URL Endpoint untuk Google Public CA-nya dengan perintah berikut, lalu tekan \u0026ldquo;Enter\u0026rdquo;:\ngcloud 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:\ngcloud publicca external-account-keys create Jika berhasil, nanti keluarannya akan seperti berikut:\n[b64MacKey: Qxxx_dxxxxxxxxxxxxxxxxxxxxx_cxxx-2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx keyId: bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] Hal yang perlu diperhatikan/dicatat adalah bahwa:\nNilai dari b64MacKey adalah \u0026ldquo;EAB HMAC Key\u0026rdquo;-nya Nilai dari keyId adalah \u0026ldquo;EAB Key ID\u0026rdquo; atau \u0026ldquo;EAB KID\u0026rdquo;-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.\nSimpanlah kredensial tersebut dengan baik.\nLangkah ke-8: Setelah selesai mencatat, Anda perlu mengembalikan alamat URL Endpoint-nya seperti semula dengan perintah berikut:\ngcloud 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.\nMeski begitu, akun untuk server ACME yang telah Anda daftarkan menggunakan kredensial tersebut tidak memiliki masa berlaku.\nJika 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.\nMengkaitkan 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 \u0026ldquo;akun\u0026rdquo; untuk server ACME-nya, dalam instruksi kali ini saya memakai acme.sh sebagai perkakas klien untuk protokol ACME-nya.\nUntuk mendaftarkan sebuah akun dengan menggunakan Kredensial EAB yang telah dibuat sebelumnya, Anda dapat menggunakan perintah berikut:\nacme.sh --register-account -m \u0026lt;ALAMAT_SUREL_KAMU\u0026gt; \\ --eab-kid \u0026lt;EAB_KID_KAMU\u0026gt; \\ --eab-hmac-key \u0026lt;EAB_HMAC_KEY_KAMU\u0026gt; \\ --server google Ganti:\n\u0026lt;ALAMAT_SUREL_KAMU\u0026gt; menjadi alamat surel kamu \u0026lt;EAB_KID_KAMU\u0026gt; menjadi \u0026ldquo;EAB KID\u0026rdquo; yang telah kamu simpan sebelumnya \u0026lt;EAB_HMAC_KEY_KAMU\u0026gt; menjadi \u0026ldquo;EAB HMAC Key\u0026rdquo; 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.\nJika registrasi berhasil, maka Anda sudah mulai bisa menerbitkan sertifikat SSL/TLS dengan menggunakan \u0026ldquo;Google Public CA\u0026rdquo;, lalu bisa Anda kelola sesuka hati menggunakan perkakas acme.sh.\nMenerbitkan sertifikat SSL/TLS dari Google Untuk menerbitkan sertifikat SSL/TLS dari Google melalui acme.sh, maka Anda hanya perlu pelajari contoh perintah berikut:\nacme.sh --issue \\ -d \u0026#34;*.contoh.com\u0026#34; \\ -d contoh.com \\ --dns dns_cf --server google Perintah di atas akan menerbitkan sertifikat SSL/TLS dengan menggunakan \u0026ldquo;Google Public CA\u0026rdquo; sebagai CA-nya, sertifikat tersebut mencakup hanya untuk domain *.contoh.com dan contoh.com saja dengan menggunakan layanan DNS dari Cloudflare sebagai metode verifikasinya.\nSelain 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.\nJika 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.\nAnda juga bisa menggantikan google pada parameter --server menjadi googletest jika Anda ingin menguji coba proses penerbitan sertifikat tanpa harus mempengaruhi rate limit aslinya.\nJika ingin menerbitkan sertifikat SSL/TLS dengan rantai murni ECC, Anda dapat menambahkan parameter --profile minimal agar GTS menerbitkan sertifikatnya menggunakan profil minimal.\nContoh perintahnya menjadi seperti berikut:\nacme.sh --issue \\ -d \u0026#34;*.contoh.com\u0026#34; \\ -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.\nUntuk 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.\nPerkakas acme.sh menggunakan ZeroSSL sebagai CA baku, sehingga Anda tetap diharuskan untuk menggunakan parameter --server setiap kali menerbitkan sertifikat SSL/TLS baru dari Google.\nJika Anda ingin menggantikan CA bakunya, Anda bisa memakai perintah berikut:\nacme.sh --set-default-ca --server google Dengan begini, Anda tidak perlu lagi memakai parameter --server hanya sekadar menerbitkan sertifikat SSL/TLS dari Google saja.\nNah, 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.\nPertanyaan 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.\nHanya saja, maksimum proyek yang bisa Anda buat adalah sebanyak 10 proyek per Akun. Jadi, jika Anda pernah memiliki/membuat proyek sebelumnya di \u0026ldquo;Google Cloud Console\u0026rdquo; atau Google Developer Console, maka saya sangat menyarankan agar memakai proyek yang ada saja.\nPertanyaan 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.\nPertanyaan 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.\nNamun, Google menyarankan minimum 3 hari untuk menghindari masalah ketidaksesuaian waktu sistem atau tumpang tindih validitas yang dapat mengakibatkan gangguan akses.\nPertanyaan 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 \u0026lt;tanggal waktu\u0026gt; saat ingin menerbitkan sebuah sertifikat.\nContoh:\nacme.sh --issue \\ -d \u0026#34;*.contoh.com\u0026#34; \\ -d contoh.com \\ --dns dns_cf --valid-to \u0026#34;+30d\u0026#34; Perintah di atas akan menerbitkan sertifikat SSL/TLS untuk domain *.contoh.com dan contoh.com dengan masa berlaku selama 30 hari.\nContoh lainnya:\nacme.sh --issue \\ -d \u0026#34;*.contoh.com\u0026#34; \\ -d contoh.com \\ --dns dns_cf --valid-to \u0026#34;+30h\u0026#34; Sama seperti perintah sebelumnya, bedanya hanya masa aktifnya selama 30 jam saja.\nFormat yang diterima oleh parameter di atas adalah +*d dan +*h saja, selain itu akan ditolak.\nSelain 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\nContoh:\nacme.sh --issue \\ -d \u0026#34;*.contoh.com\u0026#34; \\ -d contoh.com \\ --dns dns_cf --valid-to \u0026#34;2022-04-01T08:10:33Z\u0026#34; 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.\nMenggunakan format absolut membuat acme.sh tidak sanggup memperbarui sertifikatnya secara otomatis, jadi disarankan pakai format relatif. Untuk lebih lanjut, silakan kunjungi halaman dokumentasinya.\nPertanyaan 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:\nCross-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.\nMenerbitkan sertifikat dengan profil minimal pun akan mendapatkan GTS Root R4 yang Cross-sign dengan GlobalSign Root CA - R1 juga.\nSaya 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.\nPertanyaan 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.\nMudah saja, cukup masuk ke Google Cloud Console -\u0026gt; Lalu buka Cloud shell-nya dan lakukan otorisasi -\u0026gt; Pastikan ID proyeknya sudah dipilih dan sesuai, lalu jalankan perintah berikut:\ngcloud 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.\nPertanyaan 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.\nPertanyaan ke-8: Saya memakai perkakas ACME selain acme.sh, seperti Certbot, apa alamat URL untuk direktori ACME-nya? Alamat URL-nya sebagai berikut:\nServer Produksi (baku):\nhttps://dv.acme-v02.api.pki.goog/directory Server Uji coba:\nhttps://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.\nSaat 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.\nWalau 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.\nJadi kalau kamu ada masalah saat penggunaan, saya sarankan beralih lagi ke sertifikat TLS biasa.\nPEMBARUAN Jum\u0026rsquo;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.\nPertanyaan ke-10: Kenapa kamu memakai acme.sh? Perkakas acme.sh dipilih karena alasan berikut:\nRingan 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\u0026rsquo;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.sh sehingga 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.\nTapi, 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.\nPertanyaan ke-11: Apa kelebihan dan kekurangan dari Google Public CA menurut kamu? Kelebihan:\nPenerbitan/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 \u0026ldquo;keunikan\u0026rdquo;) 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: standard untuk sertifikat standar, tapi ukuran sertifikatnya cukup besar (profil bawaan) minimal untuk sertifikat dengan ukuran yang jauh lebih kecil dan rantai yang sepenuhnya ECC, tapi menghapus 4 ekstensi penting, termasuk subject:commonName (atau \u0026ldquo;Common Name\u0026rdquo;) 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:\nRantai 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\nTentu kamu bisa menerbitkan sertifikat dengan rantai (hampir) murni ECC, tapi harus menggunakan profil minimal, yang mana itu akan menghapus 4 ekstensi penting, termasuk subject:commonName (atau \u0026ldquo;Common Name\u0026rdquo;) dan mungkin akan berimbas pada kompatibilitas perangkat lama yang bergantung pada ekstensi-ekstensi tersebut.\nTidak mendukung nama domain Unicode yang disandikan atau di-encode menggunakan Punycode.\nSehingga kemungkinan besar tidak ada dukungan nama domain terinternasionalisasikan (bahasa Inggris: Internationalized Domain Names atau disingkat menjadi IDN) dan huruf lain selain alfabet, termasuk emoji\nPEMBARUAN Jum\u0026rsquo;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.\nJika 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.\nTapi, 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.\nJadi 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.\nUntuk perbandingan antar CA ACME lebih lanjut, silakan kunjungi salah satu halaman dokumentasi Posh-ACME dengan klik di sini.\nMungkin hal di atas bisa saja ada yang salah, jika ada koreksi, silakan berikan masukkannya melalui kolom komentar.\nPertanyaan 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.\nJika ada masalah saat pemakaian ataupun pembaruan sertifikat (semoga jangan), mungkin akan saya perbarui juga di sini.\nUntuk pencabutannya belum saya coba, karena saya belum sempat dan belum ada urgensi juga untuk mencabut sertifikatnya, mungkin ke depannya akan saya coba.\nPertanyaan 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.\nUntuk 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.\nHal di atas bukan hanya berlaku untuk GTS saja, tapi berlaku juga untuk URL direktori ACME lainnya seperti Let\u0026rsquo;s Encrypt, ZeroSSL, Buypass, SSL.com, dll yang bisa Anda coba sendiri.\nNamun 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.\nUntuk mempercantik tampilan/keluaran JSON, silakan gunakan ekstensi berikut di peramban web Anda:\nGoogle 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:\ncurl -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):\niwr 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.\nPenutup 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.\nItu 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.\nMaaf 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.\nTerima 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.\nSaya akan berusaha untuk terus-terusan memperbarui artikel ini seiring berkembangnya Informasi yang ada, karena yang saya pos ini adalah tutorial, sehingga perlu adanya penyesuaian.\nJika 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.\nPenggunaan 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.\nJika Anda ingin menjelajahinya, silakan kunjungi Alamat URL berikut:\nhttps://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 \u0026ldquo;Google LLC\u0026rdquo;, sehingga nama merek dan logo tersebut bukanlah milik saya pribadi.\n","date":"2022-05-15T23:32:00+07:00","image":"/cara-mendapatkan-sertifikat-ssl-dari-google/Google-Trust-Services-Logo_hu_729bc1ad9e68444c.webp","permalink":"/cara-mendapatkan-sertifikat-ssl-dari-google/","title":"Cara mendapatkan Sertifikat SSL Gratis dari Google (memakai acme.sh)"},{"content":"Pembuka Menggunakan Termux itu bisa menyenangkan jika kamu memiliki tujuan. Jika tidak, maka sama saja seperti membuang air ke laut, ya sama-sama gak berguna.\nNamun bagi sebagian orang, mengetik baris perintah dari layar ponsel itu sangatlah tidak nyaman, apalagi jika baris perintah itu panjang kali lebar dan berjumlah banyak.\nJika Anda memiliki perangkat seperti komputer desktop/laptop, selain ponsel Android, mungkin Anda akan lebih nyaman jika mengetik baris perintah tersebut di komputer desktop/laptop ketimbang di layar ponsel?\nKalau begitu, kenapa gak kamu pakai Termux dari komputer desktop/laptop-mu saja?\nNah, inilah yang sedang saya bahas di artikel ini, yakni \u0026ldquo;Cara menggunakan Termux dari komputer desktop/laptop\u0026rdquo;.\nDah, gak usah banyak cingcong, mari saya bahas langsung persiapan dan caranya.\nPersiapan Gak ada persiapan khusus, cuma perlu koneksi internet, ponsel atau tablet Android Anda dan tentunya sudah terinstal Termux di dalamnya.\nTermux dapat Anda unduh di F-Droid atau di Google Play Store, tapi saya sarankan agar mengunduhnya di F-Droid saja, karena rilisan Google Play Store masih dalam tahap eksperimen, sehingga belum stabil.\nUntuk versi Android-nya sendiri, saya sarankan agar Anda menggunakan Android versi 7.0 atau di atasnya agar dapat menggunakan Termux versi terbaru.\nSebaiknya kamu meng-update semua paket yang terinstal di Termux untuk mengikuti ini dengan perintah pkg upg -y, tapi kalau tidak mau ya gak apa-apa, bisa dicoba dulu.\nPastikan agar komputer desktop/laptop dan perangkat Android kamu terkoneksi ke dalam jaringan yang sama, jika Anda tidak menyewa sebuah layanan internet Fixed Broadband seperti IndiHome, First Media, Biznet Home, dll atau tidak memiliki perangkat khusus yang memancarkan sinyal Wi-Fi di rumah (seperti: Modem ONT, Router Wi-Fi, Access Point, dll), Anda bisa gunakan fitur Hotspot Tethering (bahasa Indonesia: Penambatan Hotspot) atau USB Tethering (bahasa Indonesia: Penambatan USB) yang ada di ponsel/tablet kamu.\nSerta pastikan juga bahwa perangkat lunak klien SSH ada terinstal di dalam komputer desktop/laptop kamu. Anda bisa gunakan PuTTY atau Bitvise untuk itu, tapi jika Anda menggunakan Windows 10 atau di atasnya atau sistem operasi berbasis Linux/Unix, maka Anda bisa menggunakan OpenSSH sebagai Klien SSH yang sudah terinstal di dalam sistem Anda.\nCaranya Konfigurasi Awal Pada bagian ini saya membahas konfigurasi awalnya, saya susun semuanya dalam langkah-demi-langkah supaya Anda bisa memahaminya dengan mudah.\nBerikut adalah hal yang harus Anda lakukan:\nLangkah ke-1: Buka Aplikasi Termux (Pastinya)\nLangkah ke-2: Instal paket openssh dan termux-services di dalam Termux kamu dengan perintah berikut:\npkg i -y openssh termux-services Atau, di bawah ini jika Anda ingin menggunakan APT:\napt update; apt install -y openssh termux-services Kalau mau, setelah ini Anda juga dapat menginstal nmap untuk mengecek port yang aktif atau/dan iproute2 sebagai utilitas jaringan, salah satunya adalah mengecek Alamat IP pada jaringan yang Anda gunakan sekarang, dengan perintah berikut:\npkg i -y nmap iproute2 Atau, di bawah ini jika Anda ingin menggunakan APT:\napt update; apt install -y nmap iproute2 Langkah ke-3: Kamu perlu menyetel kata sandi untuk nama pengguna yang kamu gunakan dengan mengetikkan passwd di dalam Termux, lalu tekan ↵ Enter, tanpa perlu mengingat/menyebutkan nama penggunanya secara spesifik dan tanpa perlu memasukkan argumen apa pun.\nSetelah itu, masukkan kata sandi baru yang Anda inginkan, itu akan digunakan untuk login ke dalam SSH-nya nanti, kata sandi yang Anda masukkan tidak tampil di konsol, jadi jangan sampai lupa!\nContoh perintah dan keluarannya sebagai berikut jika sukses:\n$ passwd New password: Retype new password: New password was successfully set. Ini serius, kamu gak perlu menyebutkan ataupun mengingat Nama Pengguna (Username)-nya.\nLangkah ke-4: Aktifkan server SSH-nya dengan mengetik sshd di dalam Termux, lalu tekan ↵ Enter\nLangkah ke-5: Cek terlebih dahulu untuk memastikan server SSH aktif di Termux dengan mengetikkan pidof sshd, lalu tekan ↵ Enter.\nJika tidak ada hasil keluaran apa pun, maka artinya server SSH tidak dalam keadaan aktif.\nJika ada hasil keluaran yang berbentuk angka, maka artinya server SSH dalam keadaan aktif.\nSelain menggunakan pidof, jika sebelumnya Anda telah menginstal nmap, maka Anda juga dapat mengeceknya melalui nmap untuk memastikan port mana saja yang aktif.\nEksekusikan perintah nmap localhost di dalam Termux untuk mengeceknya melalui nmap, lalu hasilnya akan seperti berikut:\n1 2 3 4 5 6 7 8 9 $ nmap localhost Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-04 22:49 WIB Nmap scan report for localhost (127.0.0.1) Host is up (0.0070s latency). Not shown: 999 closed ports PORT STATE SERVICE 8022/tcp open oa-system Nmap done: 1 IP address (1 host up) scanned in 1.20 seconds Jika ada tulisan seperti 8022/tcp open oa-system di atas, maka artinya Server SSH dalam keadaan aktif dan port 8022 itu terbuka.\nOh iya, jangan lupa bahwa 8022 adalah port yang digunakan oleh server SSH, jadi ketika Anda login untuk akses SSH, pastikan agar menggunakan port 8022 nantinya.\nLangkah ke-6: Perlu Anda ketahui terlebih dahulu alamat IP jaringan yang ada pada perangkat Anda atau alamat IP lokalnya dengan mengetikkan ifconfig di Termux, lalu tekan ↵ Enter.\nContoh keluarannya akan seperti berikut:\n1 2 3 4 5 6 7 8 9 10 11 12 13 $ ifconfig Warning: cannot open /proc/net/dev (Permission denied). Limited output. lo: flags=73\u0026lt;UP,LOOPBACK,RUNNING\u0026gt; mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1 (UNSPEC) tun0: flags=81\u0026lt;UP,POINTOPOINT,RUNNING\u0026gt; mtu 1500 inet 10.18.234.134 netmask 255.0.0.0 destination 10.18.234.134 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) wlan0: flags=4163\u0026lt;UP,BROADCAST,RUNNING,MULTICAST\u0026gt; mtu 1460 inet 192.168.100.81 netmask 255.255.255.0 broadcast 192.168.100.255 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 3000 (UNSPEC) Seperti yang Anda lihat di atas, bahwa alamat IP lokal untuk antarmuka sambungan Wi-Fi (wlan0) yang saya dapatkan adalah 192.168.100.81 yang letaknya berada di paling bawah.\nMungkin hasilnya akan berbeda di perangkat Anda, jadi pastikan Anda lebih teliti dalam mencari alamat IP-nya.\nJika Anda menggunakan Hotspot Tethering (bahasa Indonesia: Penambatan Hotspot), maka cari alamat IP Anda di antarmuka ap0 atau swlan0, bukan wlan0. Sedangkan jika menggunakan fitur USB Tethering (bahasa Indonesia: Penambatan USB), maka Anda bisa menggantinya dengan usb0 atau rndis0.\nMungkin nama antarmukanya akan berbeda di perangkat-perangkat tertentu, jadi sesuaikan itu dengan yang ada di perangkat Android Anda.\nSelain ifconfig, jika tadi Anda menginstal iproute2, maka Anda juga dapat mencari Alamat IP-nya melalui perintah ip addr list (nama_antarmuka).\nContoh perintah dan keluarannya seperti berikut:\n1 2 3 4 5 $ ip addr list wlan0 52: wlan0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1460 qdisc mq state UP group default qlen 3000 link/ether b4:a5:ac:cd:17:ef brd ff:ff:ff:ff:ff:ff inet 192.168.100.81/24 brd 192.168.100.255 scope global wlan0 valid_lft forever preferred_lft forever Ganti wlan0 yang di atas menjadi antarmuka yang ingin Anda lihat alamat IP-nya atau menjadi antarmuka yang sedang digunakan. Untuk nama antarmukanya sendiri sudah saya jelaskan di atas.\nJika masih bingung, silakan gunakan perintah ip addr list up untuk melihat menampilkan semua antarmuka jaringan yang sedang aktif.\nSelain menggunakan ifconfig dan ip addr di Termux, jika komputer desktop/laptop Anda terkoneksi dengan jaringan dari perangkat Android Anda melalui fitur tethering (entah itu melalui Hotspot atau USB), Anda bisa mengetahui Alamat IP lokal dari perangkat Android Anda dengan mengetahui Alamat Default Gateway dari jaringan yang digunakan oleh komputer desktop/laptop Anda.\nKalau bingung, Anda bisa menganggap bahwa Alamat Default Gateway adalah Alamat IP lokal dari perangkat Android Anda.\nJika Anda menggunakan sistem operasi Windows, caranya bisa buka Command Prompt, Windows PowerShell atau PowerShell dari komputer desktop/laptop Anda, terserah mau buka yang mana. Lalu, jalankan perintah berikut:\nipconfig /all Hasilnya akan menampilkan semua antarmuka jaringan yang tersedia di Windows. Cari koneksi jaringan yang Anda gunakan, lalu ketahui Alamat Default Gateway-nya, seperti di cuplikan berikut: (Default Gateway ditunjuk oleh anak panah)\nAlamat IP yang tampil nantinya akan digunakan untuk login melalui klien SSH yang ada di komputer desktop/laptop kamu, jadi jangan sampai lupa!\nLangkah ke-7: Terakhir, aktifkan service/layanan untuk OpenSSH agar Server SSH dapat diaktifkan ketika Termux dijalankan dengan mengeksekusi perintah sv enable sshd di dalam Termux.\nMengakses Ponsel Android melalui SSH Setelah melakukan konfigurasi awal, maka saatnya mengakses perangkat Android dari komputer desktop/laptop Anda.\nBerikut adalah caranya:\nLangkah ke-1: Sekarang gunakan komputer desktop/laptopmu dan jangan akhiri sesi Termux-nya. Coba akses perangkat Android kamu dari komputer desktop/laptopmu melalui SSH dengan melakukan login terlebih dahulu.\nAnda bisa lakukan ini melalui klien SSH yang ada di komputer desktop/laptop kamu, termasuk PuTTY.\nUntuk kredensialnya, cukup masukkan Alamat IP, Port dan kata sandinya saja, tidak perlu kamu masukkan Username atau Nama Penggunanya. Kalaupun kamu ingin memasukkannya, kamu bisa memasukkan Username-nya dengan bebas.\nJika Anda menggunakan OpenSSH/Dropbear sebagai klien SSH di komputer desktop/laptop kamu, maka perintah untuk login-nya sebagai berikut:\nssh 192.168.100.81 -p 8022 Silakan ganti 192.168.100.81 menjadi alamat IP lokal pada perangkat Android Anda.\nSetelah menentukan alamat IP-nya, ada parameter -p yang menentukan port yang digunakan oleh server, secara baku ia menggunakan port 8022, jika selain itu, silakan ganti 8022 di atas dengan port yang digunakan oleh server SSH Anda.\nMengenai Username-nya, Anda gak salah lihat, di sini saya tidak memakai Username, karena pengguna standar di Termux itu cuma satu, selain itu hanya ada root saja.\nOleh karena itu, OpenSSH yang ada pada Termux itu tidak membandingkan Username satu sama lain sama sekali, semuanya mengarah pada satu Username yang sama, bahkan ketika Anda mengisinya dengan bebas sekalipun.\nSehingga OpenSSH pada Termux ini sangat berbeda bila dibandingkan dengan OpenSSH yang ada di Sistem lain, berdasarkan tambalan yang dilakukan oleh mereka.\nLangkah ke-2: Jika ada pesan yang menyatakan \u0026ldquo;Are you sure you want to continue connecting?\u0026rdquo;, ketik saja yes, lalu tekan ↵ Enter. Setelah itu, masukkan kata sandinya.\nLangkah ke-3: Jika berhasil, maka akan muncul Prompt yang bisa Anda gunakan untuk mengetik baris perintah, seperti cuplikan berikut:\nDi langkah ini, kamu sudah bisa mengontrol/menggunakan Termux dari komputer desktop/laptop kamu, sekarang coba eksekusikan perintah yang kamu mau.\nSebagai contoh, di sini saya ingin menginstal Neofetch di Termux, maka perintahnya adalah sebagai berikut:\npkg i neofetch Setelah terinstal, saya eksekusikan perintah neofetch dari komputer desktop/laptop, maka kira-kira hasilnya akan seperti cuplikan berikut:\nNah, kira-kira seperti itu.\nBagaimana? Mudah sekali, bukan? Namun artikel ini belum selesai sampai sini saja, ada satu hal lagi yang bisa Anda lakukan melalui Termux ini, yang mungkin berguna bagi Anda yang saya bahas nanti di bagian selanjutnya.\nLainnya Menggunakan SFTP Selain menggunakan Termux secara Remote, Anda juga dapat mengirimkan (mengunggah), mengambil (mengunduh), menambahkan, mengubah dan menghapus berkas-berkas yang ada di dalam ponsel Android Anda berkat dukungan protokol SFTP.\nKarena Anda membuka akses SSH dan menggunakan OpenSSH sebagai server SSH di dalam Termux, maka protokol SFTP secara otomatis diaktifkan.\nAgar bisa mengakses SFTP-nya, Anda perlu sebuah aplikasi FTP untuk itu, dalam kasus ini saya memakai FileZilla.\nSelain FileZilla, Anda juga dapat menggunakan aplikasi lain seperti WinSCP, CyberDuck, dll.\nSetelah terinstal, buka aplikasi tersebut, lalu Anda harus mengisi kredensialnya berikut di bawah ini di dalam aplikasinya untuk menggunakan SFTP:\nHos (Host): sftp://ALAMAT_IP_KAMU (cth. sftp://192.168.100.81) atau sftp://ALAMAT_IP_KAMU:PORT (cth. sftp://192.168.100.81:8022) Nama Pengguna (Username): Wajib diisi, tidak boleh kosong, tapi bisa Anda isi bebas Kata Sandi (Password): Isi ini dengan kata sandi Termux Anda Port: Isi dengan port yang digunakan oleh server SSH kamu, port bakunya adalah 8022, jadi isi itu dengan 8022 (sebaiknya jangan diisi jika Anda sudah mengisi port-nya saat mengisikan Alamat URL Hos) Setelah memasukkan semua informasi/kredensial di atas, silakan lakukan login, jika Anda menggunakan FileZilla, Anda bisa klik pada Button Quickconnect (atau terjemahan bahasa Indonesia-nya adalah Koneksi Cepat).\nNamun, Username-nya diisi bebas, apa artinya bisa diisi sembarangan?\nSangat bisa, Anda sangat bisa sembarang isi Username-nya, untuk buktinya bisa Anda lihat 2 cuplikan berikut ini: (Saya menggunakan FileZilla)\nApakah isinya sama? Sama saja, mau Anda masukkan username-nya dengan apa saja, isinya akan sama saja, gak ada bedanya sama sekali. Hal ini karena OpenSSH pada Termux tidak membandingkan username, jadi ia hanya fokus pada 1 username saja.\nKenapa begitu? Karena Termux hanya memiliki 1 pengguna standar saja, seperti yang telah saya jelaskan di bagian \u0026ldquo;Mengakses Ponsel Android melalui SSH\u0026rdquo; pada langkah ke-1 sebelumnya.\nOh iya, agar Anda bisa mentransfer berkas dari dalam ponsel ke perangkat lain atau sebaliknya, Anda bisa gunakan perintah termux-setup-storage untuk membuka perizinannya/jembatan antara Termux dan penyimpanan pada perangkat, setelahnya tinggal Anda transfer saja melalui aplikasi klien FTP.\nUntuk lebih lanjut, silakan baca di sini (Baca mulai dari bagian \u0026ldquo;Access shared and external storage\u0026rdquo;).\nDengan begini, Anda bisa mentransfer berkas dari dalam ponsel ke dalam perangkat lain atau sebaliknya tanpa perlu menginstal aplikasi \u0026ldquo;khusus\u0026rdquo; lagi ataupun tanpa terkena kendala kabel/lubangnya lagi.\nPertanyaan dan Jawaban Jika Anda memiliki pertanyaan, silakan tanyakan itu di dalam kolom komentar yang tersedia.\nNamun, tidak ada salahnya untuk membaca terlebih dahulu pertanyaan dan jawaban berikut sebagai referensi buat Anda sebelum bertanya.\nPertanyaan ke-1: Bagaimana caranya agar server SSH bisa diaktifkan secara otomatis setelah perangkat di-boot tanpa perlu mengaktifkannya lagi di Termux secara manual? Jawab: Anda bisa melakukannya dengan cara berikut:\nUnduh dan Instal Aplikasi Termux:Boot di salah satu tempat berikut: (Pilih salah satu, sesuaikan dengan tempat unduh Termux Anda, jangan dicampur-campur!) Di F-Droid jika Anda mengunduh Termux-nya di F-Droid (Gratis) Di Google Play Store jika Anda mengunduh Termux-nya di Google Play Store (Perlu bayar sebesar Rp29.000,00 dan itu belum termasuk PPN) Pergi ke setelan Android Anda, lalu nonaktifkan fitur \u0026ldquo;Pengoptimalan Baterai\u0026rdquo; untuk Aplikasi Termux dan Termux:Boot Buka Aplikasi Termux:Boot dengan mengklik ikon aplikasi di Launcher/Peluncur Anda. Ini mengizinkan agar Termux bisa dijalankan secara otomatis setelah perangkat di-boot Buka Aplikasi Termux-nya, lalu buatlah direktori ~/.termux/boot/ di sana dengan perintah: mkdir -p ~/.termux/boot/ Buatlah berkas skripnya di sana (~/.termux/boot/), nama berkasnya bisa bebas, tetapi contoh kali ini saya menamainya dengan startup-script Isikan berkas startup-script dengan skrip yang ingin Anda jalankan saat perangkat sudah di-boot dan awali terlebih dahulu dengan /data/data/com.termux/files/usr/bin/sh sebagai shebang Jika sudah selesai, simpan berkas tersebut dan izinkan agar berkas tersebut dapat dieksekusi dengan mengeksekusi perintah chmod +x startup-script Oh iya, setelah menentukan shebang-nya, mungkin memasukkan perintah termux-wake-lock akan sangat membantu agar perangkat tidak \u0026ldquo;tertidur\u0026rdquo; dan Termux bisa tetap berjalan di latar belakang.\nContoh: Jika Anda ingin menjalankan server SSH-nya saja dengan menggunakan perintah sshd, maka isi dari skrip startup-script akan seperti berikut:\n1 2 3 #!/data/data/com.termux/files/usr/bin/sh termux-wake-lock sshd Atau, jika Anda ingin agar Termux-services mengaktifkan semua layanan yang ada dan didukungnya (seperti OpenSSH, Cronie/Cron Job, Apache2, NGINX, dll) dan mengaktifkan server SSH-nya, maka isi dari skrip startup-script akan seperti berikut:\n1 2 3 #!/data/data/com.termux/files/usr/bin/sh termux-wake-lock . $PREFIX/etc/profile Solusi seperti ini akan sangat cocok bagi Anda yang ingin mengotomatiskan sesuatu, salah satunya adalah mengotomatiskan pembaruan sertifikat SSL dari ZeroSSL melalui acme.sh di Termux yang telah saya bahas di artikel sebelumnya.\nPertanyaan ke-2: Apakah ada caranya agar akses SSH ini bisa dilakukan secara remot tanpa harus terhubung di jaringan yang sama? (cth. Ketika saya sedang berada di luar kota) Jawab: Untuk saat ini saya belum tahu caranya, jadi maaf kalau saya belum bisa memberikan caranya di sini.\nSaya tahu ada layanan ngrok atau sejenisnya, tetapi itu belum saya coba buat akses SSH.\nJadi, untuk saat ini saya masih belum tahu bisa atau tidaknya, tetapi jika Anda mempunyai caranya dan ingin memberitahukannya, silakan Anda berikan masukkannya melalui kolom komentar.\nMungkin penggunaan VPN dengan Alamat IP sendiri atau melakukan Reverse SSH Tunneling bisa membantu Anda, tetapi saya kurang paham caranya.\nPEMBARUAN, Jum\u0026rsquo;at 14 Januari 2022: Anda bisa mencoba Cloudflare Access dan Cloudflare Argo Tunnel agar dapat mengakses SSH dari jarak jauh tanpa harus terhubung di jaringan yang sama.\nJadi, Anda bisa mengaksesnya melalui jaringan Internet, seperti yang saya lakukan sekarang.\nNamun, Anda perlu menghimpun kode sumber Cloudflared-nya terlebih dahulu di Termux, silakan klik di sini untuk caranya.\nPEMBARUAN, Selasa 28 Februari 2023: Cukup instal saja dengan perintah pkg i -y cloudflared\nSetelah itu Anda perlu pastikan bahwa Termux-nya telah aktif terus di latar belakang pada perangkat Anda, jangan dimatikan.\nSelebihnya nanti akan saya buatkan artikelnya.\nPertanyaan ke-3: Kenapa saya tetap mendapatkan pesan \u0026ldquo;Permission Denied\u0026rdquo;, padahal penyimpanan sudah saya izinkan dan termux-setup-storage sudah saya jalankan? Jawab: Bisa jadi karena kutu (bug) yang terjadi di dalam sistem operasi Android yang Anda gunakan, terutama untuk pengguna Android 11.\nJika Anda mengalami ini dan merupakan pengguna Android 11, mungkin bisa coba selesaikan dan simpan semua tugas kamu di dalam Termux-nya terlebih dahulu -\u0026gt; Tutup Termux-nya -\u0026gt; Matikan izin \u0026ldquo;Penyimpanan\u0026rdquo; pada Aplikasi Termux -\u0026gt; Aktifkan kembali perizinannya, lalu buka lagi Termux-nya setelah itu.\nSetelah membukanya kembali, maka seharusnya Anda dapat mengakses dan mengelola penyimpanan perangkat dari Termux tanpa terkena galat \u0026ldquo;Permission Denied\u0026rdquo; lagi.\nBagaimana jika saya bukan pengguna Android 11? Mungkin cara di atas dapat Anda coba terlebih dahulu, selebihnya saya kurang tahu selain itu.\nPertanyaan ke-4: Mengapa saya masih tidak bisa mengakses Termux dari komputer desktop/laptop saya, padahal sudah di dalam jaringan yang sama dan alamat IP yang saya masukkan benar? Jawab: Banyak faktor sebenarnya mengenai hal ini, salah satunya adalah:\nFirewall (Baik yang dilakukan oleh sistem operasi, aplikasi pihak ketiga, perangkat router, access point atau modem ONT, dll) yang memblokir alamat IP, aplikasi ataupun akses tertentu Alamat IP Lokal yang Anda dapatkan itu sudah digunakan oleh orang lain (Alamat IP Duplikat). Ini mungkin akan terjadi jika Anda berada di tempat ramai atau Anda menggunakan MAC Acak saat terkoneksi ke jaringan yang mana Anda akan mendapatkan Alamat IP yang acak juga Jaringan yang Anda gunakan mungkin tidak mengizinkan akses ke perangkat lain secara lokal untuk alasan keamanan, seperti jaringan wifi.id oleh Grup Telkom Dan faktor-faktor lainnya Solusi yang bisa Anda coba salah satunya yaitu:\nPeriksa kembali alamat IP yang Anda tuju, pastikan bahwa alamat IP-nya sudah benar Periksa setelan Firewall Anda, baik dari bawaan sistem operasi, aplikasi pihak ketiga atau dari Router/ONT sekali pun, jika terblokir maka Anda harus membuka aksesnya. Kalau perlu, Anda juga dapat mematikan Firewall-nya terlebih dahulu untuk sementara waktu Coba usahakan untuk tidak menggunakan alamat MAC yang Acak terlebih dahulu agar memperkecil kemungkinan untuk mendapatkan alamat IP yang sama. Jika Anda tidak ingin menggunakan alamat MAC asli ataupun tidak bisa, bisa Anda coba ganti Alamat IP-nya Coba koneksikan ke jaringan lokal lain, jangan gunakan jaringan Wi-Fi yang memerlukan login seperti wifi.id, Biznet Wifi, dll Buatlah jaringan lokal sendiri, berikut di bawah ini adalah salah satu caranya: Untuk pengguna Android: Anda dapat menggunakan fitur Penambatan Hotspot (bahasa Inggris: Hotspot Tethering) untuk membuat jaringan lokal sendiri secara nirkabel.\nJika Anda sedang tersambung melalui koneksi Wi-Fi di perangkat, pastikan perangkat Android yang Anda miliki telah mengaktifkan fitur Wi-Fi Sharing, Berbagi Wi-Fi, dan fitur sejenis lainnya agar koneksi Wi-Fi tidak terputus saat penambatan diaktifkan\nSelain Penambatan Hotspot, Anda juga dapat menggunakan fitur Penambatan USB (bahasa Inggris: USB Tethering) untuk membuat jaringan lokal yang langsung terhubung ke komputer desktop/laptop dari perangkat Android Anda melalui kabel USB\nUntuk pengguna Windows 10 atau di atasnya: Anda bisa menggunakan fitur Mobile Hotspot di dalam Windows 10 (atau di atasnya) bagi pengguna komputer desktop/laptop untuk membuat jaringan lokal secara nirkabel\nNah, itu saja penyebab dari masalah ini beserta solusi yang bisa Anda coba salah satunya.\nPenutup Pembahasan di artikel ini sudah saya cukupi di sini saja. Terima kasih buat Anda yang telah membaca dan memahami artikel ini sampai habis.\nMohon maaf apabila adanya kekurangan atau kesalahan yang ada di artikel ini, seperti salah ketik, salah informasi, dll. Kesalahan-kesalahan tersebut saya usahakan untuk diperrbaiki kedepannya.\nJika kamu mempunyai pertanyaan, kritik dan saran, komentar atau masukkan lainnya, silakan kamu berkomentar melalui kolom komentar yang tersedia atau bisa kamu Hubungi Saya.\nTerima kasih atas perhatiannya 😊\nPenggunaan 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.\nJika Anda ingin menjelajahinya, silakan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2021/11/17-cara-menggunakan-termux-dari-komputer-laptop ","date":"2021-11-17T00:47:12+07:00","image":"/cara-menggunakan-termux-dari-komputer/Cover_hu_5947ce55cfa38d59.webp","permalink":"/cara-menggunakan-termux-dari-komputer/","title":"Cara menggunakan Termux dari Komputer Desktop/Laptop melalui SSH"},{"content":"Apa itu Hugo? Hugo adalah salah satu SSG (Static-site Generator) atau Generator Web Statis yang dibuat menggunakan bahasa pemrograman Go, dikembangkan oleh Steve Francia, Bjørn Erik Pedersen, dan kontributor lainnya\nHugo juga merupakan FLOSS (Free/Libre Open Source Software) yang dirilis di bawah Lisensi Apache 2.0, kode sumbernya bisa Anda akses di sini.\nHugo mendukung berbagai platform yang ada, termasuk sistem operasi Windows, macOS, berbasis Linux, dan BSD, baik untuk arsitektur x86, x64 (disebut sebagai x86-64, x86_64 atau AMD64), ARM dan ARM64.\nSSG ini diklaim sebagai SSG tercepat oleh para pengembangnya, salah satunya adalah karena Hugo berjalan di lingkungan yang Native, tanpa ketergantungan (dependencies) apa pun dan memiliki fitur yang dinamakan Fast Render Mode.\nSelain itu, Hugo juga memiliki banyak fitur lainnya, seperti i18n untuk dukungan multibahasa, berkas data, berkas statis, pemrosesan gambar, pemrosesan berkas CSS, JS, dll yang dapat menunjang kebutuhan untuk Situs Web/Blog Anda.\nVarian Hugo Hugo memiliki 2 varian, yakni Hugo (varian Standar/Biasa) dan Hugo Extended, bedanya adalah kalau Hugo Extended memiliki fitur tambahan, seperti pemrosesan berkas SCSS/SASS yang tidak dimiliki oleh Hugo Standar.\nNamun, secara resmi Hugo Extended memiliki dukungan yang lebih sedikit dibandingkan dengan Hugo biasa dan hanya disediakan untuk platform berikut:\nWindows yang berarsitektur x64 Sistem Operasi berbasiskan Linux yang berarsitektur x64 dan ARM64, serta perlu \u0026ldquo;GNU C Library\u0026rdquo; (glibc) macOS yang berarsitektur x64 dan ARM64 (itu pun dicampur jadi satu berkas biner) Meskipun secara resmi Hugo Extended hanya disediakan untuk platform di atas saja, akan tapi Anda juga bisa menginstalnya di platform lain, salah satunya adalah Void Linux dan Termux di Android walau bukan resmi dari pengembang, nanti akan saya bahas cara instalnya.\nCara Install Hugo Di bagian ini, saya akan membahas cara instalnya.\nCaranya sendiri akan berbeda-beda untuk setiap sistem operasi ataupun platform yang ada, jadi pastikan Anda mengikutinya sesuai dengan sistem operasi atau platform yang digunakan.\nBerikut adalah cara instalasinya:\nWindows Pengelola Paket Scoop Anda dapat menginstal Hugo melalui Scoop sebagai pengelola paket di Windows dengan perintah berikut:\nscoop install hugo Perintah di atas akan menginstal Hugo dalam varian biasa, jika Anda ingin menginstal Hugo Extended, ganti hugo jadi hugo-extended, seperti berikut:\nscoop install hugo-extended Perintah di atas akan menginstal Hugo di dalam direktori pengguna (%USERPROFILE%\\scoop\\apps), jika Anda ingin Hugo-nya dapat berjalan di semua pengguna, maka Anda perlu menambahkan argumen -g.\nPerintahnya akan menjadi seperti berikut:\nscoop install hugo-extended -g Namun, Anda perlu membuka Command Prompt, Windows Terminal, PowerShell-nya, atau aplikasi terminal lainnya sebagai Administrator terlebih dahulu sebelum menjalankan perintah di atas.\nJika Anda sudah menginstal sudo melalui Scoop atau gsudo sebelumnya, maka cukup tambahkan saja sudo sebelum menjalankan perintah Scoop, tanpa harus menjalankan Terminal sebagai Administrator, menjadi seperti berikut:\nsudo scoop install hugo-extended -g Dengan begini, Anda tidak perlu membuka Terminal-nya sebagai Administrator lagi.\nUntuk memperbarui versinya, silakan ganti opsi install di atas menjadi update.\nPengelola Paket Chocolatey Anda dapat menginstal Hugo melalui Chocolatey sebagai pengelola paket di Windows dengan perintah berikut:\nchoco install hugo Perintah di atas akan menginstal Hugo dalam varian Biasa/Standar, jika Anda ingin menginstal Hugo Extended, cukup ganti saja hugo menjadi hugo-extended, seperti berikut:\nchoco install hugo-extended Untuk memperbarui versinya, silakan ganti opsi install di atas menjadi upgrade.\nCatatan: Secara baku, Chocolatey akan menginstal paket-paketnya di dalam direktori %ProgramData%\\chocolatey, sehingga paket yang terinstal dapat diakses oleh semua pengguna di dalam 1 sistem.\nNamun, direktori tersebut memerlukan izin Administrator untuk mengisinya. Oleh karena itu, Anda perlu membuka Command Prompt, Windows Terminal, PowerShell, atau aplikasi terminal lainnya sebagai Administrator sebelum menginstal, menghapus, dan memperbarui paket melalui Chocolatey.\nAtau, Anda juga bisa memakai gsudo agar dapat memakai perintah sudo di dalam Terminal tanpa harus membukanya sebagai Administrator.\nPengelola Paket WinGet Anda dapat menginstal Hugo Extended melalui WinGet sebagai pengelola paket di Windows dengan perintah berikut:\nwinget install --name \u0026#34;Hugo (Extended)\u0026#34; Secara baku, perintah di atas akan menginstal Hugo Extended di dalam direktori pengguna, jika Anda ingin Hugo-nya dapat berjalan di semua pengguna, maka Anda perlu menambahkan argumen --scope machine, contohnya seperti berikut:\nwinget install --name \u0026#34;Hugo (Extended)\u0026#34; --scope machine Namun, perlu diingat bahwa Anda perlu membuka Windows Terminal, Command Prompt, PowerShell, atau aplikasi terminal lainnya sebagai Administrator agar dapat menjalankan perintah dengan argumen di atas.\nUntuk memperbarui versinya, silakan ganti opsi install di atas menjadi upgrade.\nBerkas Biner, tanpa Pengelola Paket (Manual) Hugo telah menyediakan berkas biner yang telah dikompilasi agar dapat digunakan secara langsung dan berkas tersebut diarsipkan dengan format/ekstensi zip (untuk Windows), jadi Anda bisa langsung menggunakannya setelah berkas tersebut diunduh dan diekstrak.\nMaksud dari \u0026ldquo;berkas biner\u0026rdquo; di sini adalah berkas yang tujuannya untuk dieksekusi, kalau di Windows Anda akan mengenal dengan berkas yang berakhiran .exe.\nJika Anda tidak ingin menggunakan pengelola paket apa pun untuk menginstalnya, maka berikut adalah langkah-langkahnya:\nUnduh Berkas Arsip yang berisi berkas biner Hugo di halaman perilisannya.\nDi situ tersedia 4 berkas yang bisa Anda unduh salah satunya, semua itu diarsipkan dalam format Zip, sesuaikan dengan Arsitektur Sistem Operasi yang dipakai.\nNamun, jika Anda ingin menginstal Hugo Extended, unduh berkas yang namanya diawali dengan hugo_extended\nSetelah diunduh, ekstrak berkas arsip tersebut ke dalam folder/direktori apa saja.\nSaya asumsikan bahwa Anda mengekstraknya ke dalam Folder C:\\Hugo\\bin dan akan saya gunakan direktori tersebut untuk seterusnya\nSetelah diekstrak, Anda perlu menambahkan ke dalam variabel PATH agar Hugo bisa dieksekusikan di mana saja.\nPertama-tama, klik \u0026ldquo;Start Menu\u0026rdquo;, lalu manfaatkan fasilitas pencarian yang ada di sana atau Anda juga bisa langsung ke pencarian yang ada di Taskbar jika Anda memasangkannya.\nSaat di pencarian, ketik env di situ, nanti akan muncul tulisan Edit the system environment variables dan klik tulisan tersebut, seperti cuplikan berikut:\nNanti akan muncul dialog System Properties, di dalam dialog tersebut, klik pada Button Environment Variables\u0026hellip;, seperti cuplikan berikut: Setelah itu, Anda akan memasukki dialog yang berjudul Environment Variables, di situ nanti ada dua kolom, yakni User variables yang terletak di atas dan System variables yang terletak di bawah.\nKarena Variabel yang di ubah ini lingkupnya ke satu Sistem Operasi, yang artinya semua Akun Pengguna (User Account) kena, maka carilah variabel PATH di dalam kolom System variables.\nSetelah ketemu, pilih variabel tersebut dan klik pada Button Edit, seperti cuplikan berikut:\nAnda memasukki dialog yang berjudul Edit environment variables, di situ Anda akan merubah nilai dari variabel tersebut. Windows 10 dan Windows 7 mungkin memiliki penampilan yang berbeda, jadi cara mengubahnya akan berbeda-beda, berikut di bawah ini adalah caranya:\nDi Windows 10 atau di atasnya: Nilai dari variabel PATH yang tampil di Windows 10 adalah dalam bentuk daftar. Untuk menambahkannya, cukup klik pada Button New, lalu isi nilainya dengan lokasi berkas Hugo itu berada.\nJika Anda sebelumnya mengekstrak Hugo di C:\\Hugo\\bin, maka isi nilainya dengan C:\\Hugo\\bin juga. Setelah menambahkannya, klik pada Button OK, seperti cuplikan berikut:\nDi Windows 7: Nilai dari Variabel PATH yang tampil di Windows 7 adalah dalam bentuk deretan. Untuk menambahkannya, cukup tambahkan C:\\Hugo\\bin; saja di bagian akhir deretan (JANGAN DIGANTI SEMUA DERETANNYA!!).\nC:\\Hugo\\bin menunjukkan tempat di mana Hugo diekstrak, jika Anda mengekstraknya di tempat lain, maka ganti C:\\Hugo\\bin menjadi lokasi di mana berkas biner Hugo itu berada.\nSetelah itu, klik pada Button OK.\nCatatan: Mohon maaf, karena saya tidak lagi memakai Windows 7, jadi cuplikannya belum ada saat ini\nJika masih ada sesi Command Prompt, Windows Terminal, PowerShell, dll, maka Anda perlu menutup semuanya terlebih dahulu/mengakhiri semua sesinya, lalu membukanya kembali.\nBiasanya, perubahan pada variabel PATH tidak akan berefek jika sesinya masih ada. Jika Anda tidak membuka Terminalnya, silakan Anda membukanya terlebih dahulu, entah itu Command Prompt, Windows Terminal, PowerShell, dll.\nSetelah Anda membuka Terminal-nya, silakan Anda eksekusikan perintah hugo version untuk menampilkan versi Hugo yang Anda gunakan. Jika berhasil, maka akan tampil keluaran seperti berikut:\nhugo v0.165.0-76a5e1880ab46688155b02e99bab9be2a6134492\u0026#43;extended windows/amd64 BuildDate=2026-08-12T14:26:28Z VendorInfo=gohugoio Selamat! Anda telah berhasil menginstal Hugo. Jika Anda ingin memperbarui versi Hugo-nya, cukup unduh lagi berkas binernya, lalu tinggal timpakan berkas lamanya. Nah, untuk Windows-nya saya cukupkan di sini dulu, berikutnya saya bahas Cara Install Hugo untuk Sistem Operasi GNU/Linux.\nGNU/Linux Debian, Ubuntu dan Keluarganya Jika Anda adalah pengguna Debian, Ubuntu atau keluarganya, sebenarnya Anda dapat menginstalnya dengan perintah berikut:\nsudo sh -c \u0026#39;apt update; apt install -y hugo\u0026#39; Atau:\napt update; apt install -y hugo Namun cara di atas tidak saya rekomendasikan, karena versi yang Anda dapatkan nantinya merupakan versi yang lama (kecuali jika Anda menggunakan distribusi dengan rilis bergulir).\nJika Anda ingin versi terbaru dari Hugo, silakan unduh itu di halaman perilisan resminya, pastikan unduh berkas .deb-nya, setelah itu tinggal Anda instal secara manual.\nAtau, jika Anda lebih suka lewat Terminal, maka pertama-tama Anda perlu mengubah hak akses Anda di Terminal menjadi root dengan perintah sudo su, sudo -i atau sudo -s.\nSetelah itu, tentukan apakah Anda mau menginstal Hugo varian standar atau Extended, beserta arsitektur sistem operasi yang Anda gunakan sekarang.\nJika sudah ditentukan, Anda bisa mengikuti caranya berikut:\nUntuk menginstalnya, salinkan skrip berikut di bawah ini dan tempelkan itu ke dalam Terminal, lalu tekan \u0026ldquo;Enter\u0026rdquo;: (Langsung copas aja)\n1 2 3 4 5 6 HUGO_VERSION=\u0026#34;$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name | cut -d \u0026#39;v\u0026#39; -f2 | cut -d\u0026#39;\u0026#34;\u0026#39; -f1)\u0026#34; IS_EXTENDED=true HUGO_ARCH=\u0026#34;$(dpkg --print-architecture)\u0026#34; if [ \u0026#34;$IS_EXTENDED\u0026#34; = true ]; then HUGO_EXTENDED=\u0026#34;extended_\u0026#34;; fi HUGO_FILENAME=\u0026#34;hugo_\u0026#34;$HUGO_EXTENDED$HUGO_VERSION\u0026#34;_linux-$HUGO_ARCH.deb\u0026#34; cd /tmp; wget -c \u0026#34;https://github.com/gohugoio/hugo/releases/download/v$HUGO_VERSION/$HUGO_FILENAME\u0026#34; Atau, gunakan skrip berikut jika Anda menggunakan fish sebagai shell:\n1 2 3 4 5 6 set HUGO_VERSION (curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name | cut -d \u0026#39;v\u0026#39; -f2 | cut -d\u0026#39;\u0026#34;\u0026#39; -f1) set IS_EXTENDED \u0026#34;true\u0026#34; set HUGO_ARCH (dpkg --print-architecture) set HUGO_EXTENDED \u0026#34;\u0026#34;; if test $IS_EXTENDED = \u0026#34;true\u0026#34;; set HUGO_EXTENDED \u0026#34;extended_\u0026#34;; end set HUGO_FILENAME \u0026#34;hugo_\u0026#34;$HUGO_EXTENDED$HUGO_VERSION\u0026#34;_linux-$HUGO_ARCH.deb\u0026#34; cd /tmp; wget -c \u0026#34;https://github.com/gohugoio/hugo/releases/download/v$HUGO_VERSION/$HUGO_FILENAME\u0026#34; Penjelasan:\nBaris ke-1: Untuk mendapatkan versi terbaru Hugo, lalu memasukkannya ke dalam variabel HUGO_VERSION\nBaris ke-2: Untuk mementukan apakah Anda ingin mengunduh Hugo standar atau Hugo Extended, secara baku akan mengunduh Hugo Extended, ganti true menjadi false atau selain true jika Anda ingin mengunduh Hugo varian standar\nBaris ke-3: Untuk menentukan arsitektur sistem pada berkas Hugo yang ingin Anda unduh, variabel tersebut akan otomatis diisi berdasarkan hasil dari perintah dpkg --print-architecture.\nAnda bisa menggantinya kalau mau, arsitektur yang tersedia untuk Hugo adalah amd64 dan arm64\nBaris ke-4: Untuk pengkondisian jika IS_EXTENDED itu bernilai true, maka variabel HUGO_EXTENDED akan bernilai extended_ atau kosong/tidak disetel jika selain itu. Khusus fish, variabel HUGO_EXTENDED disetel terlebih dahulu dengan nilai kosong sebelum pengkondisian\nBaris ke-5: Untuk memasukkan Nama Berkas yang ingin diunduh ke dalam variabel HUGO_FILENAME dan Nilai tersebut diambil dari nama berkas Hugo Aslinya dan variabel HUGO_EXTENDED untuk teks tambahan kondisionalnya, HUGO_VERSION untuk versi Hugo-nya dan HUGO_ARCH untuk arsitektur pada Hugo yang ingin diunduh\nBaris ke-6: Untuk menavigasikan Terminal ke /tmp, lalu mengunduh Hugo-nya di sana dengan bantuan GNU Wget\nLalu, instal berkas yang telah Anda unduh dengan perintah berikut:\ndpkg -i \u0026#34;$HUGO_FILENAME\u0026#34; || ! echo \u0026#34;Instalasi Gagal\u0026#34;; rm \u0026#34;$HUGO_FILENAME\u0026#34;; cd - Penjelasan: Perintah di atas untuk menginstal Hugo melalui dpkg dari berkas penginstal yang berekstensi deb dan nama berkasnya diambil dari variabel HUGO_FILENAME. Jika berhasil, maka berkas penginstal akan dihapus dan kembali ke direktori sebelumnya atau hanya menampilkan pesan jika gagal.\nJika merasa sudah selesai, silakan alihkan kembali hak akses di dalam Terminal Anda menjadi pengguna biasa dengan perintah exit.\nUntuk memperbarui versi Hugo-nya, Anda perlu mengulangi semua langkah-langkah di atas.\nFedora, CentOS, RHEL dan Keluarganya (Tidak Resmi) Jika Anda adalah pengguna Fedora, CentOS, RHEL atau keluarganya, Anda dapat memasangnya melalui repositori dari luar (dari daftaupe). Walau itu bukan resmi, tapi disarankan oleh komunitas, jadi bisa Anda percayakan.\nUntuk menambahkan repositori sekaligus menginstalnya, Anda dapat mengeksekusi perintah berikut:\n1 2 sudo dnf copr enable daftaupe/hugo sudo dnf install hugo Untuk lebih lanjut, silakan kunjungi halaman unduh repositorinya.\nCatatan: Saya tidak memakai Fedora, CentOS, RHEL dan keluarganya, tapi berdasarkan spesifikasinya, varian Hugo yang digunakan adalah varian Extended, jadi yang terinstal adalah Hugo Extended.\nopenSUSE Leap/Tumbleweed dan Keluarganya (Tidak Resmi) Jika Anda adalah pengguna openSUSE Leap/Tumbleweed atau keluarganya, sebelum menginstalnya, tambahkan dulu repositori dari luar (dari home:darix:apps, jadi itu bukan resmi) yang bisa Anda percayakan dengan salah satu perintah berikut:\n1 2 3 4 5 6 7 8 ### Untuk Pengguna openSUSE Leap 15.5 sudo zypper ar -f https://download.opensuse.org/repositories/home:darix:apps/15.5/home:darix:apps.repo ### Untuk Pengguna openSUSE Leap 15.6 sudo zypper ar -f https://download.opensuse.org/repositories/home:darix:apps/15.6/home:darix:apps.repo ### Untuk Pengguna openSUSE Tumbleweed sudo zypper ar -f https://download.opensuse.org/repositories/home:darix:apps/openSUSE_Tumbleweed/home:darix:apps.repo Setelah itu segarkan repositorinya, lalu install Hugo-nya dengan perintah berikut:\n1 sudo sh -c \u0026#39;zypper ref; zypper in hugo\u0026#39; Untuk lebih lanjut. silakan kunjungi halaman unduh repositorinya.\nCatatan: Saya tidak memakai SUSE Linux Enterprise, openSUSE dan keluarganya, tapi berdasarkan konfigurasinya, kemungkinan varian Hugo yang digunakan adalah varian Extended, jadi yang terinstal adalah Hugo Extended. Namun, arsitektur sistem yang didukung hanyalah x86_64 saja.\nArch Linux, Manjaro dan Keluarganya Jika Anda adalah pengguna Arch Linux, Manjaro atau keluarganya, Anda dapat menginstal Hugo dengan perintah berikut:\nsudo pacman -S hugo Namun jika Anda lebih memilih lewat AUR (Arch User Repository), silakan gunakan paket hugo-bin dari AUR.\nCara Instal paket dari AUR akan berbeda-beda, tergantung AUR Helper yang Anda gunakan.\nNamun jika Anda menggunakan Yay sebagai AUR Helper-nya, maka Anda dapat memakai perintah berikut:\nyay -S hugo-bin PEMBARUAN Senin, 29 November 2021: Paket hugo-bin yang ada di AUR mungkin sudah tidak ada, jadi untuk sekarang instal Hugo melalui paket resminya saja.\nCatatan: Berdasarkan konfigurasinya, varian Hugo yang digunakan oleh Arch, Manjaro dan Keluarganya adalah varian Extended.\nSolus dan Keluarganya Jika Anda menggunakan Solus atau keluarganya, maka Anda dapat menginstalnya dengan perintah berikut:\nsudo eopkg install hugo Catatan: Saya tidak memakai Solus dan keluarganya, tapi berdasarkan konfigurasinya, kemungkinan varian Hugo yang digunakan oleh Solus dan keluarganya adalah varian Extended.\nVoid Linux dan Keluarganya Jika Anda adalah pengguna Void Linux atau keluarganya, Anda dapat menginstal Hugo dengan perintah berikut:\nsudo xbps-install -S hugo Catatan: Saya tidak memakai Void Linux dan keluarganya, tapi berdasarkan templatnya, kemungkinan varian Hugo yang digunakan oleh Void Linux dan keluarganya adalah varian Extended, jadi yang terinstal adalah Hugo Extended. Selain itu, Hugo Extended yang mereka gunakan didukung oleh semua arsitektur (baik itu x86, x86_64, ARM, ARM64, dan arsitektur lainnya) dan \u0026ldquo;C Library\u0026rdquo; (glibc dan musl) yang ada pada Void Linux.\nHomebrew (Lebih Universal) Jika Anda ingin menggunakan Homebrew (brew) yang lebih Universal, maka Anda bisa menginstalnya dengan perintah berikut:\nbrew install hugo Catatan: Saya tidak memakai Homebrew sebagai pengelola paket, tapi berdasarkan kode formulanya, kemungkinan varian Hugo yang digunakan oleh Homebrew adalah varian Extended, jadi yang terinstal adalah Hugo Extended.\nSnap (Lebih Universal) Jika Anda ingin menggunakan Snap yang lebih universal, maka Anda dapat menginstalnya dengan perintah berikut:\nsudo snap install hugo Perintah di atas akan menginstal Hugo Extended.\nCatatan: Kalau dibilang \u0026lsquo;Universal\u0026rsquo; mungkin tidak terlalu, semenjak Snap sendiri memasukkan Systemd sebagai ketergantungan, sehingga distribusi yang Anda gunakan harus memakai Systemd sebagai Init agar Snap bisa digunakan.\nJika Anda menggunakan distribusi yang tidak memakai systemd seperti Void Linux, Devuan, MX Linux (lebih tepatnya ia tidak menggunakannya sebagai \u0026ldquo;Init baku\u0026rdquo;), Artix Linux, GUIX dan keluarganya dan lainnya, maka kemungkinan besar Anda tidak dapat menggunakan pengelola paket Snap.\nMakanya di awal saya bilang \u0026ldquo;lebih universal\u0026rdquo;, karena bisa untuk distribusi lainnya yang lebih luas ketimbang menggunakan pengelola paket bawaan.\nPengelola Paket Nix (Lebih Universal) Jika Anda ingin menggunakan Pengelola Paket Nix yang lebih universal. Sebelum menginstalnya, Anda bisa mencobanya terlebih dahulu dengan menggunakan perintah berikut:\nnix-shell -p hugo Perintah di atas akan tetap menginstal Hugo, tapi di dalam nix-shell yang dikhususkan untuk Hugo, setelah diinstal Anda akan masuk ke dalam nix-shell dan Hugo hanya bisa dijalankan dari sana.\nJadi, jika Anda menginstalnya dengan perintah di atas, agar Hugo dapat dijalankan sewaktu-waktu, maka Anda harus masuk ke dalam nix-shell terlebih dahulu dengan mengeksekusi perintah di atas.\nHal seperti ini cocok untuk Anda yang menguji aplikasi sebelum diinstal secara permanen, meski sebenarnya cara ini yang direkomendasikan oleh mereka ketimbang menginstalnya secara permanen, kecuali jika Anda menggunakan NixOS yang aplikasinya bisa diinstal dengan mengubah berkas konfigurasi sistemnya.\nNamun, jika Anda ingin menginstalnya secara permanen, maka Anda bisa menginstalnya dengan perintah berikut:\nnix-env -iA nixpkgs.hugo Perintah di atas berlaku bagi yang bukan pengguna NixOS, jika Anda menggunakannya, cukup ganti nixpkgs di atas menjadi nixos.\nBerdasarkan berkas konfigurasinya, varian Hugo yang digunakan adalah Hugo Extended, jadi yang terinstal adalah Hugo Extended. Selain itu, versi yang digunakan itu merupakan versi baru, tapi tidak untuk pengguna NixOS dengan kanal selain tidak stabil (Unstable) yang mendapatkan versi lebih lama.\nNamun, jika Anda tidak menggunakan NixOS dan menggunakan Nix sebagai pengelola paket, maka versi paket yang Anda dapatkan biasanya akan mengikuti kanal tidak stabil dari NixOS/Nixpkgs.\nBerkas Biner, tanpa Pengelola Paket (Lebih Universal, Manual) Hugo telah menyediakan berkas biner yang telah dikompilasi agar dapat digunakan secara langsung dan berkas tersebut diarsipkan dengan format/ekstensi .tar.gz (untuk GNU/Linux), jadi Anda bisa langsung menggunakannya setelah berkas tersebut diunduh dan diekstrak.\nMaksud dari \u0026ldquo;berkas biner\u0026rdquo; di sini adalah berkas yang tujuannya untuk dieksekusi, kalau di Windows Anda akan mengenal dengan berkas yang berakhiran .exe.\nBerkas tersebut biasanya akan kompatibel dengan hampir seluruh distribusi GNU/Linux, jadi jika distribusi yang Anda gunakan tidak saya bahas di sini dan tidak mau menggunakan pengelola paket yang universal atau bahkan sama sekali tidak mau menggunakan pengelola paket, maka Anda bisa gunakan berkas binernya.\nCara sederhananya:\nUnduh salah satu berkas Arsip yang berisikan berkas biner Hugo dari halaman perilisannya (yang berformat .tar.gz) Ekstrak berkasnya Izinkan agar berkas yang bernama hugo bisa dieksekusi (dengan mengeksekusi perintah chmod +x hugo) Pindahkan berkas yang bernama hugo ke dalam direktori /usr/local/bin (dengan mengeksekusi perintah sudo mv hugo /usr/local/bin/) Pastikan bahwa /usr/local/bin/hugo itu milik pengguna root (dengan mengeksekusi perintah sudo chown root:root /usr/local/bin/hugo) Selesai! Catatan: Bisa saja Anda memindahkan berkas tersebut ke dalam direktori lain yang termasuk dalam variabel PATH, seperti /home/username/.local/bin misalnya dan tidak perlu melakukan peralihan kepemilikan ke root, tapi saya rekomendasikan agar diletakkan ke dalam direktori /usr/local/bin supaya Hugo bisa dieksekusi oleh seluruh pengguna di satu sistem.\nJika Anda lebih suka melakukannya secara langsung di Terminal (atau cara panjangnya) maka pertama-tama Anda perlu mengubah hak akses Anda di Terminal menjadi root dengan perintah sudo su, sudo -i, atau sudo -s, kecuali jika Anda ingin menginstalnya di dalam direktori pengguna.\nSetelah itu, tentukan apakah Anda mau menginstal Hugo varian standar atau Extended, beserta arsitektur sistem operasi yang Anda gunakan sekarang.\nJika sudah ditentukan, Anda bisa mengikuti caranya berikut:\nUntuk menginstalnya, maka tinggal Anda copas saja skrip berikut ke dalam Terminal, lalu tekan \u0026ldquo;Enter\u0026rdquo;:\n1 2 3 4 5 6 HUGO_VERSION=\u0026#34;$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name | cut -d \u0026#39;v\u0026#39; -f2 | cut -d\u0026#39;\u0026#34;\u0026#39; -f1)\u0026#34; IS_EXTENDED=true HUGO_ARCH=\u0026#34;amd64\u0026#34; if [ \u0026#34;$IS_EXTENDED\u0026#34; = true ]; then HUGO_EXTENDED=\u0026#34;extended_\u0026#34;; fi HUGO_FILENAME=\u0026#34;hugo_\u0026#34;$HUGO_EXTENDED$HUGO_VERSION\u0026#34;_linux-$HUGO_ARCH.tar.gz\u0026#34; cd /tmp; wget -c \u0026#34;https://github.com/gohugoio/hugo/releases/download/v$HUGO_VERSION/$HUGO_FILENAME\u0026#34; Atau, gunakan skrip berikut jika Anda menggunakan fish sebagai shell:\n1 2 3 4 5 6 set HUGO_VERSION (curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep tag_name | cut -d \u0026#39;v\u0026#39; -f2 | cut -d\u0026#39;\u0026#34;\u0026#39; -f1) set IS_EXTENDED \u0026#34;true\u0026#34; set HUGO_ARCH \u0026#34;amd64\u0026#34; set HUGO_EXTENDED \u0026#34;\u0026#34;; if test $IS_EXTENDED = \u0026#34;true\u0026#34;; set HUGO_EXTENDED \u0026#34;extended_\u0026#34;; end set HUGO_FILENAME \u0026#34;hugo_\u0026#34;$HUGO_EXTENDED$HUGO_VERSION\u0026#34;_linux-$HUGO_ARCH.tar.gz\u0026#34; cd /tmp; wget -c \u0026#34;https://github.com/gohugoio/hugo/releases/download/v$HUGO_VERSION/$HUGO_FILENAME\u0026#34; Penjelasan:\nBaris ke-1: Untuk mendapatkan versi terbaru Hugo, lalu memasukkannya ke dalam variabel HUGO_VERSION\nBaris ke-2: Untuk mementukan apakah Anda ingin mengunduh Hugo dengan varian standar atau Hugo Extended, secara baku akan mengunduh Hugo Extended, ganti true menjadi false atau selain true jika Anda ingin mengunduh Hugo varian standar\nBaris ke-3: Untuk menentukan arsitektur sistem pada berkas Hugo yang ingin Anda unduh, secara baku diisi amd64, yang artinya Anda akan mengunduh berkas Hugo untuk arsitektur AMD64 atau x86_64.\nAnda bisa menggantinya kalau mau, arsitektur yang tersedia untuk Hugo Extended adalah amd64 dan arm64, sedangkan varian standar ada tambahan satu arsitektur lagi, yakni arm yang diperuntukkan bagi pengguna prosesor berbasis ARM dengan arsitektur 32-bit\nBaris ke-4: Untuk pengkondisian jika IS_EXTENDED itu bernilai true, maka variabel HUGO_EXTENDED akan bernilai extended_ atau kosong/tidak disetel jika selain itu. Khusus fish, variabel HUGO_EXTENDED disetel terlebih dahulu dengan nilai kosong sebelum pengkondisian\nBaris ke-5: Untuk memasukkan Nama Berkas yang ingin diunduh ke dalam variabel HUGO_FILENAME dan Nilai tersebut diambil dari nama berkas Hugo Aslinya dan variabel HUGO_EXTENDED untuk teks tambahan kondisionalnya, HUGO_VERSION untuk versi Hugo-nya dan HUGO_ARCH untuk arsitektur pada Hugo yang ingin diunduh\nBaris ke-6: Untuk menavigasikan Terminal ke /tmp, lalu mengunduh Hugo-nya di sana dengan bantuan GNU Wget\nMengenai Instalasi Hugo Setelah mengunduhnya, tentukan terlebih dahulu di mana Anda menginstal Hugo-nya, apakah di dalam direktori pengguna yang hanya dapat dijalankan oleh Anda sendiri atau di dalam direktori sistem agar dapat dijalankan oleh semua pengguna.\nJika Anda ingin Hugo-nya dapat dijalankan oleh semua pengguna, silakan ikuti caranya di bawah ini. Namun, jika Anda ingin Hugo-nya diinstal di dalam direktori pengguna dan tanpa perlu perintah sudo ataupun hak akses root, silakan klik di sini.\nSetelah mengunduhnya, Anda perlu mengeksekusi skrip berikut untuk menginstalnya:\n1 2 3 4 tar -xvzf \u0026#34;$HUGO_FILENAME\u0026#34;; install -Dm755 hugo /usr/local/bin/ install -Dm644 LICENSE /usr/share/licenses/hugo/LICENSE rm \u0026#34;$HUGO_FILENAME\u0026#34; hugo LICENSE README.md cd - Penjelasan:\nBaris ke-1: Untuk mengekstrak Berkas Arsip, lalu menginstal Hugo di direktori /usr/local/bin dan chmod dari berkas tersebut disetel dengan nilai 755 Baris ke-2: Untuk menyalinkan berkas LICENSE milik Hugo kedalam direktori /usr/share/licenses/hugo dan chmod dari berkas tersebut disetel dengan nilai 644 Baris ke-3: Menghapus berkas yang sudah tak terpakai lagi Baris ke-4: Kembali ke direktori sebelumnya Setelah itu, pastikan kalau Hugo dapat berjalan dengan mengeksekusi perintah berikut untuk melihat versi Hugo yang Anda gunakan sekarang:\nhugo version Jika berhasil, maka keluarannya akan seperti di bawah ini:\nhugo v0.165.0-76a5e1880ab46688155b02e99bab9be2a6134492\u0026#43;extended linux/amd64 BuildDate=2026-08-12T14:26:28Z VendorInfo=gohugoio Keluaran di atas itu terjadi karena saya menggunakan Hugo Extended, jika Anda menggunakan varian biasa, harusnya sih sama aja, bedanya cuma gak ada tulisan extended-nya aja.\nMasih dalam hak akses root, kalau mau, Anda juga dapat membuat halaman panduan (manpages) untuk Hugo dengan skrip berikut:\n1 2 3 4 hugo gen man --dir \u0026#39;/tmp/hugo_manpages\u0026#39; cd /tmp/hugo_manpages; gzip -9 * install -Dm644 * -t /usr/local/man/man1 cd -; rm -rf /tmp/hugo_manpages Penjelasan:\nBaris ke-1: Untuk membuat Halaman Panduan Hugo dan berkas-berkasnya akan diletakkan di dalam direktori /tmp/hugo_manpages (Direktori tersebut akan dibuatkan secara otomatis jika tidak ada, jadi Anda tidak perlu membuatnya terlebih dahulu) Baris ke-2: Untuk menavigasikan shell ke dalam direktori /tmp/hugo_manpages, lalu mengkompresi semua berkas di dalamnya dengan Gzip dan menghapus semua berkas aslinya Baris ke-3: Untuk menyalinkan semua berkas di dalamnya ke /usr/local/man/man1 dan menyetel nilai chmod-nya ke 644 Baris ke-4: Untuk kembali ke direktori sebelumnya, lalu menghapus direktori /tmp/hugo_manpages dan seluruh berkas di dalamnya (atau secara rekursif) Kalau sudah, Anda bisa tes halaman panduannya dengan mengeksekusi perintah man hugo di dalam Terminal Anda.\nJika Anda ingin memasang fitur Completion untuk Shell yang Anda gunakan di Terminal, maka Anda dapat memasangkannya dengan perintah berikut: (Sesuaikan dengan Shell yang ter-install di sistem Anda)\n1 2 3 4 5 6 7 8 ### Untuk pengguna Bash hugo completion bash | install -Dm644 /dev/stdin \u0026#34;/usr/share/bash-completion/completions/hugo\u0026#34; ### Untuk pengguna Zsh hugo completion zsh | install -Dm644 /dev/stdin \u0026#34;/usr/share/zsh/site-functions/_hugo\u0026#34; ### Untuk pengguna fish hugo completion fish | install -Dm644 /dev/stdin \u0026#34;/usr/share/fish/vendor_completions.d/hugo.fish\u0026#34; Silakan coba fitur Completion di dalam Terminal Anda setelah itu.\nJika merasa sudah selesai, silakan alihkan kembali hak akses di dalam Terminal Anda menjadi Pengguna Biasa dengan perintah exit.\nUntuk memperbarui versi Hugo-nya, Anda perlu mengulangi semua langkah-langkah di atas.\nmacOS MacPorts Catatan: Saya tidak memakai sistem operasi macOS dan MacPorts sebagai pengelola paket, mungkin cara instalasi yang saya lontarkan di sini kurang begitu akurat sehingga bisa saja salah. Jika terjadi kesalahan dan Anda adalah pengguna MacPorts, mohon berikan masukkan/koreksi dari Anda melalui kolom komentar.\nJika Anda menggunakan MacPorts sebagai Pengelola Paket di dalam macOS Anda, maka Anda dapat menginstal Hugo dengan perintah berikut:\nsudo port install hugo Perintah di atas akan menginstal Hugo dengan varian biasa, jika Anda ingin menginstal Hugo Extended, Anda hanya perlu tambahkan argumen +extended saja, menjadi seperti berikut:\nsudo port install hugo +extended Catatan: Menginstalnya melalui MacPorts mungkin akan menghimpun (compile) kode sumber Hugo di dalam perangkat Anda.\nAnda juga dapat menambahkan fitur Completion untuk Bash kalau mau dengan menambahkan argumen +bash_completion di dalam baris perintahnya saja.\nJika Anda tidak ingin menggunakan sudo, maka hapus saja sudo-nya.\nHomebrew Jika Anda menggunakan Homebrew (brew) sebagai Pengelola Paket di dalam macOS Anda, maka Anda dapat menginstal Hugo dengan perintah berikut:\nbrew install hugo Catatan: Saya tidak memakai Homebrew sebagai pengelola paket, tapi berdasarkan kode formulanya, kemungkinan varian Hugo yang digunakan oleh Homebrew adalah varian Extended, jadi yang terinstal adalah Hugo Extended.\nAndroid Termux Jika Anda menggunakan Termux di dalam Android, maka Anda dapat menginstal Hugo dengan perintah berikut:\npkg i hugo Perintah di atas akan menginstal Hugo Extended, bukan Hugo varian standar, berdasarkan konfigurasinya meskipun Anda menggunakan Arsitektur dari ARM.\nJadi, Anda tidak perlu lagi khawatir mengenai masalah varian Hugo di Android Anda.\nSaya sarankan agar Anda menggunakan Termux versi terbaru untuk pengalaman yang lebih nyaman, bisa Anda unduh di F-Droid atau Google Play Store (eksperimental). Perlu versi Android minimal 7.0 agar Termux versi terbaru dapat digunakan.\nBSD OpenBSD dan Keluarganya Catatan: Saya tidak memakai sistem operasi berbasis BSD, seperti OpenBSD, mungkin cara instalasi yang saya lontarkan di sini kurang begitu akurat sehingga bisa saja salah. Jika terjadi kesalahan dan Anda adalah pengguna OpenBSD, mohon berikan masukkan/koreksi dari Anda melalui kolom komentar.\nJika Anda adalah pengguna OpenBSD dan keluarganya, maka Anda dapat menginstal Hugo dengan perintah berikut:\ndoas pkg_add hugo Karena saya tidak pakai, jadi saya tidak tahu apa varian Hugo yang terinstal nantinya dan dapat versi berapa.\nJika versi yang didapat adalah versi lama dan Anda sangat ingin mendapatkan versi terbarunya, maka Anda bisa mempertimbangkan opsi instalasi melalui OpenBSD Ports, mungkin ini akan menghimpun (compile) kode sumber Hugo.\nDocker Jika Anda menggunakan Docker, mungkin Anda bisa gunakan Docker Image hugomods/hugo untuk itu. Ini memang bukan resmi dari pengembang, tapi ini yang paling aktif.\nUntuk penjelasan lebih lanjut, silakan kunjungi situs web resminya.\nPertanyaan dan Jawaban Pertanyaan ke-1: Varian Hugo mana yang harus dipakai? Jawab: Usahakan untuk selalu gunakan Hugo Extended ketimbang Hugo varian standar.\nSaya menyarankan seperti ini karena dukungan tema akan lebih beragam jika Anda menggunakan Hugo Extended dan ada beberapa tema yang menggunakan SCSS ketimbang CSS untuk mengatur penampilannya.\nLagipula, sudah banyak platform yang mendukung Hugo Extended ini, walaupun secara resmi hanya disediakan untuk platform tertentu saja.\nPertanyaan ke-2: Kenapa Cara Install Hugo di Fedora, Red Hat dan Keluarganya malah gak dibahas? Jawab: Karena versi Hugo yang digunakan oleh Fedora, Red Hat, dan Keluarganya adalah versi lama.\nHingga saat ini, saya belum menemukan repositori luar yang cocok untuk Fedora, Red Hat, dan Keluarganya.\nJika Anda sangat ingin menginstal Hugo di dalam Distribusi yang tidak saya bahas, maka saya sarankan agar Anda menginstalnya melalui cara yang lebih \u0026ldquo;Universal\u0026rdquo; seperti menggunakan Snap, Homebrew, Nix atau melalui cara manual (mengunduh berkas biner, tanpa pengelola paket).\nPEMBARUAN, 07 Juni 2023: Sekarang cara instal untuk Fedora, CentOS, RHEL dan keluarganya sudah saya bahas, sehingga pertanyaan ini tidak berlaku lagi.\nPertanyaan ke-3: Apakah Cara Install untuk openSUSE bisa diaplikasikan di Fedora, Red Hat, dan Keluarganya? Jawab: Tidak bisa, kalaupun bisa maka sebaiknya jangan, karena pada dasarnya distribusi keluarga SUSE dan Fedora/Red Hat memang berbeda meskipun sama-sama menggunakan RPM sebagai salah satu sistem pengelolaan paketnya dan sama-sama merupakan GNU/Linux.\nLetak perbedaannya nanti di paket ketergantungannya, mulai dari nama paketnya sampai versi dari paket-paket tersebut yang didapat akan berbeda satu sama lain.\nJika Anda ingin mencobanya ya silakan saja, tapi segala risiko yang ada atau yang telah terjadi, silakan Anda tanggung sendiri.\nPertanyaan ke-4: Saya ingin menginstal Hugo dengan mengunduh Berkas Biner di GNU/Linux, tapi apakah ada cara agar saya dapat menginstalnya di direktori pengguna tanpa perlu hak akses root ataupun menggunakan sudo lagi? Jawab: Ada, pada dasarnya Anda dapat mengikuti cara di atas, tapi Anda perlu mengubah beberapa direktori tujuan pada skrip di atas, seperti /usr/local/bin menjadi $HOME/.local/bin, /usr/local/man/man1 menjadi $HOME/.local/share/man/man1 untuk Halaman Manual, dll.\nCatatan: Saya belum pernah coba instal Hugo di dalam direktori pengguna, sehingga akan terjadi ketidakakuratan dalam pembahasan. Namun saya berani jamin, bahwa perintah-perintah di bawah ini tidak akan membahayakan sedikitpun baik untuk sistem operasi dan data-data pribadi Anda, kalau kamu benar-benar mengikutinya.\nInstall Hugo Kalau Anda gak mau ribet, setelah Anda mengunduh Hugo-nya, alihkan terlebih dahulu hak aksesnya menjadi pengguna biasa, lalu Anda bisa gunakan skrip berikut untuk menginstal Hugo-nya di dalam direktori pengguna:\n1 2 3 4 tar -xvzf \u0026#34;$HUGO_FILENAME\u0026#34;; install -Dm755 hugo \u0026#34;$HOME\u0026#34;/.local/bin/ install -Dm644 LICENSE \u0026#34;$HOME\u0026#34;/.local/share/licenses/hugo/LICENSE rm \u0026#34;$HUGO_FILENAME\u0026#34; hugo LICENSE README.md cd - Setelah menginstalnya, silakan Anda pastikan agar Hugo dapat dieksekusi setelah diinstal dengan perintah berikut untuk menampilan versinya:\nhugo version Jika berhasil, maka harusnya akan muncul keluaran seperti di bawah ini:\nhugo v0.165.0-76a5e1880ab46688155b02e99bab9be2a6134492\u0026#43;extended linux/amd64 BuildDate=2026-08-12T14:26:28Z VendorInfo=gohugoio Kalau muncul keluaran seperti di atas, maka tandanya Hugo berhasil diinstal. Tulisan +extended di atas terjadi ketika Anda menggunakan Hugo Extended, kalau tidak, maka tulisan tersebut memang tidak ada.\nKalau tidak muncul sama sekali atau bahkan mengalami pesan galat, maka artinya instalasi belum berhasil.\nMembuat Halaman Panduan Hugo Kalau mau, Anda juga dapat membuat halaman panduannya yang akan disimpan di dalam direktori pengguna dengan skrip berikut:\n1 2 3 4 hugo gen man --dir \u0026#39;/tmp/hugo_manpages\u0026#39; cd /tmp/hugo_manpages; gzip -9 * install -Dm644 * -t \u0026#34;$HOME\u0026#34;/.local/share/man/man1 cd -; rm -rf /tmp/hugo_manpages Secara baku, direktori \u0026quot;$HOME\u0026quot;/.local/share/man/man1 tidak dianggap sebagai tempat untuk menyimpan halaman panduan, sehingga tidak terbaca oleh Aplikasi pembaca Halaman Panduan seperti man.\nJadi, Anda harus memasukkan direktori tersebut ke dalam variabel MANPATH bersamaan dengan direktori lainnya yang ada di dalam perintah manpath -g.\nAnda bisa gunakan perintah di bawah ini untuk menambahkannya:\nMANPATH=\u0026#34;$(manpath -g):$HOME/.local/share/man\u0026#34; \u0026amp;\u0026amp; export MANPATH Atau, jika Anda menggunakan fish sebagai Shell, silakan gunakan perintah berikut:\nset -gx MANPATH (manpath -g) \u0026#34;$HOME\u0026#34;/.local/share/man Anda bisa menyimpan salah satu dari perintah di atas ke dalam berkas konfigurasi untuk Shell yang Anda gunakan agar perintah tersebut bisa dieksekusi ketika Shell dijalankan secara interaktif.\nMembuat fitur Shell Completion untuk Hugo Jika Anda adalah pengguna fish sebagai Shell, maka Anda dapat memasang fitur Shell Completion-nya dengan perintah berikut:\nhugo completion fish | install -Dm644 /dev/stdin \u0026#34;$HOME/.config/fish/completions/hugo.fish\u0026#34; Atau, jika Anda adalah pengguna GNU Bash, maka Anda dapat memasang fitur Shell Completion-nya dengan perintah berikut:\nhugo completion bash | install -Dm 644 /dev/stdin \u0026#34;$HOME/.local/share/bash-completion/completions/hugo\u0026#34; Fitur seperti ini akan memerlukan paket/perkakas yang bernama bash-completion dan itu bisa Anda instal di dalam distribusi yang Anda gunakan.\nBiasanya, perkakas tersebut sudah terinstal secara baku di beberapa distribusi GNU/Linux, seperti: Ubuntu, openSUSE, Fedora, Manjaro, dll. Namun jika Anda merasa tidak demikian, maka Anda bisa menginstalnya sendiri dengan mengikuti petunjuk dari distribusi Anda.\nJika Anda menggunakan perkakas bash-completion versi 2.8 atau di atasnya (seperti yang ada pada mayoritas Distribusi GNU/Linux), maka seharusnya itu langsung bekerja.\nNamun jika Anda merasa masih menggunakan versi di bawahnya atau merasa kurang yakin, maka Anda dapat menambahkan baris skrip berikut ke dalam berkas ~/.bash_completion ataupun di dalam berkas ~/.bashrc:\nfor bcfile in \u0026#34;$HOME\u0026#34;/.local/share/bash-completion/completions/* ; do [ -f \u0026#34;$bcfile\u0026#34; ] \u0026amp;\u0026amp; . $bcfile done Catatan: Skrip di atas saya dapatkan dari Jawaban Russell E Glaue untuk pertanyaan \u0026ldquo;Standard place for user defined bash_completion.d scripts?\u0026rdquo; di Server Fault, dilisensikan di bawah CC BY-SA 4.0 oleh penjawab.\nDengan begitu, Anda bisa menggunakan fitur Shell Completion-nya di dalam Bash.\nNamun jika Anda menggunakan Z Shell (disingkat menjadi zsh), maka pertama-tama Anda perlu ketahui terlebih dahulu isi dari variabel FPATH dengan perintah berikut beserta keluarannya:\n1 2 $ echo $FPATH /home/user/.oh-my-zsh/plugins/colored-man-pages:/home/user/.oh-my-zsh/plugins/sudo:/home/user/.oh-my-zsh/plugins/debian:/home/user/.oh-my-zsh/plugins/git:/home/user/.oh-my-zsh/functions:/home/user/.oh-my-zsh/completions:/home/user/.oh-my-zsh/cache/completions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/functions/Calendar:/usr/share/zsh/functions/Chpwd:/usr/share/zsh/functions/Completion:/usr/share/zsh/functions/Completion/Base:/usr/share/zsh/functions/Completion/Linux:/usr/share/zsh/functions/Completion/Unix:/usr/share/zsh/functions/Completion/X:/usr/share/zsh/functions/Completion/Zsh:/usr/share/zsh/functions/Exceptions:/usr/share/zsh/functions/Math:/usr/share/zsh/functions/MIME:/usr/share/zsh/functions/Misc:/usr/share/zsh/functions/Newuser:/usr/share/zsh/functions/Prompts:/usr/share/zsh/functions/TCP:/usr/share/zsh/functions/VCS_Info:/usr/share/zsh/functions/VCS_Info/Backends:/usr/share/zsh/functions/Zftp:/usr/share/zsh/functions/Zle Hasil keluaran di atas mungkin akan berbeda-beda pada setiap perangkat, adapun tulisan /home/user/.oh-my-zsh pada keluaran di atas itu akan terjadi jika Anda menggunakan oh-my-zsh sebagai kerangka kerja untuk mengelola konfigurasi Z Shell Anda.\nVariabel tersebut mendefinisikan satu set direktori, yang berisi berkas yang dapat ditandai untuk dimuat secara otomatis oleh Z Shell saat dijalankan, termasuk Completion-nya. Jadi, ketika Anda membuat sebuah skrip Completion, maka Anda perlu meletakkannya di dalam salah satu direktori yang ada di dalam variabel FPATH itu tadi.\nContohnya jika Anda menggunakan oh-my-zsh, maka Anda perlu meletakkannya di dalam folder ~/.oh-my-zsh/completions dan kabar baiknya direktori tersebut ada di dalam variabel FPATH. Berikut adalah perintah untuk membuat Completion-nya:\nhugo completion zsh | install -Dm 644 /dev/stdin \u0026#34;$HOME/.oh-my-zsh/completions/_hugo\u0026#34; Namun jika Anda tidak menggunakan oh-my-zsh, Anda bisa mengganti $HOME/.oh-my-zsh/completions/_hugo di atas menjadi direktori lain, tapi termasuk dalam variabel FPATH.\nJika Anda ingin meletakkannya di dalam direktori kustom yang mana itu tidak termasuk dalam variabel FPATH, maka Anda perlu memasukkan direktori tersebut ke dalam variabelnya secara manual dengan perintah/skrip berikut:\nFPATH=\u0026#34;/direktori/kustom/kamu:$FPATH\u0026#34; \u0026amp;\u0026amp; export FPATH Atau, perintah berikut:\nfpath=( /direktori/kustom/kamu \u0026#34;${fpath[@]}\u0026#34; ) Atau, berikut di bawah ini jika Anda ingin multi-baris:\nfpath=( /direktori/kustom/kamu /direktori/kustom/kamu2 \u0026#34;${fpath[@]}\u0026#34; ) Anda bisa simpan perintah/skrip di atas di dalam berkas ~/.zshrc agar perintah tersebut dapat dieksekusi oleh Z Shell ketika dijalankan secara interaktif.\nPenutup Sudah? Iya, sudah, cuma itu saja yang perlu Anda lakukan. Ini merupakan Artikel yang membahas tentang \u0026lsquo;Cara Install Hugo\u0026rsquo;, bukan \u0026lsquo;Cara Install Hugo beserta konfigurasinya\u0026rsquo;, walaupun saya sedikit berbasa-basi tentang apa itu Hugo dan apa saja variannya.\nDemi kesederhanaan Artikel ini, maka topik tentang membuat Blog di Hugo beserta konfigurasinya akan saya bahas secara terpisah.\nJika kamu mempunyai pertanyaan, kritik dan saran, komentar atau masukkan lainnya, silakan kamu berkomentar melalui kolom komentar yang tersedia atau bisa kamu Hubungi Saya.\nTerima kasih atas perhatiannya 😊\n","date":"2021-10-22T13:32:20+07:00","image":"/cara-install-hugo/hugo-logo-wide_hu_1ca81d6338a99e16.webp","permalink":"/cara-install-hugo/","title":"Cara Install Hugo Static-site Generator"},{"content":"Pembuka Catatan Jika Anda tidak ingin membaca basa-basinya, Anda bisa langsung lanjut ke subbagian \u0026ldquo;Prakata\u0026rdquo; sebelum ke subbagian \u0026ldquo;Persiapan\u0026rdquo;.\nArtikel kali ini akan membahas tentang Cara memasang ZeroSSL + Renew secara Otomatis di Netlify, BunnyCDN, cPanel dan DirectAdmin.\nBlog ini telah menggunakan ZeroSSL sebagai sertifikat SSL/TLS-nya dalam bentuk Wildcard. Gak percaya? Silakan Anda lihat sendiri.\nPEMBARUAN, 08 Mei 2022: Blog ini telah memakai Google Trust Services (GTS), tidak lagi menggunakan ZeroSSL, tapi semua instruksi yang artikel ini bahas tidak banyak berubah/tidak berubah total.\nKendala saat pemasangannya adalah tidak banyak penyedia yang mendukungnya, kebanyakan hanya mendukung Let\u0026rsquo;s Encrypt saja.\nSehingga saya perlu menggunakan acme.sh untuk menerbitkan/memperbarui sertifikat SSL/TLS, lalu saya melakukan Request ke Server API-nya Netlify, BunnyCDN, cPanel dan DirectAdmin untuk memasangkan sertifikatnya menggunakan curl.\nTerlihat sederhana, bukan? Iya memang sederhana, tapi sebenarnya itu tidak semudah yang Anda bayangkan.\nBerkat bantuan dari beberapa referensi, akhirnya saya dapat memasangkan sertifikat tersebut dan membuatnya dapat diperbarui secara otomatis.\nNah, makanya saya buat artikel ini, siapa tahu Anda tertarik atau merasa tertantang untuk memasang sertifikat SSL/TLS dari ZeroSSL ini ke dalam Web/Blog Anda bila dibandingkan dengan Let\u0026rsquo;s Encrypt. Semoga artikel ini akan bermanfaat buat Anda 🙂\nDi sini, Anda akan mempelajari untuk menerbitkan sertifikat SSL/TLS yang bisa Anda dapatkan dari ZeroSSL, baik jangkauannya untuk 1 domain, banyak domain atau subdomain, atau wildcard dengan menggunakan acme.sh sebagai perkakasnya, setelah itu Anda akan memasangkannya dengan cara memanggil server API Bunny.net Netlify, DirectAdmin dan cPanel memakai curl.\nBagi yang belum tahu, ZeroSSL adalah salah satu CA (Certificate Authority) atau otoritas sertifikat yang menerbitkan, mengelola dan mencabut sertifikat SSL/TLS untuk Internet. Ia merupakan salah satu produk dari HID Global, yang merupakan perusahaan pemilik CA IdenTrust dan juga bagian dari ASSA ABLOY.\nSedangkan acme.sh adalah sebuah perkakas klien untuk protokol ACME, yang bertujuan sebagai alat bantu untuk menerbitkan, memperbarui, mencabut atau mengelola sertifikat SSL/TLS. Perkakas tersebut dibuat dengan menggunakan shell dan kompatibel di hampir semua sistem operasi berbasis *nix.\nTunggu, ZeroSSL Gratis? Bukannya bayar? Iya, untuk saat ini ZeroSSL memanglah gratis, bahkan Anda juga dapat menerbitkan sertifikat SSL/TLS secara gratis dalam bentuk apa pun (termasuk Wildcard) dengan jumlah sertifikat yang tidak terbatas, baik dengan menggunakan RSA maupun ECC sebagai algoritma kunci publiknya.\nNamun, itu hanya berlaku jika Anda menerbitkannya melalui server ACME-nya, bukan melalui situs web ataupun REST API-nya. Semua sertifikat yang diterbitkan melalui protokol ACME akan memiliki masa berlaku maksimum 90 hari ke depan.\nInfonya dari mana? Salah satu infonya berasal dari dokumentasinya.\nNah, sekarang sudah paham, kan? Jadi, Anda tidak perlu jadi orang kaya atau berduit banyak dulu biar bisa menerbitkan sertifikat SSL/TLS dari ZeroSSL, kecuali jika Anda ingin layanan dukungan, serta akses ke REST API-nya, Anda bisa berlangganan yang berbayar.\nKenapa ZeroSSL? Dan, kenapa gak pakai Let\u0026rsquo;s Encrypt aja? Kompatibilitas Perangkat Sertifikat TLS dari ZeroSSL menggunakan Sectigo (sebelumnya dikenal sebagai \u0026ldquo;COMODO CA\u0026rdquo;/\u0026ldquo;COMODO\u0026rdquo; saja) sebagai sertifikat akar dari rantai sertifikatnya (yang bisa disebut dengan \u0026ldquo;Rantai Kepercayaan\u0026rdquo;, bahasa Inggrisnya: Chain of Trust), yang telah didukung dan dipercaya oleh mayoritas perangkat lunak sejak lama.\nInformasi mengenai sertifikat akarnya sebagai berikut:\nAkar untuk Rantai (Chain of Trust) Pertama: \u0026ldquo;AAA Certificate Services\u0026rdquo; yang masa berlakunya sampai 31 Desember 2028 pukul 23:59:59 atau 01 Januari 2029 dalam waktu UTC\nAkar untuk Rantai (Chain of Trust) Kedua: \u0026ldquo;USERTrust RSA Certification Authority\u0026rdquo; atau \u0026ldquo;USERTrust ECC Certification Authority\u0026rdquo; yang masing-masing masa berlakunya sampai 18 Januari 2038 pukul 23:59:59 atau 19 Januari 2038 dalam waktu UTC\nIni artinya, hampir semua perangkat lunak bisa menggunakan sertifikat ini, bahkan oleh perangkat lunak versi lama sekali pun (cth. Internet Explorer 6.0+, Mozilla Firefox 1.0+, Opera 6.1+, AOL 5+, Peramban pada Blackberry 4.3.0+, Android 1.5+, dll)\nUntuk lebih lanjut, Anda bisa kunjungi halaman daftar kompatibilitasnya.\nSedangkan Akar dari Chain of Trust-nya Let\u0026rsquo;s Encrypt adalah \u0026ldquo;DST Root CA X3\u0026rdquo; (dari \u0026ldquo;IdenTrust\u0026rdquo;) yang juga mendukung dan dipercaya oleh mayoritas perangkat lunak, termasuk Windows XP SP3 dan Android 7.1.1 kebawah.\nNamun, sebelumnya sempat ada \u0026ldquo;kegundahan\u0026rdquo; karena Akar yang mereka gunakan sudah mau habis masa berlakunya, akar tersebut akan habis pada tanggal 30 September 2021 dan akan digantikan dengan yang baru, yakni \u0026ldquo;ISRG Root X1\u0026rdquo; (dari \u0026ldquo;Internet Security Research Group\u0026rdquo;), sehingga ini berimbas pada perangkat lama, terutama untuk Android 7.1.1 kebawah.\nNamun, masalah ini selesai untuk Android dengan melakukan Cross-Signing, yang artinya sertifikat akar yang lama (DST Root CA X3) telah menerbitkan sertifikat yang \u0026lsquo;sama dengan\u0026rsquo; sertifikat akar barunya, yakni \u0026ldquo;ISRG Root X1\u0026rdquo; sebagai sertifikat penengah, agar \u0026lsquo;rantai\u0026rsquo; dapat terus digunakan meski ada bagian yang rapuh karena sudah habis masanya.\nHal ini bukan berarti masalah sudah selesai sepenuhnya, kemungkinan besar bahwa ada perangkat lain yang tidak kompatibel dengan Akar baru ini setelah Akar pertama habis masa berlakunya, kecuali Windows XP SP3 (jika Anda memperbarui sertifikat akarnya) dan Android 2.3.6 (atau di atasnya).\nBerdasarkan Halaman Kompatibilitas sertifikatnya, sepertinya perangkat yang mempercayai \u0026ldquo;ISRG Root X1\u0026rdquo; itu berkurang bila dibandingkan dengan perangkat yang mempercayai \u0026ldquo;DST Root CA X3\u0026rdquo;. Sehingga, ada kemungkinan bahwa banyak perangkat lain yang tidak kompatibel dengan Let\u0026rsquo;s Encrypt.\nPEMBARUAN, 03 Oktober 2021: Per tanggal 30 September 2021 kemarin, sertifikat akar \u0026ldquo;DST Root CA X3\u0026rdquo; telah habis masa berlakunya dan telah diganti menjadi \u0026ldquo;ISRG Root X1\u0026rdquo;.\nMeski masa berlakunya habis, Let\u0026rsquo;s Encrypt tetap kompatibel dengan sistem operasi Android 7.1.1 ke bawah, tapi masih menggunakan \u0026ldquo;DST Root CA X3\u0026rdquo; sebagai akarnya (lihat cuplikan layar di atas).\nJadi, jika Anda menggunakan Android 7.1.1 ke bawah, maka Anda tidak perlu melakukan apa pun.\nNamun jika Anda tidak menggunakan Android, tidak bisa mengakses Web/Blog yang menggunakan Let\u0026rsquo;s Encrypt atau sekadar ingin menikmati akar baru dari Let\u0026rsquo;s Encrypt, silakan unduh sertifikat akar \u0026ldquo;ISRG Root X1\u0026rdquo;, lalu instal sertifikat akar tersebut agar dapat dipercaya oleh perangkat Anda.\nSetelah selesai menginstal, nonaktifkan/hapus sertifikat akar lama, yakni \u0026ldquo;DST Root CA X3\u0026rdquo; dari perangkat Anda.\nSelain mengunduh dan menginstal sertifikat akarnya secara manual, Anda juga dapat memperbarui sistem pada perangkat Anda agar dapat menikmati sertifikat akar yang baru.\nJadi, jika Anda ingin sebuah sertifikat SSL/TLS Gratis untuk web/blog atau aplikasi Anda serta dapat diakses oleh hampir semua orang atau/dan Anda kurang yakin dengan resolusi dari pihak Let\u0026rsquo;s Encrypt, mungkin ZeroSSL bisa menjadi pilihan yang terbaik untuk Anda.\nTidak (atau Belum?) menerapkan Rate Limit Sampai artikel ini diterbitkan, ZeroSSL tidak (atau Belum?) menerapkan Rate Limit atau batasan penerbitan sertifikat SSL/TLS, tidak seperti Let\u0026rsquo;s Encrypt yang telah menerapkannya sejak lama.\nGak percaya? Silakan Anda kunjungi halaman komparasinya (Baca bagian \u0026ldquo;ACME\u0026rdquo;-nya) atau halaman dokumentasinya.\nJadi, Anda tidak perlu takut jika Anda mengalami kegagalan menerbitkan sertifikat SSL/TLS dengan alasan apa pun, karena rate limit tidak ditentukan di sana.\nMemiliki antarmuka untuk mengelola sertifikat ZeroSSL memiliki antarmuka untuk mengelola sertifikat SSL/TLS di dalam situs web-nya. Di sana, Anda bisa melihat sertifikat yang telah Anda terbitkan, sekaligus mengelola sertifikatnya.\nSelain itu, Anda bisa menghabiskan kuota \u0026ldquo;SSL Gratis\u0026rdquo; yang telah diberikan oleh mereka dengan membuat sertifikat SSL/TLS dari situs web-nya.\nNamun sayangnya, Anda tidak bisa mencabut sertifikat SSL/TLS yang telah Anda terbitkan melalui server ACME-nya di dalam situs web-nya, jadi Anda hanya bisa melihat dan mengunduhnya saja.\nPrakata Sebelum Anda lanjut, saya peringati bahwa artikel/tutorial yang dibahas ini sangatlah \u0026ldquo;panjang x lebar\u0026rdquo;, jika Anda tidak sanggup membaca artikel yang terlalu panjang, saran saya cari artikel lain yang membahas ini dengan lebih sederhana, jangan paksakan diri Anda kecuali jika ingin belajar.\nMeskipun artikel ini panjang kali lebar, saya usahakan agar semuanya saya bahas dalam langkah-demi-langkah, sehingga lebih mudah dipahami oleh Anda.\nOleh karena itu, ada beberapa poin yang saya sarankan, yaitu:\nMemakai perangkat dengan layar yang lebih besar ketimbang layar dari ponsel yang Anda pakai sekarang (cth. Komputer Desktop, Monitor, Tablet/Televisi Pintar, Penggunaan fitur \u0026ldquo;Desktop Mode\u0026rdquo; pada Ponsel/Tablet Pintar, dll) Memiliki sebuah papan ketik (Keyboard) untuk mengikuti artikel ini Gunakan fitur \u0026ldquo;Cari di Halaman\u0026rdquo; di peramban web Anda dengan menekan tombol Ctrl + F, lalu isi dengan bagian atau teks yang ingin Anda cari Saya usahakan agar pembahasan di artikel ini dapat diterapkan atau diikuti oleh hampir semua pengguna sistem operasi, termasuk sistem operasi Windows dan hampir semua sistem operasi berbasis *nix, seperti sistem operasi yang berbasis Linux (cth. GNU/Linux, Android, Alpine Linux, dll), macOS, BSD, dan sistem operasi *nix lainnya.\nNamun, bukan berarti Anda dapat mengikuti semuanya meskipun saya berusaha agar ini bisa diikuti oleh hampir semua sistem operasi, karena saya belum mencoba di sistem operasi selain GNU/Linux, Windows dan Android, sehingga saya tidak berani menjaminnya.\nJadi, mohon perhatian dan pengertiannya, jika Anda melanjutkan berarti Anda sudah memahami semuanya.\nTerima kasih dan selamat melanjutkan 😊\nPersiapan Di artikel ini, Anda akan mempelajari menerbitkan sertifikat SSL/TLS (selanjutnya akan saya sebut sebagai \u0026ldquo;sertifikat TLS\u0026rdquo;) dengan menggunakan acme.sh yang (harusnya) hanya kompatibel dengan sistem operasi berbasis Unix atau mirip Unix (*nix), termasuk GNU/Linux, macOS, BSD dan Android.\nDengan ini, tentu saja salah satu hal yang harus Anda siapkan adalah pengetahuan tentang perintah-perintah dasar dari sistem operasi berbasis *nix, seperti ls, cd, dan dibarengi dengan pengenalan variabel dasar seperti $HOME dan $PATH serta fitur ~ di dalam Shell, menambahkan variabel, penavigasian, bisa copy-paste dari luar ke dalam Terminal dan sebaliknya, mengetahui Shell yang digunakan dan bisa mengedit berkas di dalam Terminal.\nKata \u0026ldquo;Terminal\u0026rdquo; di sini bukan merujuk pada \u0026ldquo;Terminal Kendaraan\u0026rdquo; atau \u0026ldquo;Terminal Bis\u0026rdquo; ya, \u0026ldquo;Terminal\u0026rdquo; yang saya maksudkan di sini adalah aplikasi Emulator Terminal (Terminal Emulator) seperti x-term, Konsole, GNOME Terminal, Windows Terminal, Git Bash, dll.\nSelain itu, Anda juga harus mempersiapkan perangkat lunak yang diminta agar perkakas acme.sh bisa digunakan dan Anda bisa mengikuti artikel ini secara keseluruhan, apalagi jika Anda menggunakan sistem operasi Windows.\nBerikut di bawah ini adalah persiapan perangkat lunaknya:\nUntuk Pengguna GNU/Linux, macOS, BSD dan Sistem Operasi berbasis *nix lainnya Hal-hal yang harus Anda siapkan untuk pengguna sistem operasi berbasis *nix adalah sebagai berikut:\nOpenSSL (atau LibreSSL?) curl Cron (atau Systemd Timer untuk pengguna Systemd) Socat (Socket Cat) (Opsional, hanya berlaku buat yang ingin menjalankan acme.sh dalam \u0026ldquo;Standalone Mode\u0026rdquo;, artikel ini tidak membahasnya lebih lanjut) Untuk Pengguna Windows Hal-hal yang harus Anda siapkan untuk pengguna Windows adalah sebagai berikut:\nMemiliki Akses ke Lingkungan *nix: (Pilih salah satu caranya) Mengaktifkan fitur WSL (Windows Subsystem for Linux) 2 untuk Windows 10 atau di atasnya (disarankan) Menggunakan perangkat lunak yang dapat mengemulasikan lingkungan UNIX, seperti Git Bash, Cygwin, dll, tapi opsi ini belum saya coba Mesin Virtual atau Kontainer dengan sistem operasi berbasis *nix (disarankan menggunakan GNU/Linux) Mengakses server atau perangkat Anda yang menggunakan sistem operasi *nix dengan menggunakan klien SSH Persiapan perangkat lunak pada WSL, mesin virtual, kontainer atau pada server bisa mengikuti persiapan untuk sistem operasi *nix Namun, jika Anda mempunyai ponsel berbasis Android 7.0 atau di atasnya, disarankan instal Termux di ponselmu dan buatlah agar Termux-nya dapat diakses dari komputer desktop atau laptop kamu melalui SSH, lalu kamu atur agar Termux-nya dapat diaktifkan setelah perangkat dinyalakan dan terus aktif di latar belakang, caranya kunjungi artikel ini.\nUntuk Pengguna Android (tidak perlu akses root) Hal-hal yang harus Anda siapkan untuk pengguna Android adalah sebagai berikut:\nMenggunakan sistem operasi Android versi 7.0 atau di atasnya, sebagai syarat untuk menggunakan Termux. Jika di bawah 7.0, Anda dapat mengikuti petunjuknya, tapi saya tidak dapat menjamin bahwa Anda akan dapat mengikuti artikel ini ke depannya walau kemungkinan besar bisa-bisa saja Terinstalnya Termux di dalam perangkat Android Anda. Bisa diunduh di F-Droid resminya, bisa juga unduh di Google Play Store, tapi saya sarankan lewat F-Droid karena Termux di Google Play Store masih bersifat eksperimental Persiapan yang harus Anda lakukan pada Termux setelah diinstal adalah sebagai berikut: Buka Termux-nya Perbarui semua paket yang ada di Termux dengan perintah: pkg upg -y Instal semua keperluannya dengan perintah: pkg i -y curl wget openssl-tool jq cronie termux-services, lalu mulai ulang Termux jika berhasil Aktifkan Layanan (Service) Cron di latar belakang dengan perintah: sv-enable crond \u0026amp;\u0026amp; sv up crond Jika Anda memiliki komputer desktop atau laptop dan ponsel pintar berbasis Android yang terkoneksi dengan jaringan yang sama, maka sebaiknya kamu instal openssh (atau sejenisnya) di dalam Termux, lalu kamu lakukan semua itu secara remot dari komputer desktop atau laptop kamu melalui perkakas klien SSH. Caranya bisa Anda baca artikel ini Catatan: Semua hal di atas dapat Anda lakukan tanpa perlu akses root sedikit pun dan perangkat tidak perlu dalam keadaan rooted, sehingga Anda tidak perlu khawatir soal garansi perangkat.\nSebelum menerbitkan Sertifikat TLS Sebelum menerbitkannya, Anda perlu mengikuti beberapa poin pembahasan terlebih dahulu. Poin-poin akan saya bahas dalam langkah-demi-langkah.\nJadi, harap Anda jangan melewati satu langkah pun, kecuali jika ada catatan yang mengizinkannya.\nAtau, Anda juga bisa lewati bagian ini jika Anda sudah pernah mendaftarkan akun ZeroSSL, meng-install dan konfigurasi acme.sh, serta melakukan pengaitan akun ZeroSSL dengan acme.sh sebelumnya.\nMembuat Akun ZeroSSL dan mendapatkan Kredensial EAB-nya Sebelum Anda menerbitkan sertifikatnya, silakan mendaftar akun ZeroSSL terlebih dahulu melalui situs webnya.\nSetelah mendaftar, kamu tidak perlu membuat/menerbitkan sertifikatnya di sana, melainkan hanya perlu Kredensial EAB (External Account Binding) yakni \u0026ldquo;EAB KID\u0026rdquo; dan \u0026ldquo;EAB HMAC Key\u0026rdquo;-nya saja.\nApa itu Kredensial EAB? Kredensial EAB adalah sebuah kredensial untuk menghubungkan antara perkakas/perangkat lunak yang merupakan klien untuk protokol ACME dengan akun CA yang telah Anda daftarkan.\nTanpa basa-basi lagi, langkah-langkahnya sebagai berikut:\nDaftar Akun ZeroSSL-nya di Situs Web-nya dan login setelah itu (Atau, kamu hanya perlu Login saja jika kamu sudah pernah mendaftar akun sebelumnya) Pada Dasbor ZeroSSL, klik \u0026ldquo;Developer\u0026rdquo; Setelah itu, pada bagian \u0026ldquo;EAB Credentials for ACME Clients\u0026rdquo;, klik Button \u0026ldquo;Generate\u0026rdquo; Simpan \u0026ldquo;EAB KID\u0026rdquo; dan \u0026ldquo;EAB HMAC Key\u0026rdquo; yang telah dihasilkan itu dengan baik, nanti akan digunakan lagi untuk acme.sh Setelah menyimpannya, kamu tinggal klik Button \u0026ldquo;Done\u0026rdquo; dan Selesai Jika Anda tidak memahami langkah-langkah di atas, Anda dapat melihat cuplikan layar berikut yang cukup menyesuaikan dengan langkah-langkah di atas: (Silakan perbesar gambarnya dengan mengkliknya)\nSetelah Kredensial EAB dibuat, perlu diingat bahwa kredensial EAB dapat digunakan kembali, sehingga kredensial yang sama dapat digunakan berkali-kali. Jadi, simpanlah kredensial tersebut dengan baik dan jangan beritahu ke siapa pun, kecuali jika Anda mempercayai orang tersebut dan siap menanggung sendiri atas risiko yang disebabkan oleh Anda sendiri.\nSekarang lanjut ke langkah berikutnya, yakni instal acme.sh, dan Anda sama sekali tidak perlu menerbitkan sertifikat TLS-nya di sana.\nInstal acme.sh Setelah mendaftar akun ZeroSSL, salah satu hal yang perlu Anda lakukan adalah menginstal acme.sh terlebih dahulu di dalam sistem operasi Anda.\nTidak perlu menggunakan akun administrator atau root untuk menginstalnya, atau tidak perlu dieksekusikan melalui perintah sudo layaknya Certbot, cukup gunakan saja akun Anda yang sekarang, seperti biasanya.\nCara menginstalnya adalah dengan mengeksekusikan salah satu perintah berikut:\nDengan curl:\ncurl https://get.acme.sh | sh -s email=emailku@domain.com Atau dengan GNU Wget:\nwget -O - https://get.acme.sh | sh -s email=emailku@domain.com Atau, Anda dapat menambah parameter --force jika Anda tidak ingin menggunakan Cron, contohnya seperti berikut:\ncurl https://get.acme.sh | sh -s email=emailku@domain.com --force Ganti emailku@domain.com dengan alamat surel Anda, jangan lupa dimasukkan, tapi jika Anda lupa atau telanjur salah memasukkan alamat surel saat menginstalnya, Anda dapat eksekusi perintah di bawah ini setelah terinstal:\n1 2 3 cp \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf.1 ## Backup dulu sed -i \u0026#39;/ACCOUNT\\_EMAIL\\=/d\u0026#39; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf ## Hapus Variabel `ACCOUNT_EMAIL` yang sudah ada printf \u0026#34;ACCOUNT_EMAIL=\u0026#39;%s\u0026#39;\\n\u0026#34; \u0026#34;emailku@domain.com\u0026#34; \u0026gt;\u0026gt; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf Ganti emailku@domain.com dengan alamat surel Anda.\nSetelah selesai instal, pastikan bahwa acme.sh dapat dieksekusi dengan baik dengan mengetik acme.sh --version di dalam Terminal, lalu tekan tombol ↵ Enter.\nJika dapat dieksekusi dengan baik, maka akan tampil versi dari acme.sh dan selamat Anda telah menginstalnya dengan benar, silakan klik di sini untuk melanjutkan ke langkah berikutnya.\nJika tidak, gunakan perintah source \u0026lt;LETAK_KONFIGURASI_SHELL\u0026gt; atau tutup Terminal lalu buka lagi untuk memperbarui Shell.\nKalau masih tidak bisa juga, maka Anda perlu memasukkan direktori acme.sh ke dalam variabel PATH dengan menambahkan teks berikut di bawah ini ke dalam berkas konfigurasi Shell yang nantinya akan digunakan ketika Anda menjalankan sebuah Shell secara interaktif.\nBerikut adalah teksnya:\n1 source ~/.acme.sh/acme.sh.env Tambahkan baris di atas ke dalam berkas ~/.bashrc jika Anda menggunakan GNU Bash atau ~/.zshrc jika Anda adalah pengguna Z Shell.\nAtau, berikut di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 fish_add_path \u0026#34;$HOME\u0026#34;/.acme.sh set -xU LE_WORKING_DIR \u0026#34;$HOME\u0026#34;/.acme.sh Atau, di bawah ini jika Anda menggunakan fish dengan versi di bawah 3.2.0:\n1 2 set -Ua fish_user_paths \u0026#34;$HOME\u0026#34;/.acme.sh set -xU LE_WORKING_DIR \u0026#34;$HOME\u0026#34;/.acme.sh Tambahkan baris di atas ke dalam berkas ~/.config/fish/conf.d/acme.sh.fish jika Anda menggunakan fish sebagai Shell.\nSetelah selesai menambahkannya, simpanlah berkas tersebut dari editor teks favorit Anda dan perbarui Shell-nya dengan menggunakan perintah source \u0026lt;LETAK_KONFIGURASI_SHELL\u0026gt; atau keluar dari Terminal lalu buka lagi, setelah itu coba eksekusikan ulang perkakas acme.sh-nya.\nRegistrasi Akun melalui acme.sh Secara baku, acme.sh menggunakan ZeroSSL sebagai CA (Certificate Authority)-nya, jadi jika Anda adalah orang yang pertama kali menggunakan acme.sh, silakan registrasikan akun ZeroSSL yang telah Anda buat terlebih dahulu ke Server ACME-nya menggunakan acme.sh dengan perintah berikut:\nacme.sh --register-account \\ --eab-kid EAB_KID_KAMU_DI_SINI \\ --eab-hmac-key EAB_HMAC_KEY_KAMU_DI_SINI Ganti EAB_KID_KAMU_DI_SINI dan EAB_HMAC_KEY_KAMU_DI_SINI dengan \u0026ldquo;EAB KID\u0026rdquo; dan \u0026ldquo;EAB HMAC Key\u0026rdquo; yang telah kamu simpan sebelumnya.\nAnda bisa simpan ACCOUNT_THUMBPRINT-nya dengan baik, barangkali suatu saat nanti Anda ingin menjalankan acme.sh dalam \u0026ldquo;Stateless Mode\u0026rdquo;, tapi Anda bisa dapatkan itu kembali dengan mengeksekusi perintah acme.sh --register-account.\nJika sudah, silakan lanjut ke langkah berikutnya.\nMembuat Akses API Sebelum menerbitkan sertifikat TLS, maka ada baiknya untuk membuat kode token untuk akses ke API-nya terlebih dahulu.\nIni akan sangat berguna untuk verifikasi DNS ke depannya dan juga memasang sertifikat TLS itu sendiri. Jadi, Anda wajib membuatnya, tapi Anda tidak perlu membuat semuanya, melainkan sesuai dengan layanan yang Anda gunakan.\nMisalnya, jika Anda menggunakan Cloudflare sebagai penyedia DNS dan Netlify sebagai hosting atau cPanel/DirectAdmin sebagai kontrol panel hosting, maka Anda hanya perlu membuat akses API dari Cloudflare untuk keperluan verifikasi DNS dan Netlify/cPanel/DirectAdmin untuk keperluan memasang sertifikat TLS.\nAtau, jika Anda menggunakan Netlify sebagai penyedia DNS dan hostingnya, Anda hanya cukup membuat 1 kode token dari Netlify saja untuk keperluan verifikasi DNS dan memasang sertifikatnya.\nKalau sudah tahu caranya dan sudah pernah Anda lakukan sebelumnya, Anda bisa langsung lewati ini.\nKalau belum, silakan ikuti cara-caranya berikut di bawah ini.\nPenyedia DNS Cloudflare Untuk membuat Kode Token Akses API-nya, silakan baca dokumentasinya, di sana sudah dijelaskan secara lengkap tentang bagaimana cara membuat kodenya.\nPastikan kamu pilih templat \u0026ldquo;Edit zone DNS\u0026rdquo; atau pada Permissions pilih \u0026ldquo;Zone\u0026rdquo;, \u0026ldquo;DNS\u0026rdquo; dan \u0026ldquo;Edit\u0026rdquo; agar acme.sh dapat mengubah dan membuat catatan DNS-nya untuk keperluan verifikasi.\nKalau sudah selesai, nanti kode token-nya akan muncul dan hanya bisa dilihat satu kali saja.\nMaka dari itu, simpanlah kode tersebut baik-baik karena akan digunakan kembali, pastikan juga bahwa tidak ada seorang pun yang dapat mengetahui kode tersebut kecuali Anda sendiri atau orang yang dapat Anda percayakan.\nJika tidak ada lagi penyedia lain yang perlu Anda buatkan akses API-nya, silakan langsung lanjut ke bagian Verifikasi DNS di acme.sh\nNetlify Jika Anda menggunakan Netlify sebagai Hosting ataupun Penyedia DNS untuk domain-mu atau kedua-duanya, Anda perlu buat sebuah Akses API yang bernama \u0026ldquo;Personal access token\u0026rdquo;.\nNgomong-ngomong, selain bisa untuk verifikasi DNS, kode token ini bisa Anda gunakan juga untuk memasang sertifikatnya nanti. Jadi setelah Anda membuatnya, simpanlah kode tersebut dengan baik agar bisa digunakan nanti.\nNamun, jika sebelumnya sudah pernah menerbitkan sertifikatnya dan membuat kode token Netlify, serta ingin memasangkan sertifikatnya di sana melalui Akses API, silakan lewati bagian ini dan verifikasi DNS dengan klik di sini untuk langsung melompat ke caranya.\nKalau belum, silakan dibuat terlebih dahulu, caranya sebagai berikut:\nAnda bisa langsung masuk ke sini, lakukan login terlebih dahulu jika diminta. Klik pada button \u0026ldquo;New access token\u0026rdquo; di bagian \u0026ldquo;Personal access tokens\u0026rdquo; Masukkan Nama/Deskripsi mengenai Tokennya Setelah itu, klik pada Button \u0026ldquo;Generate\u0026rdquo; untuk menghasilkan \u0026ldquo;Access Token\u0026rdquo;-nya Setelah \u0026ldquo;Access Token\u0026rdquo; tampil, simpan itu baik-baik, karena \u0026ldquo;Access Token\u0026rdquo; tersebut tidak bisa tampil lagi dan itu akan digunakan kembali, serta pastikan bahwa tidak ada orang lain yang mengetahuinya Klik pada Button \u0026ldquo;Done\u0026rdquo; jika merasa sudah selesai Setelah mendapatkan semua itu, sekali lagi, simpanlah informasi tersebut baik-baik karena akan digunakan kembali, pastikan juga bahwa tidak ada seorang pun yang dapat mengetahui informasi tersebut kecuali Anda sendiri atau orang yang dapat Anda percayakan.\nJika tidak ada lagi penyedia lain yang perlu Anda buatkan Akses API-nya, silakan langsung lanjut ke bagian Verifikasi DNS di acme.sh\nbunny.net (sebelumnya BunnyCDN) Jika Anda menggunakan bunny.net (sebelumnya: BunnyCDN) sebagai CDN, Reverse-proxy, Penyedia DNS ataupun Hosting, maka Anda bisa mendapatkan \u0026ldquo;Access Key\u0026rdquo;-nya di sini.\nNamun, jika sebelumnya sudah sudah pernah menerbitkan sertifikatnya, sudah mendapatkan dan menyimpan Access Key-nya, serta ingin memasangkan sertifikatnya di sana melalui akses API, silakan lewati bagian ini dan verifikasi DNS dengan klik di sini untuk langsung melompat ke caranya.\nKalau belum, silakan dapatkan terlebih dahulu, caranya sebagai berikut:\nSilakan akses ke Dasbor bunny.net-nya, login jika diminta. Klik pada foto profilmu, lalu klik \u0026ldquo;Account settings\u0026rdquo; untuk masuk ke dalam pengaturan akun Di dalam pengaturan akun, klik pada \u0026ldquo;API Key\u0026rdquo; Di situ kamu akan melihat sebuah kotak teks yang diisikan dengan lingkaran atau tanda bintang, klik pada ikon papan klip untuk langsung menyalinkan kodenya atau ikon mata jika Anda ingin melihat isi yang sebenarnya Nah, \u0026ldquo;Access Key\u0026rdquo; sudah disalin atau tampil, simpan itu baik-baik untuk digunakan nanti dan pastikan tidak ada siapa pun yang mengetahuinya Jika Anda tidak memahami langkah-langkah di atas, maka Anda dapat melihat cuplikan layar berikut: (Silakan perbesar gambarnya dengan mengkliknya)\nSetelah mendapatkan semua itu, sekali lagi, simpanlah informasi tersebut baik-baik karena akan digunakan kembali, pastikan juga bahwa tidak ada seorang pun yang dapat mengetahui informasi tersebut kecuali Anda sendiri atau orang yang dapat Anda percayakan.\nJika tidak ada lagi penyedia yang perlu Anda buatkan Kode Token-nya, silakan langsung lanjut ke Verifikasi DNS di acme.sh\ncPanel Jika Anda merupakan pengguna cPanel, baik di server sendiri maupun di layanan hosting yang Anda gunakan, Anda diharuskan untuk membuat kode token agar sertifikat dapat terpasang secara otomatis dengan mengakses API-nya.\nNamun, jika sebelumnya sudah pernah menerbitkan sertifikatnya dan sudah membuat kode token di cPanel, serta ingin memasangkan sertifikatnya melalui API-nya, silakan lewati bagian ini dan verifikasi DNS dengan klik di sini untuk langsung melompat ke caranya.\nCatatan: Fitur ini masih dalam tahap eksperimental, jadi silakan tanggung sendiri segala risiko yang akan Anda hadapi ke depan, seperti perubahan yang terjadi dengan cepat dan risiko lainnya.\nKalau belum, silakan buat terlebih dahulu, caranya sebagai berikut:\nMasuk ke cPanel menggunakan akun cPanel Anda, bukan Akun Billing (Akun cPanel dan Billing itu beda lho, jangan salah) Setelah masuk ke cPanel, gulirkan tetikusnya ke arah bawah sampai ke bagian \u0026ldquo;Security\u0026rdquo; (bahasa Indonesia: \u0026ldquo;Keamanan\u0026rdquo;), pada bagian tersebut kamu klik \u0026ldquo;Manage API Tokens\u0026rdquo;, seperti cuplikan berikut: (Atau, langsung cari aja \u0026ldquo;Manage API Tokens\u0026rdquo;, terus tinggal kamu klik aja hasilnya) Jika Anda baru pertama kali membuat kode token, Anda akan langsung diminta untuk melengkapi informasi yang ada di sana untuk dibuatkan kode token-nya. Lengkapi informasi berikut ini:\nAPI Token Name: Itu merupakan Nama kode token yang ingin Anda buat, Anda bisa mengisinya dengan bebas, tapi karakter yang boleh dimasukkan adalah alfanumerik (besar dan kecil diperbolehkan), tanda hubung/pisah dan tanda garis bawah saja, serta peka terhadap huruf besar dan kecil (case sensitive) Should the API Token Expire?: Itu menentukan masa berlaku API Token yang Anda buat, jika tidak ingin ada masa berlaku, Anda tinggal pilih \u0026ldquo;The API Token will not expire\u0026rdquo; atau \u0026ldquo;Specify an expiration date\u0026rdquo; jika Anda ingin menyetel tanggalnya (Saran saya jangan ada masa berlaku, kalau mau ada masa berlakunya pastikan Anda bisa memperbaruinya secara otomatis) Jika sudah selesai, klik pada button \u0026ldquo;Create\u0026rdquo; (bahasa Indonesia: \u0026ldquo;Buat\u0026rdquo;)\nSetelah mengkliknya, kamu akan melihat Kode API Token yang hanya bisa dilihat sekali saja, jadi simpanlah API Token tersebut baik-baik dan pastikan tidak ada seorang pun yang mengetahuinya kecuali Anda sendiri.\nJika sudah, centang pada bagian \u0026ldquo;Create another token after I click Yes, I saved my token.\u0026rdquo;, lalu klik pada Button \u0026ldquo;Yes, I Saved My Token\u0026rdquo;, seperti cuplikan berikut:\nSetelah mendapatkan semua itu, sekali lagi, simpanlah informasi tersebut baik-baik karena akan digunakan kembali, pastikan juga bahwa tidak ada seorang pun yang dapat mengetahui informasi tersebut kecuali Anda sendiri atau orang yang dapat Anda percayakan.\nJika tidak ada lagi penyedia lain yang perlu Anda buatkan Akses API-nya, silakan langsung lanjut ke bagian Verifikasi DNS di acme.sh\nDirectAdmin Jika Anda merupakan pengguna DirectAdmin, baik di server sendiri maupun di layanan hosting yang Anda gunakan, sebaiknya Anda membuat \u0026ldquo;Login Key\u0026rdquo; terlebih dahulu agar dapat memasangkan sertifikat TLS secara otomatis melalui API-nya.\nNamun, jika sebelumnya sudah pernah menerbitkan sertifikatnya dan sudah membuat \u0026ldquo;Login Key\u0026rdquo;-nya di DirectAdmin, serta ingin memasangkan sertifikatnya melalui API-nya, silakan lewati bagian ini dan verifikasi DNS dengan klik di sini untuk langsung melompat ke caranya.\nKalau belum, silakan dibuat terlebih dahulu, caranya sebagai berikut:\nMasuk ke DirectAdmin menggunakan Akun DirectAdmin Anda, bukan Akun Billing (Akun DirectAdmin dan Billing itu beda lho, jangan salah)\nSetelah masuk ke DirectAdmin, gunakan fasilitas pencarian untuk mencari \u0026ldquo;Login Keys\u0026rdquo; (tanpa kutip), jika ketemu klik pada \u0026ldquo;Login Keys\u0026rdquo;. Seperti cuplikan berikut:\nSetelah masuk ke \u0026ldquo;Login Keys\u0026rdquo;, klik pada Button \u0026ldquo;Create\u0026rdquo; untuk membuat \u0026ldquo;Login Key\u0026rdquo;-nya. Seperti cuplikan berikut: Lalu, lengkapi informasi berikut untuk membuatnya:\nKey Type: Pilih jenis kuncinya, pilih saja \u0026ldquo;Key\u0026rdquo; Key Name: Tentukan nama kuncinya, nama hanya boleh mengandung karakter alfanumerik saja, besar-kecilnya diperhatikan, tidak boleh ada karakter apa pun selain itu termasuk simbol dan spasi Key Value: Tentukan nilai kuncinya, saran saya klik pada ikon dadu saja agar bisa dihasilkan dengan acak, tidak disarankan untuk menggunakan kata sandi Anda sebagai nilai kuncinya Expires On: Tentukan masa berlaku kuncinya, saran saya centang \u0026ldquo;Never\u0026rdquo; saja, kecuali jika Anda dapat memperbaruinya secara terprogram Clear Key: Di bagian ini ada opsi \u0026ldquo;Automatically delete the key once the key expires\u0026rdquo; yang bisa Anda centang, ini tidak akan berpengaruh kalau \u0026ldquo;Login Key\u0026rdquo;-nya tidak memiliki masa berlaku Allow HTM: Di bagian ini ada opsi \u0026ldquo;Allows browsing of the DA interface to HTM, IMG and CSS files.\u0026rdquo; yang bisa Anda centang, entah ini fungsinya buat apaan, sepertinya untuk kasus ini dicentang atau tidak juga tidak terlalu berpengaruh Commands: Di bagian ini, Anda harus menentukan perintah mana yang diizinkan dan ditolak. Untuk kasus ini, Anda harus menolak semua perintah selain CMD_API_SSL dan CMD_SSL yang diizinkan. Caranya tinggal centang \u0026ldquo;Deny\u0026rdquo;, lalu cari dengan kata kunci \u0026ldquo;SSL\u0026rdquo; (tanpa kutip), setelah itu centang dua-duanya di kolom \u0026ldquo;Allow\u0026rdquo; (Untuk lebih jelas, bisa lihat pada cuplikan di atas) Allowed IPs: Anda bisa menentukan hanya dari Alamat IP apa saja yang diperpolehkan untuk menggunakan kunci ini, saran saya tidak usah diisi untuk mengijinkan semua Alamat IP untuk menggunakan kunci ini, kecuali jika Anda mempunyai kebutuhan khusus Current Password: Isikan ini dengan kata sandi Akun DirectAdmin Anda yang sekarang Jika sudah selesai, klik pada Button \u0026ldquo;Create\u0026rdquo; untuk membuatkan kuncinya\nSetelah mengkliknya, kamu akan melihat \u0026ldquo;Key Value\u0026rdquo; yang kamu isi dan itu adalah \u0026ldquo;Login Key\u0026rdquo;-nya yang hanya bisa dilihat satu kali saja, jadi simpanlah kunci tersebut baik-baik dan pastikan tidak ada seorang pun yang dapat mengetahuinya kecuali Anda sendiri dan orang yang Anda percayakan.\nJika sudah, Anda tinggal menutupinya saja dengan mengklik ikon silangnya. Seperti cuplikan berikut:\nJika tidak ada lagi penyedia lain yang perlu Anda buatkan Akses API-nya, silakan langsung lanjut ke bagian Verifikasi DNS di acme.sh\nVerifikasi DNS di acme.sh Agar sertifikat TLS dapat diterbitkan melalui protokol ACME, maka pengguna diperlukan melakukan verifikasi untuk menyelesaikan tantangan. Salah satunya adalah dengan verifikasi DNS.\nVerifikasi DNS merupakan sebuah metode yang menggunakan catatan DNS (DNS Record) pada domain pengguna untuk memverifikasi bukti kepemilikan domain sebelum sertifikat diterbitkan atau diperbarui.\nVerifikasi seperti ini tidak memerlukan keberadaan web server, sehingga Anda bisa menerbitkannya di mana saja dan di perangkat apa saja (termasuk ponsel pintar, komputer desktop, dll), selama dapat menjalankan acme.sh di dalam perangkat Anda.\nIni juga sebagai syarat agar dapat menerbitkan sertifikat TLS untuk semua subdomain Anda (Wildcard SSL) dengan mudah.\nSelain itu, karena Anda ingin memasang sertifikat TLS di penyedia web yang sedang saya bahas di artikel ini, yakni Netlify, Bunny CDN, cPanel dan DirectAdmin, serta melakukannya di dalam perangkat yang Anda miliki, maka metode verifikasi seperti ini wajib dipelajari.\nNamun, agar perkakas acme.sh dapat melakukan verifikasi DNS secara otomatis saat menerbitkan dan memperbarui sertifikat TLS-nya, maka acme.sh harus dapat mengakses dan mengubah catatan DNS di dalam domain milik Anda dengan mengakses akun penyedia DNS milik Anda.\nUntuk itu, Anda perlu memasukkan kredensial penyedia DNS milik Anda, bisa berupa kode API Token, kunci API atau apa pun itu untuk mengakses API atau bahkan nama pengguna dan kata sandi untuk acme.sh.\nKalau saya gak mau gimana? Bisa saja Anda melakukannya secara manual, sehingga Anda menambahkan catatan DNS-nya secara manual juga.\nNamun sertifikat TLS tersebut memiliki masa berlaku maksimum 90 hari, sehingga harus diperbarui sebelum habis masanya dan saat pembaruan Anda harus masukkan lagi catatan DNS-nya secara manual, sehingga tidak mungkin kamu bisa memperbarui sertifikat tersebut secara otomatis.\nPertanyaannya, apa kamu gak capek kayak gitu terus? Ya terserah kamu, sih. Kalo saya jadi kamu, mending saya pake metode yang otomatis saja ketimbang pake yang manual.\nJadi kamu gak perlu takut, perkakas acme.sh ini gak bakalan ngumpulin data-data kamu kok, kamu hanya perlu hati-hati aja dalam menjaga perangkatnya 😊\nUntuk Pengguna DNS Otoritatif Cloudflare Jika Anda menggunakan Cloudflare sebagai penyedia DNS untuk domain Anda, maka Anda perlu membuat kode token API-nya (CF_Token) dan mendapatkan \u0026ldquo;Account ID\u0026rdquo;-nya (CF_Account_ID).\nKalau perlu, kamu juga bisa dapatkan \u0026ldquo;Zone ID\u0026rdquo;-nya juga, agar acme.sh dapat menargetkan domain/zona yang spesifik tanpa harus mencarinya lagi, tapi itu tidak wajib, kalau menurutmu gak perlu ya gak usah.\nNamun dengan adanya \u0026ldquo;Zone ID\u0026rdquo;, maka acme.sh akan menyimpan kode token beserta \u0026ldquo;Account ID\u0026rdquo; di dalam berkas konfigurasi untuk domain alih-alih di dalam ~/.acme.sh/account.conf setelah selesai menerbitkan sertifikatnya.\nJika \u0026ldquo;Zone ID\u0026rdquo; tidak dimasukkan, maka konfigurasi akan disimpan ke dalam berkas account.conf.\nUntuk cara membuatnya, silakan klik di sini.\nSetelah semuanya berhasil didapat, tinggal Anda masukkan saja semua informasinya ke dalam variabel. Dengan cara berikut:\n1 2 3 4 5 6 7 ### Di bawah ini adalah Informasi yang wajib dimasukki export CF_Token=\u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; export CF_Account_ID=\u0026#34;ACCOUNT_ID_KAMU_DI_SINI\u0026#34; ### Anda juga dapat memasukkan \u0026#34;Zone ID\u0026#34; supaya acme.sh dapat menargetkan ### Domain/Zona yang spesifik dengan cepat tanpa harus mencarinya lagi export CF_Zone_ID=\u0026#34;ZONE_ID_KAMU_DI_SINI\u0026#34; Atau di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 3 set -x CF_Token \u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; set -x CF_Account_ID \u0026#34;ACCOUNT_ID_KAMU_DI_SINI\u0026#34; set -x CF_Zone_ID \u0026#34;ZONE_ID_KAMU_DI_SINI\u0026#34; Di mana saya memasukkannya? Saran saya di dalam Terminal-nya langsung.\nUdah itu aja, jika Anda menggunakan Cloudflare dan sudah memasukkan kredensial di atas, Anda hanya perlu langsung melanjutkan ke langkah berikutnya saja untuk mempelajari penerbitan sertifikat.\nUntuk Pengguna Netlify DNS Jika Anda menggunakan Netlify sebagai penyedia DNS, Anda cuma perlu membuat \u0026ldquo;Personal Access Token\u0026rdquo;-nya (NETLIFY_ACCESS_TOKEN) saja sebagai kredensial untuk akses API-nya.\nUntuk cara membuatnya, silakan klik di sini.\nSetelah berhasil dibuat, tinggal Anda masukkan saja informasinya ke dalam variabel. Dengan cara berikut:\nexport NETLIFY_ACCESS_TOKEN=\u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\nset -x NETLIFY_ACCESS_TOKEN \u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; Di mana saya memasukkannya? Saran saya di dalam Terminal-nya langsung.\nUdah itu aja, jika Anda menggunakan Netlify dan sudah memasukkan informasi di atas, Anda hanya perlu langsung melanjutkan ke langkah berikutnya saja untuk mempelajari penerbitan sertifikat.\nUntuk Pengguna Bunny DNS Jika Anda menggunakan Bunny DNS sebagai penyedia DNS, Anda cuma perlu mendapatkan \u0026ldquo;Access Key\u0026rdquo;-nya saja sebagai kredensial untuk akses API-nya.\nUntuk cara mendapatkannya, silakan klik di sini.\nSetelah berhasil ditemukan, tinggal Anda masukkan saja informasinya ke dalam variabel. Dengan cara berikut:\nexport BUNNY_API_KEY=\u0026#34;ACCESS_KEY_KAMU_DI_SINI\u0026#34; Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\nset -x BUNNY_API_KEY \u0026#34;ACCESS_KEY_KAMU_DI_SINI\u0026#34; Di mana saya memasukkannya? Saran saya di dalam Terminal-nya langsung.\nUdah itu aja, jika Anda menggunakan Bunny DNS dan sudah memasukkan informasi di atas, Anda hanya perlu langsung melanjutkan ke langkah berikutnya saja untuk mempelajari penerbitan sertifikat.\nUntuk Pengguna Penyedia DNS lain Jika Anda menggunakan penyedia DNS selain Cloudflare, Netlify DNS dan Bunny DNS, seperti Hurricane Electric Free DNS, Constellix, NS1, ClouDNS, Amazon Route 53, Google Cloud DNS, dll, maka Anda perlu membaca halaman dokumentasinya.\nKarena setiap penyedia DNS mempunyai cara yang berbeda-beda untuk mengaksesnya. Jadi, silakan ikuti yang ada di dokumentasinya.\nSetelah itu, kamu telah dapat menggunakan acme.sh seperti biasanya untuk menerbitkan/membuat dan memperbarui sertifikat TLS kamu.\nMenerbitkan Sertifikat TLS dengan acme.sh Nah, setelah mengikuti beberapa langkah, akhirnya Anda bisa sampai di sini, yakni menerbitkan sertifikat TLS.\nAda beberapa cara untuk menerbitkannya menggunakan acme.sh, tidak perlu Anda ikuti semua dan sesuaikan dengan selera Anda, kecuali jika ada teks \u0026ldquo;Wajib dipelajari\u0026rdquo;-nya, bagian itu yang wajib Anda pelajari.\nBerikut adalah cara-caranya:\nMenerbitkan Sertifikat TLS (Wajib dipelajari) Jika Anda ingin menerbitkan sertifikat TLS dengan acme.sh (cth. hanya untuk 1 Domain dan 1 Subdomain), maka format perintahnya akan menjadi seperti berikut:\nacme.sh --issue -d www.domain.com -d domain.com METODE_VERIFIKASI PARAMETER_TAMBAHAN Perintah di atas akan menerbitkan sertifikat TLS yang hanya menjangkau 1 domain dan 1 subdomain saja, yakni www.domain.com dan domain.com.\nParameter -d berfungsi untuk menentukan domain yang dijangkau oleh sertifikat TLS tersebut saat diterbitkan, isikan itu dengan domain Anda.\nSebenarnya, Anda juga dapat menambahkan perameter -d agar sertifikat TLS menjangkau setiap domain yang Anda masukkan, sebanyak yang Anda mau.\nDomain pertama yang Anda masukkan itu merupakan domain utama dan akan menjadi \u0026ldquo;Common Name\u0026rdquo;, \u0026ldquo;Subject\u0026rdquo; atau \u0026ldquo;Issued to\u0026rdquo; pada sertifikat TLS, sedangkan domain kedua dan seterusnya atau selain itu hanya dimasukkan ke dalam SAN (Subject Alternative Name) saja.\nSelain itu, nama direktori untuk sertifikat TLS-nya sendiri akan ditentukan berdasarkan domain pertama yang Anda masukkan.\nContohnya seperti cuplikan berikut di Windows pada Chromium/Google Chrome sebelum versi 105:\nAtau, di bawah ini untuk peramban web berbasis Chromium/Google Chrome di platform selain Windows atau versi 105 dan setelahnya:\nJika Anda lihat cuplikan di atas, \u0026ldquo;Common Name\u0026rdquo; yang tampil adalah farrel.franqois.id bukan *.farrel.franqois.id, padahal sertifikat yang saya terbitkan itu adalah sertifikat TLS Wildcard, dan *.farrel.franqois.id malah cuma dimasukkan ke dalam SAN (Subject Alternative Name) saja bersamaan dengan Domain Utamanya.\nKenapa bisa begitu? Sederhananya karena Domain Pertama yang saya masukkan ketika menerbitkan sebuah sertifikat TLS adalah farrel.franqois.id, bukan *.farrel.franqois.id. Nah, sekarang sudah paham, kan?\nParameter --issue berfungsi agar acme.sh menerbitkan sertifikat TLS Anda. Parameter selain --issue adalah sebagai berikut:\n--renew untuk memperbarui sertifikat TLS yang ada --revoke untuk mencabut salah satu sertifikat TLS yang ada di dalam perangkat Anda --remove untuk menghapus salah satu sertifikat TLS dari perangkat Anda --renew-all untuk memperbarui semua sertifikat TLS yang ada (Catatan: Anda tidak perlu menambahkan parameter -d jika menggunakan parameter ini) Dan lain-lainnya Metode Verifikasi (METODE_VERIFIKASI) Anda harus menggantikan METODE_VERIFIKASI di atas dengan parameter/argumen mengenai metode verifikasi yang ada, menjadi parameter berikut: (Setidaknya gunakan salah satu parameter)\n--webroot lokasi_webroot atau -w lokasi_webroot jika Anda ingin menggunakan metode Webroot.\nGanti lokasi_webroot dengan lokasi Web Anda, seperti /var/www/html, /home/username/public_html, atau apa aja yang penting itu menandakan lokasi Web Anda.\n--dns nama_dns jika Anda ingin menggunakan metode DNS.\nGanti nama_dns dengan yang ada di halaman dokumentasinya dan sesuaikan dengan Penyedia DNS yang Anda gunakan. (Saya bahas ini di bagian terpisah)\n--apache jika Anda ingin menggunakan Web Server Apache2 sebagai verifikasinya.\n--nginx (lokasi_conf) jika Anda ingin meggunakan Web Server NGINX sebagai verifikasinya.\nAnda bisa ganti (lokasi_conf) dengan lokasi berkas konfigurasi untuk NGINX Anda jika diinginkan barangkali acme.sh tidak dapat mendeteksi berkas konfigurasi NGINX secara otomatis, kalau acme.sh dapat mengenalinya maka cukup tulis --nginx saja.\n--standalone jika Anda tidak mempunyai aplikasi web server atau sedang tidak berada di dalam server web (cth. Sedang berada di dalam Server FTP atau SMTP).\nDengan adanya verifikasi seperti ini, artinya Anda tidak bisa sembarangan membuat sertifikat TLS untuk domain lain, berhasil atau gagal akan menambahkan rate limit jika Anda menggunakan CA seperti Let\u0026rsquo;s Encrypt dan Buypass.\nJadi, berhati-hatilah ketika Anda ingin menerbitkan sertifikat TLS dengan menggunakan protokol ACME, terutama jika Anda menggunakan CA selain ZeroSSL.\nParameter Tambahan (PARAMETER_TAMBAHAN) Anda bisa menggantikan PARAMETER_TAMBAHAN dengan parameter lain yang ingin Anda tambahkan saat menerbitkan sertifikat TLS, parameter lainnya sebagai berikut:\n--force jika Anda ingin melakukannya dengan cara paksa. Ini cocok bagi Anda yang ingin menerbitkan ulang sertifikat, memperbarui masa berlaku sertifikat meski belum mau habis/belum waktunya, dll\n--test atau --staging jika Anda ingin menjalankannya dalam mode pengujian. Ini cocok bagi Anda yang sedang belajar menggunakan acme.sh atau menguji penerbitan sertifikat TLS dengan metode verifikasi yang berbeda tanpa mempengaruhi Rate Limit aslinya.\nJadi, saya sarankan agar Anda selalu memakai parameter ini jika Anda sedang mempelajari penggunaan acme.sh atau memastikan apakah sertifikat TLS bisa diterbitkan dengan benar atau tidaknya tanpa mempengaruhi Rate Limit dari suatu CA.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging\n--server opsi_ca jika Anda ingin menerbitkan sertifikat TLS oleh CA lain, yang secara baku diterbitkan oleh ZeroSSL sebagai CA.\nGanti opsi_ca menjadi nama pendek dari CA yang mendukung, seperti: zerossl, buypass, buypass_test, letsencrypt, letsencrypt_test, sslcom, google, googletest.\nAtau, Anda juga bisa ganti opsi_ca dengan memasukkan Alamat URL Server ACME dari Penyedia CA Anda. Untuk lebih lengkapnya, silakan pelajari itu dari Halaman Wiki-nya\n--keylength opsi atau -k opsi jika Anda ingin menerbitkan sertifikat TLS dengan ukuran kunci atau kunci yang berbeda. Ganti opsi dengan 2048, 3072, 4096, 8192, ec-256, ec-384, atau ec-512 (Saya bahas di bagian terpisah)\n--cert-file file untuk menyalinkan berkas sertifikat ke dalam direktori lain setelah menerbitkan/memperbarui sertifikat TLS-nya. Ganti file menjadi lokasi atau/dan nama berkas yang Anda inginkan\n--key-file file untuk menyalinkan berkas Kunci ke dalam direktori lain setelah menerbitkan/memperbarui sertifikat TLS-nya. Ganti file menjadi lokasi atau/dan nama berkas yang Anda inginkan\n--ca-file file untuk menyalinkan berkas sertifikat CA/Penengah ke dalam direktori lain setelah menerbitkan/memperbarui sertifikat TLS-nya. Ganti file menjadi lokasi atau/dan nama berkas yang Anda inginkan\n--fullchain-file file untuk menyalinkan berkas sertifikat Fullchain ke dalam direktori lain setelah menerbitkan/memperbarui sertifikat TLS-nya. Ganti file menjadi lokasi atau/dan nama berkas yang Anda inginkan.\n--reloadcmd perintah untuk mengeksekusikan perintah reload server setelah menerbitkan/memperbarui sertifikat TLS-nya. Ganti perintah menjadi perintahnya.\nJika Anda tidak mempunyai web server di dalam perangkat kamu, dan ingin memasangkannya ke luar perangkat kamu, maka saya sarankan agar memakai parameter --renew-hook saja\n--renew-hook perintah untuk menentukan perintah yang akan dieksekusi setelah sertifikat berhasil diperbarui (di-renew). Ganti perintah menjadi perintah yang ingin Anda eksekusikan.\nKarena acme.sh tidak akan langsung mengeksekusi perintahnya, melainkan nanti saat diperbarui, maka saya sarankan langsung gunakan parameter ini saat ingin menerbitkan sertifikat dan isikan parameter tersebut dengan menggantikan perintah menjadi perintah untuk memasang sertifikatnya (cth. --renew-hook env sh deploy.sh).\nBerkas deploy.sh adalah berkas skrip untuk memasang sertifikat yang Anda buat nanti, bisa diganti dengan nama berkas yang Anda inginkan.\nJika telanjur, maka Anda perlu mengkonfigurasinya secara manual, dan itu akan saya bahas lebih lanjut di bagian terpisah tentang konfigurasi acme.sh untuk domain\n--pre-hook perintah untuk menentukan perintah yang akan dieksekusi sebelum perkakas acme.sh menjalankan tugasnya. Ganti perintah menjadi perintah yang ingin Anda eksekusikan.\nBedanya dengan --renew-hook adalah bahwa perintah tersebut langsung dieksekusi sebelum acme.sh menjalankan tugasnya\n--post-hook perintah untuk menentukan perintah yang akan dieksekusi sebelum perkakas acme.sh menjalankan tugasnya. Ganti perintah menjadi perintah yang ingin Anda eksekusikan.\nBedanya dengan --pre-hook adalah bahwa perintah tersebut langsung dieksekusi setelah acme.sh menjalankan tugasnya, tidak peduli apakah tugas sebelumnya berhasil atau gagal\n--always-force-new-domain-key untuk membuat kunci pribadi (Private Key) baru setiap kali pembaruan sertifikat, parameter ini hanya bisa digunakan saat ingin menerbitkan sertifikat saja. Perkakas acme.sh secara baku tidak membuat kunci pribadi baru setiap kali pembaruan sertifikat, makanya ada parameter ini\n--dnssleep 300 agar acme.sh menunggu beberapa detik setelah DNS record berhasil ditambahkan/diubah dan sebelum verifikasi oleh CA agar DNS terpropagasi. Tujuannya agar proses verifikasi dari CA berjalan dengan lancar. Ganti 300 menjadi durasi berapa detik yang diperlukan untuk menunggu\n--ecc agar perintah tersebut ditujukan untuk sertifikat TLS yang telah diterbitkan menggunakan ECC/ECDSA sebagai algoritma kunci publiknya.\nTanpa parameter ini, maka perintah tersebut akan dieksekusi untuk sertifikat TLS yang menggunakan RSA sebagai algoritma kuncinya. Parameter ini hanya bisa digunakan jika ada parameter --renew, --revoke, --remove, --install-cert, --to-pkcs12 dan --create-csr saja.\nContoh penggunaannya di bawah ini:\nacme.sh --remove -d www.domain.com --ecc untuk menghapus salah satu sertifikat TLS yang menggunakan ECC sebagai algoritma kuncinya dari perangkat Anda\nacme.sh --revoke -d www.domain.com --ecc untuk mencabut salah satu sertifikat TLS yang menggunakan ECC sebagai algoritma kuncinya dari perangkat Anda\nDan masih banyak lagi!\nJadi, Anda tidak bisa menggunakan parameter ini untuk menerbitkan sertifikat TLS, atau bisa dibilang bahwa Anda hanya bisa memakainya saat sertifikat TLS tersebut telah diterbitkan dengan kunci ECC/ECDSA saja.\nKalau mau menerbitkannya dengan kunci ECC/ECDSA, kamu bisa pelajari penggunaan parameter --keylength saat menerbitkan sertifikatnya (yang akan saya bahas ini di bagian-bagian selanjutnya).\nUdah itu saja yang saya bahas, parameter lainnya masih banyak, tapi yang saya bahas di sini adalah kasus umumnya saja.\nJika Anda ingin mempelajari parameter lainnya lebih lanjut, silakan gunakan perintah acme.sh --help untuk menampilkan parameter apa saja yang bisa Anda gunakan.\nJika Anda tidak ingin menambahkan parameter lain, Anda bisa menghapus PARAMETER_TAMBAHAN-nya.\nSetelah menerbitkan Sertifikat TLS Jika Anda menerbitkan sertifikat TLS memakai acme.sh dan dinyatakan berhasil, maka isi keluarannya kira-kira akan seperti berikut:\n[Kam 12 Agu 2021 02:14:50 WIB] Cert success. -----BEGIN CERTIFICATE----- ISI SERTIFIKAT -----END CERTIFICATE----- [Kam 12 Agu 2021 02:14:50 WIB] Your cert is in: /home/username/.acme.sh/domain.com/domain.com.cer [Kam 12 Agu 2021 02:14:50 WIB] Your cert key is in: /home/username/.acme.sh/domain.com/domain.com.key [Kam 12 Agu 2021 02:14:50 WIB] The intermediate CA cert is in: /home/username/.acme.sh/domain.com/ca.cer [Kam 12 Agu 2021 02:14:50 WIB] And the full chain certs is there: /home/username/.acme.sh/domain.com/fullchain.cer Ini artinya, bahwa sertifikat TLS telah berhasil dibuat/diterbitkan oleh CA dan berkas-berkas yang diperlukan telah tersimpan di dalam direktori /home/username/.acme.sh/domain.com atau di $HOME/.acme.sh/domain.com.\nBerkas-berkas seperti domain.com.cer, domain.com.key dan ca.cer atau fullchain.cer dan domain.com.key akan diperlukan untuk pemasangan sertifikat TLS di Hosting atau CDN, untuk lebih lanjut akan saya bahas di bagian terpisah.\nNamun, nama direktori untuk menyimpan dan bahkan nama dari berkas-berkas tersebut biasanya bergantung pada domain pertama yang dimasukkan saat ingin menerbitkan sebuah sertifikat TLS.\nSebagai contoh, Anda ingin menerbitkan sertifikat TLS dengan perintah berikut:\nacme.sh --issue -d www.domain.com -d domain.com -w $HOME/public_html Karena domain pertama yang dimasukkan adalah www.domain.com, bukan domain.com sesuai perintah di atas, maka berkas-berkas yang diperlukan akan tersimpan di dalam direktori /home/username/.acme.sh/www.domain.com, bukan di dalam direktori /home/username/.acme.sh/domain.com.\nNah, sekarang sudah paham, kan? Kalau sudah paham, tinggal pelajari verifikasi menggunakan DNS dan tentukan cara menerbitkan sertifikat TLS-nya dengan sesuka kamu.\nMenerbitkan Sertifikat TLS dengan menggunakan DNS sebagai Metode Verifikasi (Wajib dipelajari) Jika Anda ingin menerbitkan sertifikat TLS yang menggunakan DNS sebagai metode verifikasinya, maka tinggal tambahkan saja parameter --dns nama_dns.\nContoh di bawah ini adalah perintah untuk menerbitkan sertifikat TLS untuk 1 Domain dan 1 Subdomain dengan menggunakan DNS dari Cloudflare sebagai metode verifikasi:\nacme.sh --issue -d www.domain.com -d domain.com --dns dns_cf Perhatian ! Jika Anda sedang mempelajari penggunaan perkakas acme.sh, maka saya sarankan agar Anda selalu tambahkan parameter --test atau --staging untuk menjalankan perkakas acme.sh dalam mode pengujian, ini cocok untuk Anda yang sedang belajar.\nKalau ingin memperbarui sertifikatnya, pastikan Anda menambahkan parameter --force --server letsencrypt_test, karena sekarang acme.sh akan secara otomatis membalikkan opsi CA-nya ke Let\u0026rsquo;s Encrypt versi produksi yang mana itu bukan lagi termasuk tahap uji coba.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging.\nJika Anda menggunakan penyedia DNS selain Cloudflare, ganti saja dns_cf-nya menjadi yang ada di dalam dokumentasinya.\nMisalnya: Anda ingin menerbitkan sebuah sertifikat TLS untuk www.domain.com dan ingin menggunakan Netlify DNS sebagai metode verifikasinya, maka tinggal Anda tambahkan saja parameter --dns dns_netlify. Jadinya seperti berikut:\nacme.sh --issue -d www.domain.com -d domain.com --dns dns_netlify Agar verifikasinya semakin lancar, maka Anda perlu menunggu selama beberapa menit agar DNS terpropagasi dengan sempurna setelah catatan DNS berubah atau ditambahkan dan sebelum verifikasi oleh CA. Bagaimana caranya? Caranya dengan menambahkan parameter --dnssleep durasi.\nGanti durasi di atas dengan durasi berapa detik yang diperlukan untuk menunggu. Misalnya kamu ingin menerbitkan sebuah sertifikat TLS dan menggunakan Netlify DNS sebagai metode verifikasinya, hanya saja kamu ingin menunggu selama 5 menit (300 detik) agar DNS terpropagasi dengan sempurna, maka perintahnya menjadi seperti berikut:\nacme.sh --issue -d www.domain.com -d domain.com --dns dns_netlify --dnssleep 300 Dengan begini, verifikasi dari CA akan berjalan dengan lancar dan sertifikat bisa diterbitkan.\nSebelum menggunakan DNS sebagai metode verifikasinya, saya sarankan agar Anda membaca dan pahami terlebih dahulu bagaimana cara menambahkan kredensial untuk akses API-nya, silakan klik di sini.\nMenerbitkan Sertifikat TLS untuk Banyak Domain dan Subdomain Untuk menerbitkan sertifikat TLS yang menargetkan banyak domain dan subdomain, sebenarnya tinggal Anda masukkan parameter -d untuk setiap domainnya. Contohnya seperti berikut:\nUntuk 2 Domain dan 4 Subdomain:\nacme.sh --issue -d domain1.com -d www.domain1.com -d sub.domain1.com -d domain2.com -d www.domain2.com -d sub.domain2.com Perhatian ! Jika Anda sedang mempelajari penggunaan perkakas acme.sh, maka saya sarankan agar Anda selalu tambahkan parameter --test atau --staging untuk menjalankan perkakas acme.sh dalam mode pengujian, ini cocok untuk Anda yang sedang belajar.\nKalau ingin memperbarui sertifikatnya, pastikan Anda menambahkan parameter --force --server letsencrypt_test, karena sekarang acme.sh akan secara otomatis membalikkan opsi CA-nya ke Let\u0026rsquo;s Encrypt versi produksi yang mana itu bukan lagi termasuk tahap uji coba.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging.\nUntuk 4 Domain saja:\nacme.sh --issue -d domain1.com -d domain2.com -d domain3.com -d domain4.com Atau, jika Anda ingin menggunakan metode verifikasi yang berbeda-beda untuk setiap domain, maka Anda bisa meraciknya dengan contoh seperti berikut:\n1 2 3 4 5 6 acme.sh --issue \\ -d www.domain1.com -d domain1.com --dns dns_cf \\ -d www.domain2.com -d domain2.com --dns dns_netlify \\ -d www.domain3.com -d domain3.com -w /home/username/public_html \\ -d www.domain4.com -d domain4.com --apache \\ -d www.domain5.com -d domain5.com --nginx Dan seterusnya akan seperti itu caranya.\nMenerbitkan Sertifikat TLS yang menjangkau Seluruh Subdomain Jika Anda ingin menerbitkan sertifikat TLS yang menjangkau seluruh subdomain atau dalam bentuk Wildcard, maka tambahkan parameter -d '*.domain.com' saja, tapi Anda juga harus menambahkan parameter --dns nama_dns, karena dibutuhkan verifikasi melalui Metode DNS sebagai syarat wajib agar bisa menerbitkannya dalam bentuk Wildcard.\nContoh di bawah ini adalah perintah untuk menerbitkan sertifikat TLS untuk 1 domain dan semua subdomainnya dengan menggunakan DNS dari Cloudflare sebagai verifikasi:\nacme.sh --issue -d \u0026#39;*.domain.com\u0026#39; -d domain.com --dns dns_cf Perhatian ! Jika Anda sedang mempelajari penggunaan perkakas acme.sh, maka saya sarankan agar Anda selalu tambahkan parameter --test atau --staging untuk menjalankan perkakas acme.sh dalam mode pengujian, ini cocok untuk Anda yang sedang belajar.\nKalau ingin memperbarui sertifikatnya, pastikan Anda menambahkan parameter --force --server letsencrypt_test, karena sekarang acme.sh akan secara otomatis membalikkan opsi CA-nya ke Let\u0026rsquo;s Encrypt versi produksi yang mana itu bukan lagi termasuk tahap uji coba.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging.\nSertifikat yang diterbitkan dengan perintah di atas adalah untuk *.domain.com dan domain.com dengan menggunakan DNS dari Cloudflare sebagai verifikasi.\nJika Anda bukan pengguna Cloudflare, maka tinggal Anda ganti saja dns_cf-nya.\nKenapa Wildcard-nya dikutip? Karena terkadang shell lain memperlakukan tanda bintang dengan berbeda jika tidak dikutip, seperti Zsh (Z shell) misalnya.\nKenapa Wildcard-nya diletakkan di awal? Agar Domain Wildcard-nya tampil sebagai \u0026ldquo;Common Name\u0026rdquo;/\u0026ldquo;Subject\u0026rdquo;/\u0026ldquo;Issued to\u0026rdquo; pada sertifikat TLS.\nKenapa seperti itu? Karena sertifikat TLS Wildcard yang saya lihat menampilkan domain Wildcard sebagai \u0026ldquo;Issued to\u0026rdquo;/\u0026ldquo;Common Name\u0026rdquo;-nya. Sebenarnya terserah kamu saja sih maunya kayak gimana, toh di atas cuma contoh aja.\nApa itu \u0026ldquo;Issued to\u0026rdquo;/\u0026ldquo;Common Name\u0026rdquo;? Itu sudah saya jelaskan di bagian awal.\nApakah itu menjangkau Sub-subdomain seperti sub.sub.domain.com? Tentu saja tidak, karena sertifikat TLS tersebut cuma diterbitkan untuk *.domain.com dan domain.com, yang mana cuma menjangkau sub1.domain.com, sub2.domain.com, dst, bukan sub.sub.domain.com.\nKalau mau seperti itu, tambahkan saja subdomain Anda dalam bentuk Wildcard-nya, jadi parameter yang Anda tambahkan adalah -d '*.sub.domain.com' -d sub.domain.com atau -d *.sub.domain.com saja.\nContohnya menjadi seperti berikut:\nacme.sh --issue -d \u0026#39;*.domain.com\u0026#39; -d \u0026#39;*.sub.domain.com\u0026#39; -d domain.com --dns dns_cf Nah, sekarang paham, kan?\nMenerbitkan Sertifikat TLS dengan menggunakan Mode Alias DNS Jika penyedia DNS Anda tidak mendukung akses API/tidak didukung oleh acme.sh, atau khawatir tentang masalah keamanan karena memberikan akses API DNS ke domain utama Anda, maka Anda dapat menggunakan mode alias DNS (DNS Alias Mode).\nSebagai contoh, domain utamanya adalah domain.com yang mana DNS yang digunakan oleh domain tersebut tidak memiliki akses API ataupun didukung oleh acme.sh atau Anda tidak mau memberikan akses API-nya karena domain tersebut penting bagi Anda.\nSelain domain utama, kamu mempunyai domain satunya lagi, yakni domain-lain.com, yang mana DNS yang dipakai mendukung akses API dan yang paling pentingnya adalah bahwa domain tersebut tidak terlalu penting bagi Anda, sehingga Anda bisa meminimalkan risiko keamanan yang terjadi pada domain utama Anda.\n1. Membuat Catatan DNS-nya Pertama-tama, Anda perlu membuat catatan DNS berjenis CNAME terlebih dahulu yang diarahkan ke domain alias (cth. domain-lain.com).\nTips: Jika Anda ingin menggunakan Mode Alias DNS, tapi belum mempunyai domainnya, Anda bisa membeli atau menyewa domain dengan ekstensi .my.id yang biayanya mulai dari Rp9.000,00 sampai Rp50.000,00*, baik untuk tahun pertama atau per tahunnya.\nAnda bisa menyewa domainnya di Dewaweb dengan harga Rp13.320,00** untuk tahun pertama, selanjutnya akan dikenai Rp27.750,00/tahun** untuk perpanjangan, atau di Exabytes dengan harga Rp9.990,00** untuk tahun pertama, selanjutnya akan dikenai Rp33.300,00/tahun** untuk perpanjangan.\nSetelah menyewa domainnya, saya sarankan agar memakai Cloudflare sebagai Penyedia DNS untuk domain Anda, karena selain gratis, dukungan akses API dan perangkat lunaknya juga sangat luas.\n*Biaya tersebut bisa saja berbeda-beda, tergantung penyedia domainnya dan itu belum termasuk PPN 11%\n**Biaya sewa domain dari penyedia yang disebutkan sudah termasuk PPN 11%\nCatatan: Semua biaya di atas hanyalah perkiraan saja, sehingga belum termasuk biaya-biaya lain yang bisa saja dikenakan seperti biaya add-on proteksi WHOIS, Hosting, Surel dan lainnya.\nMisalnya jika Anda ingin menerbitkan sertifikat TLS yang menjangkau *.domain.com dan domain.com, maka Anda hanya perlu membuat catatan DNS berjenis CNAME dengan nama _acme-challenge.contoh.com dari domain utama Anda kemudian arahkan catatan tersebut ke _acme-challenge.domain-lain.com.\nJika belum jelas, Anda bisa melihat informasi berikut:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com Atau, di bawah ini jika Anda ingin melihatnya dalam format standar berkas zona DNS (DNS Zone File) (cth. ISC BIND atau NSD):\n_acme-challenge.domain.com IN CNAME _acme-challenge.domain-lain.com. Catatan: Jika Anda sedang menggunakan Cloudflare dan Anda sedang membuat catatan CNAME-nya di sana, pastikan bahwa Proxy Status-nya adalah DNS Only dan warna awannya menjadi abu-abu, serta JANGAN PERNAH DIUBAH MENJADI AWAN ORANYE, INI AKAN MENYEBABKAN CA TIDAK BISA MEMBACA CATATANNYA DENGAN BAIK UNTUK VERIFIKASI.\nJika Anda ingin menerbitkan sertifikat TLS hanya untuk domain utama dan beberapa subdomain tertentu saja, seperti domain.com, www.domain.com, sub.domain.com, sub2.domain.com, dsb, maka catatan dengan informasi di atas seharusnya sudah cukup.\nNamun, jika Anda ingin menerbitkan sertifikat TLS yang tidak hanya pada domain utamanya saja dalam bentuk Wildcard, melainkan subdomainnya yang dalam bentuk Wildcard juga, yakni *.sub.domain.com, *.domain.com dan domain.com, maka Anda perlu membuat catatan DNS untuk subdomainnya juga, contohnya seperti di bawah ini:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com _acme-challenge.sub.domain.com =\u0026gt; _acme-challenge.domain-lain.com Atau, di bawah ini jika Anda ingin melihatnya dalam format standar berkas zona DNS (DNS Zone File) (cth. ISC BIND atau NSD):\n_acme-challenge.domain.com IN CNAME _acme-challenge.domain-domain-alias.com. _acme-challenge.sub.domain.com IN CNAME _acme-challenge.domain-domain-alias.com. Setelah membuat catatan DNS-nya, Anda perlu menyiapkan kode akses API ke pengaturan catatan DNS untuk domain alias Anda.\nYap, Anda tidak salah baca, untuk domain alias, karena Anda memakai DNS alias mode, maka catatan DNS yang akan dibuat oleh acme.sh secara otomatis adalah untuk domain alias, bukan domain utama Anda.\nSetelah semua telah dipersiapkan, Anda dapat lanjut menerbitkan sertifikatnya.\n2. Menerbitkan Sertifikat TLS Perhatian ! Sebelum menerbitkan sertifikat TLS menggunakan Mode Alias DNS, agar DNS terpropagasi dengan sempurna dan verifikasi berjalan dengan lancar tanpa kendala, maka saya sangat menyarankan Anda untuk menambahkan parameter --dnssleep durasi agar acme.sh menunggu propagasi DNS terlebih dahulu sebelum verifikasi.\nGanti durasi dengan durasi berapa detik untuk menunggu. 200 detik itu adalah paling minimal, disarankan 300 detik, jika masih terkendala maka kamu perlu naikkan ke 600, 900 detik, dst, sampai sekiranya DNS benar-benar terpropagasi dengan sempurna.\nUntuk menerbitkan sertifikat TLS-nya, Anda dapat memakai perintah biasanya yang tentunya memakai DNS sebagai metode verifikasinya, tapi Anda perlu menambahkan parameter --challenge-alias \u0026lt;nama_domain_alias\u0026gt;. Ganti \u0026lt;nama_domain_alias\u0026gt; dengan domain alias Anda, contoh kali ini adalah domain-lain.com.\nContoh perintahnya ada di bawah ini:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; \\ -d domain.com \\ --challenge-alias domain-lain.com --dns dns_cf Perintah di atas akan menerbitkan sertifikat TLS yang menjangkau domain *.domain.com dan domain.com dengan menggunakan DNS alias mode dan diverifikasi menggunakan Cloudflare sebagai penyedia DNS.\nSetelah menjalankan perintah di atas, maka secara otomatis perkakas acme.sh akan membuatkan catatan DNS berjenis TXT untuk domain domain-lain.com dengan nama _acme-challenge.\nNanti server milik CA akan secara otomatis memeriksa salah satu catatan TXT dari _acme-challenge.domain.com, akan tapi karena subdomain tersebut Anda buatkan catatan CNAME-nya dan diarahkan ke _acme-challenge.domain-lain.com seperti yang telah kamu kerjakan di langkah pertama, maka CA akan dapat menemukan catatan TXT yang dicari dan kemudian memverifikasinya.\nSetelah menerbitkannya, tolong jangan hapus catatan _acme-challenge dari domain utama Anda, karena itu akan dipakai lagi untuk memperbarui sertifikat TLS nantinya.\n3. Berbagi domain alias yang sama Anda juga dapat memakai domain alias yang sama, meski domain utamanya berbeda-beda, Anda tinggal buat saja catatan DNS berjenis CNAME dan arahkan itu ke domain alias Anda.\nDi bawah ini adalah contohnya:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com _acme-challenge.domain.id =\u0026gt; _acme-challenge.domain-lain.com _acme-challenge.domain.net =\u0026gt; _acme-challenge.domain-lain.com _acme-challenge.domain.org =\u0026gt; _acme-challenge.domain-lain.com Maka untuk menerbitkannya, Anda bisa pelajari contoh perintah berikut:\nacme.sh --issue \\ -d domain.com \\ -d www.domain.com \\ -d sub.domain.com \\ -d domain.id \\ -d domain.net \\ -d domain.org \\ --challenge-alias domain-lain.com --dns dns_cf Atau, perintah di bawah ini jika Anda ingin menerbitkannya dalam bentuk Wildcard:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; \\ -d \u0026#39;*.domain.id\u0026#39; \\ -d \u0026#39;*.domain.net\u0026#39; \\ -d \u0026#39;*.domain.org\u0026#39; \\ -d domain.com \\ -d domain.id \\ -d domain.net \\ -d domain.org \\ --challenge-alias domain-lain.com --dns dns_cf 4. (Sub)Domain alias yang berbeda untuk tiap domain Di acme.sh, Anda bisa menggunakan domain/subdomain alias yang berbeda-beda, bahkan penyedia DNS yang berbeda pula untuk menerbitkan sebuah sertifikat.\nAnda bisa menyetel catatan CNAME-nya dengan contoh berikut:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com _acme-challenge.domain.id =\u0026gt; _acme-challenge.domain-lain-2.com Lalu, terbitkan sertifikatnya dengan mempelajari perintah berikut:\nacme.sh --issue \\ -d domain.com --challenge-alias domain-lain.com \\ -d domain.id --challenge-alias domain-lain-2.com \\ --dns dns_cf Bahkan Anda juga bisa menggunakan penyedia DNS yang berbeda juga, berikut adalah contohnya:\nacme.sh --issue \\ -d domain.com --challenge-alias domain-lain.com --dns dns_cf \\ -d domain.id --challenge-alias domain-lain-2.com --dns dns_netlify Contoh di atas diasumsikan bahwa domain domain-lain.com menggunakan Cloudflare sebagai Penyedia DNS, sedangkan domain domain-lain-2.com menggunakan Netlify sebagai Penyedia DNS.\nBagaimana jika dalam bentuk Wildcard? Tetap saja Anda harus menambahkan --challenge-alias-nya juga satu per satu, contohnya berikut di bawah ini:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; --challenge-alias domain-lain.com \\ -d \u0026#39;*.domain.id\u0026#39; --challenge-alias domain-lain-2.com \\ -d domain.com --challenge-alias domain-lain.com \\ -d domain.id --challenge-alias domain-lain-2.com \\ --dns dns_cf Atau, di bawah ini jika Anda menggunakan Penyedia DNS yang berbeda-beda:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; --challenge-alias domain-lain.com --dns dns_cf \\ -d \u0026#39;*.domain.id\u0026#39; --challenge-alias domain-lain-2.com --dns dns_netlify \\ -d domain.com --challenge-alias domain-lain.com --dns dns_cf \\ -d domain.id --challenge-alias domain-lain-2.com --dns dns_netlify Kira-kira begitu.\n5. Mencampuri antara Mode Alias DNS dan Mode DNS Biasa Di acme.sh, Anda bisa mencampuri Mode Alias DNS dan Mode Autentikasi DNS Biasa, yang artinya Anda bisa tidak menggunakan Mode Alias DNS untuk domain tertentu.\nPakai parameter --challenge-alias no untuk menandai domain agar tidak memakai Mode Alias DNS, sehingga akan menggunakan Mode DNS Biasa.\nContoh kali ini adalah domain.com yang menggunakan Mode Alias DNS, sedangkan domain.id tidak, maka domain.com perlu ditambahkan catatan CNAME-nya yang diarahkan ke domain alias-nya, seperti berikut:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com Lalu, terbitkan sertifikatnya dengan mempelajari perintah berikut:\nacme.sh --issue \\ -d domain.com --challenge-alias domain-lain.com \\ -d domain.id --challenge-alias no \\ --dns dns_cf Contoh di atas diasumsikan bahwa Anda memakai Cloudflare sebagai Penyedia DNS. Kalau Anda memakai penyedia DNS yang berbeda, maka Anda dapat mempelajari contoh perintah berikut:\nacme.sh --issue \\ -d domain.com --challenge-alias domain-lain.com --dns dns_cf \\ -d domain.id --challenge-alias no --dns dns_netlify Contoh di atas diasumsikan bahwa domain-lain.com menggunakan Cloudflare sebagai Penyedia DNS, sedangkan domain.id menggunakan Netlify sebagai Penyedia DNS-nya.\nBagaimana jika dalam bentuk Wildcard? Ya tetap saja harus ditambahkan satu per satu parameter --challenge-alias-nya, contohnya seperti berikut:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; --challenge-alias domain-lain.com \\ -d \u0026#39;*.domain.id\u0026#39; --challenge-alias no \\ -d domain.com --challenge-alias domain-lain.com \\ -d domain.id --challenge-alias no \\ --dns dns_cf Atau, berikut di bawah ini jika Anda ingin memakai penyedia DNS yang berbeda-beda:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; --challenge-alias domain-lain.com --dns dns_cf \\ -d \u0026#39;*.domain.id\u0026#39; --challenge-alias no --dns dns_netlify \\ -d domain.com --challenge-alias domain-lain.com --dns dns_cf \\ -d domain.id --challenge-alias no --dns dns_netlfy Contoh di atas diasumsikan bahwa domain-lain.com menggunakan Cloudflare sebagai Penyedia DNS, sedangkan domain.id menggunakan Netlify sebagai Penyedia DNS-nya.\nKira-kira begitu.\n6. Pakai --challenge-alias atau --domain-alias Perkakas acme.sh mempunyai parameter selain --challenge-alias, yakni --domain-alias yang secara fungsi memang hampir sama.\nNamun, dengan --domain-alias Anda tidak perlu menambahkan catatan CNAME dengan berawalan _acme-challenge. Sebagai contoh, ketika Anda memakai parameter --challenge-alias, maka Anda harus menambahkan catatan CNAME berikut:\n_acme-challenge.domain.com =\u0026gt; _acme-challenge.domain-lain.com Lalu, perintah untuk menerbitkan sertifikatnya akan seperti berikut:\nacme.sh --issue \\ -d domain.com \\ --challenge-alias domain-lain.com --dns dns_cf Hal di atas berlaku jika Anda menerbitkannya dengan parameter --challenge-alias. Namun, ketika Anda menggunakan --domain-alias, maka catatan CNAME yang perlu ditambahkan contohnya sebagai berikut:\n_acme-challenge.domain.com =\u0026gt; alias.domain-lain.com Lalu, perintah untuk menerbitkan sertifikatnya akan seperti berikut:\nacme.sh --issue -d domain.com --domain-alias alias.domain-lain.com --dns dns_cf Catatan: Jangan gunakan nama domainnya saja untuk --domain-alias\nIni akan meminta perkakas untuk membuatkan catatan TXT di dalam puncak domain Anda (apex domain). Karena menambahkan sebuah catatan dan nilainya di puncak domain itu memerlukan sintaks yang berbeda, maka hal ini tidak bisa dilakukan dalam bentuk di atas.\nJika Anda benar-benar ingin membuat catatan tersebut di puncak domain, Anda dapat gunakan perintah berikut: (Namun hal ini akan bergantung pada implementasi dukungan DNS API pada acme.sh dan juga penyedia DNS-nya)\nacme.sh --issue -d domain.com --domain-alias @.domain-lain.com --dns dns_cf Atau:\nacme.sh --issue -d domain.com --domain-alias .domain-lain.com --dns dns_cf Bisakah menggunakan domain atau subdomain yang berbeda? Tentu saja bisa, hanya saja nantinya Anda perlu memasukkan satu per satu parameternya saat menerbitkan sertifikat, seperti pada --challenge-alias.\nSebagai contohnya Anda ingin domain.com menggunakan alias1.domain-lain.com sebagai alias, sedangkan domain.id menggunakan alias2.domain-lain.com, maka Anda perlu menambahkan catatan CNAME seperti berikut:\n_acme-challenge.domain.com =\u0026gt; alias1.domain-lain.com _acme-challenge.domain.id =\u0026gt; alias2.domain-lain.com Lalu, perintah untuk menerbitkan sertifikatnya akan seperti berikut:\nacme.sh --issue \\ -d domain.com --domain-alias alias1.domain-lain.com \\ -d domain.id --domain-alias alias2.domain-lain.com \\ --dns dns_cf Atau berikut di bawah ini jika Anda ingin menerbitkannya dalam bentuk Wildcard:\nacme.sh --issue \\ -d \u0026#39;*.domain.com\u0026#39; --domain-alias alias1.domain-lain.com \\ -d \u0026#39;*.domain.id\u0026#39; --domain-alias alias2.domain-lain.com \\ -d domain.com --domain-alias alias1.domain-lain.com \\ -d domain.id --domain-alias alias2.domain-lain.com \\ --dns dns_cf Kira-kira begitu.\n7. Terakhir Kalau sudah selesai menerbitkannya, tolong catatan CNAME yang telah Anda buat tadi jangan dihapus, karena catatan tersebut akan dipakai saat memperbarui sertifikat nanti untuk melakukan verifikasi ulang.\nMenerbitkan Sertifikat TLS dengan ukuran kunci yang berbeda Secara baku, perkakas acme.sh akan menerbitkan sertifikat TLS dengan kunci ECDSA yang berukuran 256 bit (ECDSA P-256).\nJika Anda ingin menerbitkan sertifikat TLS dengan kunci RSA serta ukuran kunci yang berbeda, tambahkan saja parameter --keylength ukuran_kunci_rsa atau -k ukuran_kunci_rsa. Ganti ukuran_kunci_rsa dengan Ukuran kunci RSA yang didukung.\nContoh perintah di bawah ini jika Anda ingin menerbitkannya dengan kunci RSA yang berukuran 3072 bit (RSA-3072):\nacme.sh --issue -d domain.com -d www.domain.com -k 3072 Perhatian ! Jika Anda sedang mempelajari penggunaan perkakas acme.sh, maka saya sarankan agar Anda selalu tambahkan parameter --test atau --staging untuk menjalankan perkakas acme.sh dalam mode pengujian, ini cocok untuk Anda yang sedang belajar.\nKalau ingin memperbarui sertifikatnya, pastikan Anda menambahkan parameter --force --server letsencrypt_test, karena sekarang acme.sh akan secara otomatis membalikkan opsi CA-nya ke Let\u0026rsquo;s Encrypt versi produksi yang mana itu bukan lagi termasuk tahap uji coba.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging.\nAtau, berikut di bawah ini jika Anda ingin menerbitnya dalam bentuk Wildcard:\nacme.sh --issue -d \u0026#39;*.domain.com\u0026#39; -d domain.com -k 3072 --dns dns_cf Jika Anda ingin menerbitkannya dengan ukuran kunci sebesar 4096 bit, maka tinggal Anda ganti saja parameternya menjadi --keylength 4096 atau -k 4096. Intinya, perhatikan saja nilai parameternya.\nUkuran Kunci RSA yang didukung oleh acme.sh beserta nilai parameter keylength-nya adalah:\nRSA-2048 (2048) RSA-3072 (3072) RSA-4096 (4096) RSA-8192 (8192) Catatan: Didukung oleh perkakas acme.sh, bukan berarti didukung oleh CA yang digunakan, salah satunya adalah Let\u0026rsquo;s Encrypt yang tidak mendukung penggunaan kunci RSA dengan ukuran di atas 4096 bit.\nPERINGATAN ! Saya tidak menyarankan Anda untuk menerbitkan serta menggunakan ukuran kunci yang terlalu besar.\nKarena selain menghasilkan kunci dengan ukuran yang besar, terkadang proses pemuatan konten pada perangkat lunak (termasuk peramban web) akan memakan waktu saat sedang proses \u0026lsquo;jabat tangan\u0026rsquo; TLS (TLS handshake), yang berakibat pada membengkaknya penggunaan CPU atau prosesor pada perangkat tertentu untuk mengenkripsi transaksi data saat proses \u0026lsquo;jabat tangan\u0026rsquo;.\nJika Anda merupakan pemilik situs web atau blog, maka kemungkinan hal ini akan mempengaruhi performa situs web secara keseluruhan dan ini mungkin akan berpotensi mengurangi pengunjung pada situs web Anda.\nSaya sarankan agar Anda gunakan ukuran kunci yang ideal. Ukuran kunci yang ideal untuk kebanyakan kasus adalah 2048 bit, 3072 bit, atau yang paling besar adalah 4096 bit, tidak perlu terlalu besar.\nMenerbitkan Sertifikat TLS dengan kunci ECC/ECDSA Secara baku, acme.sh akan menerbitkan sertifikat TLS menggunakan ECDSA sebagai algoritma kunci publiknya yang berukuran 256 bit (ECDSA P-256).\nJika Anda ingin menerbitkannya menggunakan ukuran kunci yang berbeda, maka Anda hanya perlu tambahkan saja parameter --keylength ec-ukuran_kuncinya atau -k ec-ukuran_kuncinya. Ganti ukuran_kuncinya dengan ukuran kunci ECC yang didukung.\nContoh perintah di bawah ini jika Anda ingin menerbitkan sertifikat TLS ECDSA dengan ukuran 384 bit:\nacme.sh --issue -d domain.com -d www.domain.com -k ec-384 Perhatian ! Jika Anda sedang mempelajari penggunaan perkakas acme.sh, saya sarankan agar Anda selalu tambahkan parameter --test atau --staging untuk menjalankan perkakas acme.sh dalam mode pengujian, ini cocok untuk Anda yang sedang belajar.\nKalau ingin memperbarui sertifikatnya, pastikan Anda menambahkan parameter --force --server letsencrypt_test, karena sekarang acme.sh akan secara otomatis membalikkan opsi CA-nya ke Let\u0026rsquo;s Encrypt versi produksi yang mana itu bukan lagi termasuk tahap uji coba.\nKalau sudah merasa yakin, Anda dapat terbitkan ulang sertifikat TLS-nya untuk produksi dengan menggunakan parameter --issue --force, tanpa parameter --test atau --staging.\nAtau, berikut di bawah ini jika Anda ingin menerbitkannya dalam bentuk Wildcard:\nacme.sh --issue -d \u0026#39;*.domain.com\u0026#39; -d domain.com -k ec-384 --dns dns_cf Jika Anda ingin menerbitkannya dengan kunci ECDSA P-256, tinggal ganti saja menjadi -k ec-256. Intinya, perhatikan saja nilai parameternya.\nUkuran Kunci ECC/ECDSA yang didukung oleh acme.sh beserta nilai dari parameter keylength adalah:\nECDSA P-256 (baku) ECDSA P-384 (ec-384) ECDSA P-512 (ec-512) Catatan: Didukung oleh acme.sh, bukan berarti didukung oleh CA yang digunakan, termasuk Let\u0026rsquo;s Encrypt yang belum mendukung kunci ECDSA dengan ukuran kunci 512 bit.\nPERINGATAN ! Saya tidak menyarankan Anda untuk menerbitkan serta menggunakan ukuran kunci yang terlalu besar.\nKarena selain menghasilkan kunci dengan ukuran yang besar, terkadang proses pemuatan konten pada perangkat lunak (termasuk peramban web) akan memakan waktu saat sedang proses \u0026lsquo;jabat tangan\u0026rsquo; TLS (TLS handshake), yang berakibat pada membengkaknya penggunaan CPU atau prosesor pada perangkat tertentu untuk mengenkripsi transaksi data saat proses \u0026lsquo;jabat tangan\u0026rsquo;.\nJika Anda merupakan pemilik situs web atau blog, maka kemungkinan hal ini akan mempengaruhi performa situs web secara keseluruhan dan ini mungkin akan berpotensi mengurangi pengunjung pada situs web Anda.\nSaya sarankan agar Anda gunakan ukuran kunci yang ideal. Ukuran kunci yang ideal untuk kebanyakan kasus adalah 256 bit, atau yang paling besar adalah 384 bit, tidak perlu terlalu besar.\nSekadar Informasi saja, jika Anda menerbitkan sertifikat TLS dengan kunci ECC/ECDSA, maka berkas-berkas sertifikat TLS akan tersimpan di dalam direktori yang berakhiran dengan _ecc, seperti: /home/username/.acme.sh/domain.com_ecc, bukan di dalam direktori yang biasanya.\nNama berkas-berkasnya akan sama saja, tidak ada yang berbeda. Satu hal lagi, jika Anda ingin mencabut, menghapus, atau memperbarui/me-renew sertifikat TLS secara manual, maka Anda perlu menambahkan parameter --ecc juga.\nContoh perintahnya sebagai berikut:\nacme.sh --remove -d domain.com --ecc Contoh di atas merupakan perintah untuk menghapus sertifikat TLS yang berkunci ECDSA. Ganti --remove dengan parameter/argumen lain yang Anda inginkan\nSalah satunya: --renew jika Anda ingin memperbarui sertifikatnya, atau --revoke jika Anda ingin mencabut sertifikatnya, atau parameter lainnya.\nGanti domain.com dengan alamat domain pertama yang Anda masukkan saat menerbitkan sertifikat TLS.\nNah, akhirnya Anda telah berhasil menerbitkan sertifikat TLS-nya, selanjutnya Anda perlu mengetahui berkas-berkas yang berada di dalam direktori acme.sh-nya, terutama mengetahui berkas mana yang perlu dikirimkan nantinya beserta konfigurasi akunnya.\nJika Anda merasa itu gak penting, maka Anda bisa langsung lanjut ke bagian Memasang Sertifikat TLS-nya.\nBerkas-berkas acme.sh Bagian ini akan membahas tentang berkas-berkas yang berada di dalam direktori acme.sh itu terinstal.\nIni bukanlah hal yang wajib, sehingga bisa Anda lewati jika berkenan, tapi ini sangat disarankan untuk dipelajari, selain supaya Anda bisa memasang sertifikat TLS-nya dengan baik, ini juga dapat membantu Anda untuk menyelesaikan masalah Anda saat menggunakannya.\nLetak acme.sh, isi direktorinya beserta fungsi-fungsinya Biasanya, acme.sh akan terinstal di dalam direktori $HOME/.acme.sh. Isi dari direktorinya sebagai berikut:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ ls -la \u0026#34;$HOME\u0026#34;/.acme.sh total 256 drwx------ 10 user user 4096 Aug 27 15:43 . drwx------ 12 user user 4096 Sep 27 11:56 .. -rw-r--r-- 1 user user 1747 Aug 27 15:38 account.conf -rwxr-xr-x 1 user user 205958 Jul 5 16:41 acme.sh -rw-r--r-- 1 user user 92 Jul 4 18:22 acme.sh.env drwxr-xr-x 3 user user 4096 Jul 4 18:33 ca drwxr-xr-x 2 user user 4096 Jul 5 16:41 deploy drwxr-xr-x 2 user user 4096 Jul 5 16:41 dnsapi drwxr-xr-x 2 user user 4096 Jul 8 08:50 domain.com drwxr-xr-x 2 user user 4096 Aug 27 11:45 domain.com_ecc drwxr-xr-x 2 user user 4096 Aug 27 15:38 \u0026#39;*.domain.com\u0026#39; drwxr-xr-x 2 user user 4096 Aug 27 15:37 \u0026#39;*.domain.com_ecc\u0026#39; -rw-r--r-- 1 user user 224 Aug 27 16:26 http.header drwxr-xr-x 2 user user 4096 Jul 5 16:41 notify Catatan: Huruf d di paling awal baris pada keluaran (cth. drwxr yang berawalan huruf d) itu merupakan direktori, bukan sebuah berkas.\nSetiap direktori dan berkas yang ada di dalam sana memiliki fungsinya masing-masing. Fungsi-fungsi dari isi direktori acme.sh adalah sebagai berikut:\nBerkas acme.sh: Berkas utama untuk perkakas acme.sh, berkas tersebut akan dieksekusi ketika Anda menjalankan perkakas acme.sh\nBerkas acme.sh.env: Berkas yang digunakan untuk menyimpan lingkungan variabel (environment variables) yang mengatur bagaimana perkakas acme.sh dijalankan\nBerkas account.conf: Berkas konfigurasi untuk perkakas acme.sh\nDirektori ca: Direktori yang digunakan sebagai tempat penyimpanan Informasi mengenai akun CA yang telah Anda registrasikan/kaitkan sebelumnya melalui parameter --register-account atau secara otomatis jika Anda menerbitkan sertifikat TLS untuk pertama kalinya.\nDirektori tersebut (dan berkas-berkas di dalamnya) akan digunakan oleh perkakas acme.sh untuk menerbitkan, memperbarui dan mencabut sertifikat TLS dengan menggunakan akun yang telah Anda registrasikan/kaitkan sebelumnya\nDirektori deploy: Direktori yang digunakan sebagai tempat penyimpanan berkas skrip shell untuk penggunaan fitur deploy hook yang ada pada perkakas acme.sh, isi direktori tersebut adalah skrip deploy hook yang disediakan oleh perkakas tersebut.\nDirektori tersebut (dan berkas-berkas di dalamnya) akan digunakan oleh perkakas acme.sh jika Anda menggunakan fitur deploy hook-nya. Untuk cara penggunaannya, silakan kunjungi halaman dokumentasinya\nDirektori dnsapi: Direktori yang digunakan sebagai tempat penyimpanan berkas skrip shell untuk penggunaan fitur verifikasi DNS yang ada pada perkakas acme.sh saat menerbitkan dan memperbarui sertifikat TLS. Isi direktori tersebut adalah penyedia DNS yang telah didukung oleh acme.sh untuk verifikasi.\nDirektori tersebut (dan berkas-berkas di dalamnya) akan digunakan oleh perkakas acme.sh jika Anda menggunakan DNS sebagai verifikasi dalam menerbitkan dan memperbarui sertifikat TLS-nya. Untuk cara penggunaannya itu sudah saya jelaskan sebelumnya, yakni di dalam bagian \u0026ldquo;Menerbitkan Sertifikat TLS dengan Menggunakan DNS sebagai Metode Verifikasi\u0026rdquo;.\nDirektori yang berawalan dengan nama domain (cth. domain.com dan '*.domain.com') merupakan direktori yang digunakan sebagai tempat penyimpanan sertifikat TLS yang telah Anda terbitkan, beserta konfigurasinya. Isi di dalam direktori tersebut adalah berkas-berkas yang diperlukan untuk memasang sertifikat TLS ke dalam Web/Blog Anda, berkas CSR untuk memperbarui sertifikat, dan berkas konfigurasinya.\nDirektori tersebut (terutama berkas-berkas di dalamnya) sangat wajib untuk diketahui, karena itu akan sangat diperlukan untuk pemasangan dan pengaktifan sertifikat TLS yang telah Anda terbitkan ke dalam Web/Blog Anda. Berkas Konfigurasi di dalamnya (cth. domain.com.conf) bisa Anda gunakan untuk mengkonfigurasi perilaku acme.sh baik sebelum dan sesudahnya.\nNama dari direktori tersebut ditentukan oleh domain pertama yang telah Anda masukkan saat menerbitkan sertifikat TLS dengan perkakas acme.sh sebelumnya atau merupakan domain utama\nDirektori yang berawalan dengan nama domain dan berakhiran _ecc (cth. domain.com_ecc dan '*.domain.com_ecc'): Sama saja seperti no. 7, bedanya di sini menyimpan sertifikat TLS yang telah diterbitkan dengan kunci ECC/ECDSA, yang telah saya bahas di dalam bagian sebelumnya.\nBerkas http.header: Entah berkas ini fungsinya untuk apaan, tapi mungkin berkas ini akan digunakan untuk menerbitkan dan memperbarui sertifikat TLS dengan perkakas acme.sh, jadi sebaiknya jangan dihapus\nDirektori notify: Direktori yang digunakan sebagai tempat penyimpanan berkas skrip shell untuk penggunaan fitur notify hook yang ada pada perkakas acme.sh, isi direktori tersebut adalah skrip notify hook yang disediakan oleh perkakas tersebut.\nDirektori tersebut (dan berkas-berkas di dalamnya) akan digunakan oleh perkakas acme.sh jika Anda menggunakan fitur notify hook-nya. Untuk cara penggunaannya, silakan kunjungi halaman dokumentasinya\nNah, itulah letak acme.sh, isi direktorinya beserta fungsi-fungsinya.\nKonfigurasi utama acme.sh Letak berkas konfigurasi utama acme.sh terletak di $HOME/.acme.sh/account.conf.\nBerkas tersebut menyimpan sejumlah kredensial yang Anda masukkan melalui variabel dari sebuah shell (Seperti Token, Kunci API, atau bahkan Nama Pengguna dan Kata Sandi), acme.sh akan menyimpan informasi tersebut secara otomatis ke dalam berkas account.conf jika dijalankan dan akan digunakan kembali jika tersimpan.\nBerikut adalah contoh isi berkas account.conf:\n1 2 3 4 5 6 7 $ cat \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf LE_WORKING_DIR=/home/username/.acme.sh LE_CONFIG_HOME=/home/username/.acme.sh UPGRADE_HASH=\u0026#39;8ded524236347d5a1f7a3169809cab9cf363a1c8\u0026#39; ACCOUNT_EMAIL=\u0026#39;emailku@domain.com\u0026#39; #AUTO_UPGRADE=\u0026#39;1\u0026#39; USER_PATH=\u0026#39;/home/username/bin:/home/username/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin\u0026#39; Jadi, jika Anda memiliki masalah saat menggunakan acme.sh hanya karena kredensialnya tidak valid, entah itu salah memasukkan atau tidak ada, Anda bisa menggantinya dengan mengubah berkas tersebut dengan memakai Editor Teks favorit Anda.\nIsi direktori domain.com dan berkas yang diperlukan Berikut di bawah ini adalah isi dari direktori domain.com yang ada di dalam perkakas acme.sh, di dalamnya ada berkas-berkas yang diperlukan untuk memasangkan sertifikat TLS.\n1 2 3 4 5 6 7 8 9 10 11 $ ls -la \u0026#34;$HOME\u0026#34;/.acme.sh/domain.com total 44 drwxr-xr-x 2 user user 4096 Jul 8 08:46 . drwx------ 10 user user 4096 Jul 8 08:50 .. -rw-r--r-- 1 user user 4399 Jul 8 08:46 ca.cer -rw-r--r-- 1 user user 2472 Jul 8 08:46 domain.com.cer -rw-r--r-- 1 user user 580 Jul 8 08:46 domain.com.conf -rw-r--r-- 1 user user 1318 Jul 8 08:45 domain.com.csr -rw-r--r-- 1 user user 164 Jul 8 08:45 domain.com.csr.conf -rw-r--r-- 1 user user 2459 Jul 8 08:45 domain.com.key -rw-r--r-- 1 user user 6871 Jul 8 08:46 fullchain.cer Jika penyedia hosting atau CDN nanti memerlukan 3 informasi agar dapat memasangkan sertifikat TLS-nya, maka berkas yang perlu Anda gunakan/kirimkan/masukkan adalah:\ndomain.com.cer (Sebagai sertifikatnya) domain.com.key (Sebagai kuncinya) ca.cer (Sebagai Sertifikat CA/Sertifikat Penengah/\u0026ldquo;Intermediate Certificate\u0026rdquo;-nya) Atau, jika mereka cuma memerlukan 2 informasi saja, maka berkas yang perlu Anda gunakan/kirimkan/masukkan adalah:\nfullchain.cer (Sebagai sertifikatnya) domain.com.key (Sebagai kuncinya) Kenapa bukan domain.com.cer? Karena fullchain.cer itu merupakan gabungan dari domain.com.cer dan ca.cer.\nUdah itu saja? Udah, hanya itu yang perlu kamu unggah nantinya. Berkas .csr, .csr.conf dan .conf tidak perlu kamu unggah sama sekali, karena itu akan berguna nantinya untuk memperbarui sertifikat TLS Anda.\nPraktik terbaik dalam memasang sertifikat TLS, selain sertifikat untuk domain, adalah Anda diharuskan untuk memasang/memberikan Informasi mengenai kunci dan sertifikat penengah (Intermediate Certificate) dari CA kepada penyedianya.\nJika Anda hanya menggunakan berkas domain.com.cer daripada fullchain.cer sebagai Informasi sertifikat saat penyedia hanya perlu 2 informasi saja, maka rantai pada sertifikat TLS yang terpasang malah tidak sempurna, karena tidak ada sertifikat penengah dari CA-nya.\nSelain berkas CSR dan sertifikat, berkas domain.com.conf juga berguna sebagai konfigurasi acme.sh untuk domain tertentu (cth. domain.com), Anda bisa atur perintah yang akan dieksekusi sebelum atau setelah sertifikat sukses diperbarui melalui berkas tersebut, akan saya bahas ini di setelah bagian Pemasangan Sertifikat TLS.\nMemasang Sertifikat TLS Setelah menerbitkan sertifikat TLS, Anda perlu memasangkannya supaya sertifikat yang telah Anda terbitkan bisa diaktifkan. Setiap penyedia Web mempunyai cara memasang yang berbeda-beda, kali ini saya bahas cara memasang sertifikat TLS untuk Netlify, Bunny CDN, cPanel dan DirectAdmin.\nMemasang sertifikat TLS yang saya bahas di sini tidaklah menggunakan metode unggah manual melalui Web, melainkan kamu \u0026lsquo;Nembak\u0026rsquo; ke API-nya atau melakukan pemanggilan ke Server API-nya melalui curl.\nBerikut adalah cara-caranya:\nDi Netlify Membuat \u0026ldquo;Personal Access Token\u0026rdquo; dan Mendapatkan \u0026ldquo;Site ID\u0026rdquo; Agar Anda bisa memanggil Server API-nya, maka Anda perlu membuat kunci aksesnya, salah satunya adalah dengan membuat \u0026ldquo;Personal Access Token\u0026rdquo;-nya.\nUntuk membuat \u0026ldquo;Personal Access Token\u0026rdquo;-nya sendiri sudah saya bahas di bagian \u0026ldquo;Membuat Kode Token API\u0026rdquo;. Jika Anda belum sempat membuatnya, silakan klik di sini untuk caranya.\nSetelah \u0026ldquo;Personal Access Token\u0026rdquo; dibuat, maka Anda perlu mendapatkan \u0026ldquo;Site ID\u0026rdquo;-nya juga. Untuk mendapatkannya, Anda bisa pergi ke \u0026ldquo;Site settings\u0026rdquo;, lalu klik pada \u0026ldquo;General\u0026rdquo; -\u0026gt; Terakhir, klik \u0026ldquo;Site details\u0026rdquo;, di situ akan muncul informasi-informasi mengenai Web Anda, seperti cuplikan berikut:\nJika Anda melihat cuplikan di atas, \u0026ldquo;API ID\u0026rdquo; yang saya tunjuk itu merupakan \u0026ldquo;Site ID\u0026rdquo;-nya, simpan ID tersebut baik-baik. Selain API ID, Anda juga bisa menggunakan domain Anda atau menggunakan subdomain dari Netlify sebagai \u0026ldquo;Site ID\u0026rdquo;-nya.\nLangkah selanjutnya adalah memasang sertifikat TLS melalui API-nya.\nMemasang Sertifikat TLS melalui API dari Netlify PEMBARUAN Minggu, 07 Juli 2024: Saya melihat ada orang yang mengajukan Pull Request agar Deploy Hook untuk Netlify, DirectAdmin, CacheFly, Edgio, dan KeyHelp Control Panel ada di dalam acme.sh, Anda dapat melihat Pull Request-nya di sini.\nJika itu digabung (merge) dan bekerja dengan baik ketika dicoba, maka saya akan menyederhanakan tutorial di bawah ini dengan memakai Deploy Hook saja untuk memasangkan sertifikat TLS-nya ketimbang cara manual seperti di bawah ini.\nUntuk memasang sertifikat TLS di Netlify melalui API-nya. Maka pertama-tama, Anda perlu menavigasikan Terminal/Shell Anda ke dalam folder tempat berkas sertifikat itu disimpan dengan perintah cd terlebih dahulu. Contoh:\ncd \u0026#34;$HOME\u0026#34;/.acme.sh/domain.com Lalu, simpan isi dari berkas-berkas yang diperlukannya ke dalam sebuah variabel.\nAnda dapat menyimpannya dengan perintah berikut:\n1 2 3 4 NETLIFY_PLAIN_CERT=\u0026#34;$(sed \u0026#39;s/$/\\\\n/\u0026#39; domain.com.cer | tr -d \u0026#39;\\n\u0026#39;)\u0026#34; NETLIFY_PLAIN_KEY=\u0026#34;$(sed \u0026#39;s/$/\\\\n/\u0026#39; domain.com.key | tr -d \u0026#39;\\n\u0026#39;)\u0026#34; NETLIFY_PLAIN_CA=\u0026#34;$(sed \u0026#39;s/$/\\\\n/\u0026#39; ca.cer | tr -d \u0026#39;\\n\u0026#39;)\u0026#34; NETLIFY_ACCESS_TOKEN=\u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; Atau, di bawah ini jika Anda ingin cara lain:\n1 2 3 4 NETLIFY_PLAIN_CERT=\u0026#34;$(awk -v ORS=\u0026#34;\\\\\\n\u0026#34; \u0026#39;1\u0026#39; domain.com.cer)\u0026#34; NETLIFY_PLAIN_KEY=\u0026#34;$(awk -v ORS=\u0026#34;\\\\\\n\u0026#34; \u0026#39;1\u0026#39; domain.com.key)\u0026#34; NETLIFY_PLAIN_CA=\u0026#34;$(awk -v ORS=\u0026#34;\\\\\\n\u0026#34; \u0026#39;1\u0026#39; ca.cer)\u0026#34; NETLIFY_ACCESS_TOKEN=\u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 3 4 set NETLIFY_PLAIN_CERT (sed \u0026#39;s/$/\\\\\\n/\u0026#39; domain.com.cer | tr -d \u0026#39;\\n\u0026#39;) set NETLIFY_PLAIN_KEY (sed \u0026#39;s/$/\\\\\\n/\u0026#39; domain.com.key | tr -d \u0026#39;\\n\u0026#39;) set NETLIFY_PLAIN_CA (sed \u0026#39;s/$/\\\\\\n/\u0026#39; ca.cer | tr -d \u0026#39;\\n\u0026#39;) set NETLIFY_ACCESS_TOKEN \u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; Silakan ubah direktori dan nama berkas di atas sesuai dengan letak berkas sertifikat yang telah tersimpan di dalam perangkat Anda dan ubah teks ACCESS_TOKEN_KAMU_DI_SINI menjadi Personal access token yang telah Anda buat dan simpan sebelumnya.\nSelain nilai variabel, Anda juga bisa bebas menggantikan nama variabelnya sesuka hati Anda, misalnya variabel NETLIFY_PLAIN_CERT diubah menjadi PLAIN_CERT, atau CERT, atau apa saja, asal bisa Anda gunakan kembali variabel tersebut.\nSetelah memasukkannya ke dalam variabel, Anda tinggal panggil saja API-nya dengan perintah berikut:\n1 2 3 4 5 curl -s \\ -H \u0026#34;Authorization: Bearer $NETLIFY_ACCESS_TOKEN\u0026#34; \\ -H \u0026#34;content-type: application/json\u0026#34; \\ -d \u0026#34;{\\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_CERT\\\u0026#34;, \\\u0026#34;key\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_KEY\\\u0026#34;, \\\u0026#34;ca_certificates\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_CA\\\u0026#34;}\u0026#34; \\ \u0026#34;https://api.netlify.com/api/v1/sites/SITE_ID_KAMU_DI_SINI/ssl\u0026#34; Atau, gunakan perintah berikut ini jika Anda ingin memanggilnya dalam satu baris saja:\ncurl -sH \u0026#34;Authorization: Bearer $NETLIFY_ACCESS_TOKEN\u0026#34; -H \u0026#34;content-type: application/json\u0026#34; --data \u0026#34;{\\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_CERT\\\u0026#34;, \\\u0026#34;key\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_KEY\\\u0026#34;, \\\u0026#34;ca_certificates\\\u0026#34;: \\\u0026#34;$NETLIFY_PLAIN_CA\\\u0026#34;}\u0026#34; --url \u0026#34;https://api.netlify.com/api/v1/sites/SITE_ID_KAMU_DI_SINI/ssl\u0026#34; Sebelum dieksekusi, silakan ganti SITE_ID_KAMU_DI_SINI terlebih dahulu dengan Site ID, domain atau subdomain di Netlify yang ingin Anda pasangkan sertifikatnya.\nJika sukses, maka akan tampil pesan dalam format JSON, seperti di bawah ini:\n{\u0026#34;id\u0026#34;:\u0026#34;5dxxxxxxxxxxxxxxxxxxxxxx\u0026#34;,\u0026#34;state\u0026#34;:\u0026#34;custom\u0026#34;,\u0026#34;domains\u0026#34;:[\u0026#34;*.domain.com\u0026#34;,\u0026#34;domain.com\u0026#34;],\u0026#34;created_at\u0026#34;:\u0026#34;2019-08-30T06:39:58.331Z\u0026#34;,\u0026#34;updated_at\u0026#34;:\u0026#34;2021-07-12T17:07:40.622Z\u0026#34;,\u0026#34;expires_at\u0026#34;:\u0026#34;2021-10-06T23:59:59.000Z\u0026#34;,\u0026#34;custom\u0026#34;:true,\u0026#34;migrate_to_le_running\u0026#34;:false,\u0026#34;renewal_error_message\u0026#34;:null,\u0026#34;renewable\u0026#34;:false,\u0026#34;renew_running\u0026#34;:false} Atau, penampilannya akan seperti di bawah ini jika dipercantik:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { \u0026#34;id\u0026#34;:\u0026#34;5dxxxxxxxxxxxxxxxxxxxxxx\u0026#34;, \u0026#34;state\u0026#34;:\u0026#34;custom\u0026#34;, \u0026#34;domains\u0026#34;:[ \u0026#34;*.domain.com\u0026#34;, \u0026#34;domain.com\u0026#34; ], \u0026#34;created_at\u0026#34;:\u0026#34;2019-08-30T06:39:58.331Z\u0026#34;, \u0026#34;updated_at\u0026#34;:\u0026#34;2021-07-12T17:07:40.622Z\u0026#34;, \u0026#34;expires_at\u0026#34;:\u0026#34;2021-10-06T23:59:59.000Z\u0026#34;, \u0026#34;custom\u0026#34;:true, \u0026#34;migrate_to_le_running\u0026#34;:false, \u0026#34;renewal_error_message\u0026#34;:null, \u0026#34;renewable\u0026#34;:false, \u0026#34;renew_running\u0026#34;:false } Jika gagal, maka pesan yang muncul tidak seperti di atas, melainkan pesan galat (error) yang isinya berbeda-beda tergantung penyebabnya.\nNah, gimana? Cukup mudah, bukan? Jika Anda berhasil memasang sertifikat TLS di Netlify melalui pemanggilan Server API-nya dan tidak ada penyedia lain, maka Anda hanya perlu membuat sebuah skrip Shell agar SSL bisa diperbarui secara otomatis atau mungkin Anda perlu mempelajari Konfigurasi acme.sh untuk Domain tertentu terlebih dahulu sebelum itu.\nDi bunny.net (Sebelumnya: BunnyCDN) Mendapatkan \u0026ldquo;Access Key\u0026rdquo; dan \u0026ldquo;Pull Zone ID\u0026rdquo;-nya Sebelum Anda bisa memasang sertifikat TLS dengan melakukan pemanggilan Server API dari bunny.net (sebelumnya: BunnyCDN), maka Anda perlu mendapatkan \u0026ldquo;Access Key\u0026rdquo; dan \u0026ldquo;Pull Zone ID\u0026rdquo;-nya terlebih dahulu.\nUntuk mendapatkan \u0026ldquo;Access Key\u0026rdquo;-nya sendiri sudah saya bahas di bagian \u0026ldquo;Membuat Kode Token API\u0026rdquo;. Jika belum sempat mendapatkannya, silakan klik di sini untuk caranya.\nUntuk \u0026ldquo;Pull Zone ID\u0026rdquo;-nya, Anda bisa dapatkan itu di pengaturannya. Caranya setelah login dan diarahkan ke Halaman Dasbor, klik \u0026ldquo;Delivery\u0026rdquo; yang letaknya di sebelah kiri halaman -\u0026gt; Lalu, klik pada \u0026ldquo;CDN\u0026rdquo; -\u0026gt; Setelah itu, pilih Pull Zone yang ingin kamu pasangkan sertifikatnya -\u0026gt; Setelah dipilih dan diklik, maka alamat URL pada Peramban Web akan menjadi seperti format di bawah ini:\nhttps://dash.bunny.net/cdn/ANGKA_YANG_MUNCUL Angka yang muncul di akhir alamat URL (ANGKA_YANG_MUNCUL) itu adalah \u0026ldquo;Pull Zone ID\u0026rdquo; kamu, jadi simpan itu baik-baik jika Anda ingin memasangkan sertifikatnya dan pastikan kamu telah membuat \u0026ldquo;Custom Hostname\u0026rdquo; sebelumnya di sana.\nKarena selain \u0026ldquo;Access Key\u0026rdquo; dan \u0026ldquo;Pull Zone ID\u0026rdquo;, mempunyai \u0026ldquo;Custom Hostname\u0026rdquo; merupakan hal yang wajib hukumnya, karena Anda tidak bisa menggunakan Subdomain dari bunny.net (b-cdn.net) untuk dipasangkan sertifikatnya.\nSetelah mendapatkan semuanya, selanjutnya adalah memasang sertifikat TLS melalui Akses API-nya.\nMemasang Sertifikat TLS melalui API dari bunny.net Sekarang Anda tinggal memasang sertifikatnya saja dengan melakukan pemanggilan server API dari bunny.net.\nPertama-tama, Anda perlu menavigasikan Terminal/Shell Anda ke dalam folder tempat berkas sertifikat itu disimpan dengan perintah cd terlebih dahulu. Contoh:\ncd \u0026#34;$HOME\u0026#34;/.acme.sh/domain.com Lalu, simpan isi dari berkas-berkas yang diperlukannya ke dalam sebuah variabel.\nAnda dapat menyimpannya dengan perintah berikut:\n1 2 3 BUNNY_BASE64_FULLCHAIN=\u0026#34;$(openssl base64 -A \u0026lt; fullchain.cer)\u0026#34; BUNNY_BASE64_KEY=\u0026#34;$(openssl base64 -A \u0026lt; domain.com.key)\u0026#34; BUNNY_ACCESS_KEY=\u0026#34;ACCESS_KEY_KAMU_DI_SINI\u0026#34; Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 3 set BUNNY_BASE64_FULLCHAIN (openssl base64 -A \u0026lt; fullchain.cer) set BUNNY_BASE64_KEY (openssl base64 -A \u0026lt; domain.com.key) set BUNNY_ACCESS_KEY \u0026#34;ACCESS_KEY_KAMU_DI_SINI\u0026#34; Silakan ubah direktori dan nama berkas di atas sesuai dengan sertifikat TLS yang tersimpan di dalam perangkat Anda dan ubah teks ACCESS_KEY_KAMU_DI_SINI menjadi Access Key yang telah Anda simpan sebelumnya.\nSelain nilai variabel, Anda juga bisa bebas menggantikan nama variabelnya sesuka hati, misalnya variabel BUNNY_BASE64_FULLCHAIN diubah menjadi FULLCHAIN_CER, atau FULLCHAIN, atau apa saja, asal dapat digunakan kembali variabel tersebut.\nSetelah memasukkannya ke dalam variabel, tinggal panggil saja API-nya dengan perintah berikut:\n1 2 3 4 5 6 curl -s \\ -H \u0026#34;Accept: application/json\u0026#34; \\ -H \u0026#34;AccessKey: $BUNNY_ACCESS_KEY\u0026#34; \\ -H \u0026#34;Content-Type: application/json\u0026#34; \\ -d \u0026#34;{\\\u0026#34;Hostname\\\u0026#34;: \\\u0026#34;CUSTOM_HOSTNAME_KAMU_DI_SINI\\\u0026#34;, \\\u0026#34;Certificate\\\u0026#34;: \\\u0026#34;$BUNNY_BASE64_FULLCHAIN\\\u0026#34;, \\\u0026#34;CertificateKey\\\u0026#34;: \\\u0026#34;$BUNNY_BASE64_KEY\\\u0026#34;}\u0026#34; \\ \u0026#34;https://api.bunny.net/pullzone/PULL_ZONE_ID_KAMU_DI_SINI/addCertificate\u0026#34; Atau, gunakan perintah berikut ini jika Anda ingin memanggilnya dalam satu baris saja:\ncurl -sH \u0026#34;Accept: application/json\u0026#34; -H \u0026#34;AccessKey: $BUNNY_ACCESS_KEY\u0026#34; -H \u0026#34;Content-Type: application/json\u0026#34; --data \u0026#34;{\\\u0026#34;Hostname\\\u0026#34;: \\\u0026#34;CUSTOM_HOSTNAME_KAMU_DI_SINI\\\u0026#34;, \\\u0026#34;Certificate\\\u0026#34;: \\\u0026#34;$BASE64_FULLCHAIN_CER\\\u0026#34;, \\\u0026#34;CertificateKey\\\u0026#34;: \\\u0026#34;$BASE64_KEY\\\u0026#34;}\u0026#34; --url \u0026#34;https://api.bunny.net/pullzone/PULL_ZONE_ID_KAMU_DI_SINI/addCertificate\u0026#34; Sebelum dieksekusi, silakan ganti PULL_ZONE_KAMU_DI_SINI terlebih dahulu dengan ID Pull Zone dan CUSTOM_HOSTNAME_KAMU_DI_SINI dengan Nama Hos/Domain Kustom di dalam Pull Zone yang ingin Anda pasangkan sertifikatnya.\nJika berhasil, maka tidak akan muncul pesan apa pun (Kode Status: 204 No Content), berbeda bila dibandingkan dengan Netlify yang menampilkan pesan dalam format JSON. Sebaliknya, jika tidak berhasil, maka pesan galat akan muncul dengan pesan yang berbeda-beda, tergantung penyebabnya.\nNah, gimana? Cukup mudah, bukan? Jika Anda berhasil memasang sertifikat TLS Anda di Bunny CDN dengan memanggil API-nya dan tidak ada penyedia lain yang sedang dipakai, maka Anda hanya perlu membuat sebuah skrip Shell agar SSL bisa diperbarui secara otomatis atau mungkin Anda perlu mempelajari Konfigurasi acme.sh untuk Domain tertentu terlebih dahulu sebelum itu.\nDi cPanel Membuat API Token dan Persiapannya Jika Anda merupakan pengguna cPanel sebagai kontrol panelnya, baik itu di dalam server ataupun pada layanan Shared Hosting yang Anda gunakan, maka Anda dapat melakukannya tanpa harus mengakses SSH-nya terlebih dahulu.\nTidak ada syarat khusus dalam hosting untuk memasangkan sertifikat TLS melalui akses API ini, jadi Anda dapat memasangnya dengan memakai paket hosting termurah sekali pun, selama layanan hosting mendukung pemasangan sertifikat TLS kustom dan mendukung cPanel API yang sepertinya mayoritas layanan hosting mendukungnya, kecuali Domainesia dengan paket termurahnya.\nNamun sebelum itu, Anda harus membuat \u0026ldquo;API Token\u0026rdquo;-nya terlebih dahulu di cPanel-nya, yang tentu saja Anda perlu masuk ke dalam cPanel-nya untuk ini.\nJika kamu belum pernah membuat \u0026ldquo;API Token\u0026rdquo; sebelumnya (di dalam bagian \u0026ldquo;Membuat Kode Token API\u0026rdquo;), silakan klik di sini untuk caranya.\nSetelah membuat \u0026ldquo;API Token\u0026rdquo; dan menyimpannya, Anda perlu menginstal jq di dalam perangkat Anda, ini akan sangat diperlukan untuk memasang sertifikat TLS melalui API dari cPanel nantinya, karena kamu memerlukan fitur URI Encode untuk mengirim datanya.\nJika sudah diinstal, silakan lanjut ke langkah berikutnya.\nMemasang Sertifikat TLS melalui API dari cPanel Pada langkah ini Anda akan memasangkan sertifikat TLS-nya melalui pemanggilan API cPanel. Pemasangannya sendiri agak beda dari yang lain, kedua penyedia di atas menggunakan metode POST, sedangkan yang ini menggunakan metode GET.\nKedua metode ini memiliki perbedaan dalam mengirimkan datanya, tapi dengan tujuan yang sama.\nTanpa basa-basi lagi, pertama-tama, Anda perlu menavigasikan Terminal/Shell Anda ke dalam folder tempat berkas sertifikat itu disimpan dengan perintah cd terlebih dahulu. Contoh:\ncd \u0026#34;$HOME\u0026#34;/.acme.sh/domain.com Lalu, simpan isi dari berkas-berkas yang diperlukannya ke dalam sebuah variabel.\nAnda dapat menyimpannya dengan perintah berikut:\n1 2 3 4 5 6 7 CPANEL_PLAIN_CERT=\u0026#34;$(jq -sRr @uri \u0026lt; domain.com.cer)\u0026#34; CPANEL_PLAIN_KEY=\u0026#34;$(jq -sRr @uri \u0026lt; domain.com.key)\u0026#34; CPANEL_PLAIN_CA=\u0026#34;$(jq -sRr @uri \u0026lt; ca.cer)\u0026#34; CPANEL_SCHEME=\u0026#34;https\u0026#34; # Pakai https atau http, baku: https CPANEL_ENDPOINT=\u0026#34;contoh-domain.id:2083\u0026#34; # Port \u0026#39;2083\u0026#39; untuk https atau \u0026#39;2082\u0026#39; untuk http CPANEL_USERNAME=\u0026#34;USERNAME_CPANEL_KAMU_DI_SINI\u0026#34; # Username cPanel kamu CPANEL_API_TOKEN=\u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; # API Token cPanel kamu Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 3 4 5 6 7 set CPANEL_PLAIN_CERT (jq -sRr @uri \u0026lt; domain.com.cer) set CPANEL_PLAIN_KEY (jq -sRr @uri \u0026lt; domain.com.key) set CPANEL_PLAIN_CA (jq -sRr @uri \u0026lt; ca.cer) set CPANEL_SCHEME \u0026#34;https\u0026#34; # Pakai https atau http, baku: https set CPANEL_ENDPOINT \u0026#34;contoh-domain.id:2083\u0026#34; # Port \u0026#39;2083\u0026#39; untuk https atau \u0026#39;2082\u0026#39; untuk http set CPANEL_USERNAME \u0026#34;USERNAME_CPANEL_KAMU_DI_SINI\u0026#34; # Username cPanel kamu set CPANEL_API_TOKEN \u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; # API Token cPanel kamu Silakan ubah direktori dan nama berkas di atas sesuai dengan berkas sertifikat TLS yang tersimpan di dalam perangkat Anda, serta ubah nilai dari ketiga variabel di atas lainnya sesuai kredensial cPanel Anda dan cara Anda mengaksesnya.\nSelain nilai variabel, Anda juga bisa bebas menggantikan nama variabelnya sesuka hati Anda, misalnya variabel CPANEL_PLAIN_CA diubah menjadi PLAIN_CA, atau CA, atau apa saja, asal dapat Anda gunakan kembali variabel tersebut.\nSedangkan variabel CPANEL_ENDPOINT adalah alamat domain/IP beserta port yang kamu gunakan untuk mengakses cPanel, ini bisa Anda dapatkan di dalam halaman billing dari hostingnya, di pesan surel dari hosting Anda mengenai informasi login-nya, atau bisa juga diakses dari domain yang Anda hubungkan ke server hostingnya dengan menambahkan port 2083 untuk HTTPS atau 2082 untuk HTTP (cth. contoh-domain.id:2083).\nSetelah memasukkannya ke dalam variabel, Anda tinggal panggil saja API-nya dengan perintah berikut:\n1 2 3 4 5 6 curl -sGH \u0026#34;Authorization: cpanel $CPANEL_USERNAME:$CPANEL_API_TOKEN\u0026#34; \\ -d \u0026#34;domain=\u0026lt;ALAMAT_DOMAIN_KAMU_DI_SINI\u0026gt;\u0026#34; \\ -d \u0026#34;cert=$CPANEL_PLAIN_CERT\u0026#34; \\ -d \u0026#34;key=$CPANEL_PLAIN_KEY\u0026#34; \\ -d \u0026#34;cabundle=$CPANEL_PLAIN_CA\u0026#34; \\ \u0026#34;$CPANEL_SCHEME://$CPANEL_ENDPOINT/execute/SSL/install_ssl\u0026#34; Atau, gunakan perintah berikut ini jika Anda ingin memanggilnya dalam satu baris saja:\n1 curl -sGH \u0026#34;Authorization: cpanel $CPANEL_USERNAME:$CPANEL_API_TOKEN\u0026#34; -d \u0026#34;domain=\u0026lt;ALAMAT_DOMAIN_KAMU_DI_SINI\u0026gt;\u0026#34; -d \u0026#34;cert=$CPANEL_PLAIN_CERT\u0026#34; -d \u0026#34;key=$CPANEL_PLAIN_KEY\u0026#34; -d \u0026#34;cabundle=$CPANEL_PLAIN_CA\u0026#34; \u0026#34;$CPANEL_SCHEME://$CPANEL_ENDPOINT/execute/SSL/install_ssl\u0026#34; Ganti \u0026lt;ALAMAT_DOMAIN_KAMU_DI_SINI\u0026gt; menjadi alamat Domain/Subdomain di cPanel yang ingin kamu pasangkan sertifikatnya.\nJika sukses, maka akan tampil pesan dalam format JSON, seperti di bawah ini:\n{\u0026#34;metadata\u0026#34;:{},\u0026#34;messages\u0026#34;:[\u0026#34;The certificate was successfully installed on the domain “domain.com”.\u0026#34;],\u0026#34;data\u0026#34;:{\u0026#34;extra_certificate_domains\u0026#34;:[\u0026#34;sub.domain.com\u0026#34;],\u0026#34;servername\u0026#34;:\u0026#34;domain.com\u0026#34;,\u0026#34;message\u0026#34;:\u0026#34;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”. Apache diaktifkan ulang di latar belakang.\\n\u0026#34;,\u0026#34;status\u0026#34;:1,\u0026#34;domain\u0026#34;:\u0026#34;domain.com\u0026#34;,\u0026#34;user\u0026#34;:\u0026#34;username\u0026#34;,\u0026#34;cert_id\u0026#34;:\u0026#34;ec-_wildcard__domain_com_000xxxxxxx_16xxxxxx65_3cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1\u0026#34;,\u0026#34;key_id\u0026#34;:\u0026#34;ec-000xxxxx38_4dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc\u0026#34;,\u0026#34;action\u0026#34;:\u0026#34;install\u0026#34;,\u0026#34;warning_domains\u0026#34;:[],\u0026#34;statusmsg\u0026#34;:\u0026#34;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”. Apache diaktifkan ulang di latar belakang.\\n\u0026#34;,\u0026#34;aliases\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;working_domains\u0026#34;:[\u0026#34;domain.com\u0026#34;],\u0026#34;ip\u0026#34;:\u0026#34;144.xxx.xxx.xxx\u0026#34;,\u0026#34;html\u0026#34;:\u0026#34;\u0026lt;br\u0026gt;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”.\u0026lt;br /\u0026gt;Apache diaktifkan ulang di latar belakang.\u0026#34;},\u0026#34;errors\u0026#34;:[\u0026#34;The event UAPI::SSL::install_ssl was handled successfully.\u0026#34;],\u0026#34;status\u0026#34;:1,\u0026#34;warnings\u0026#34;:null} Atau, penampilannya akan seperti berikut jika dipercantik:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 { \u0026#34;metadata\u0026#34;: {}, \u0026#34;messages\u0026#34;: [ \u0026#34;The certificate was successfully installed on the domain “domain.com”.\u0026#34; ], \u0026#34;data\u0026#34;: { \u0026#34;extra_certificate_domains\u0026#34;: [ \u0026#34;sub.domain.com\u0026#34; ], \u0026#34;servername\u0026#34;: \u0026#34;domain.com\u0026#34;, \u0026#34;message\u0026#34;: \u0026#34;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”. Apache diaktifkan ulang di latar belakang.\\n\u0026#34;, \u0026#34;status\u0026#34;: 1, \u0026#34;domain\u0026#34;: \u0026#34;domain.com\u0026#34;, \u0026#34;user\u0026#34;: \u0026#34;username\u0026#34;, \u0026#34;cert_id\u0026#34;: \u0026#34;ec-_wildcard__domain_com_000xxxxxxx_16xxxxxx65_3cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1\u0026#34;, \u0026#34;key_id\u0026#34;: \u0026#34;ec-000xxxxx38_4dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc\u0026#34;, \u0026#34;action\u0026#34;: \u0026#34;install\u0026#34;, \u0026#34;warning_domains\u0026#34;: [], \u0026#34;statusmsg\u0026#34;: \u0026#34;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”. Apache diaktifkan ulang di latar belakang.\\n\u0026#34;, \u0026#34;aliases\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;working_domains\u0026#34;: [ \u0026#34;domain.com\u0026#34; ], \u0026#34;ip\u0026#34;: \u0026#34;144.xxx.xxx.xxx\u0026#34;, \u0026#34;html\u0026#34;: \u0026#34;\u0026lt;br\u0026gt;Sertifikat SSL ini sekarang diinstal ke domain “domain.com” menggunakan alamat IP “144.xxx.xxx.xxx”.\u0026lt;br /\u0026gt;Apache diaktifkan ulang di latar belakang.\u0026#34; }, \u0026#34;errors\u0026#34;: [ \u0026#34;The event UAPI::SSL::install_ssl was handled successfully.\u0026#34; ], \u0026#34;status\u0026#34;: 1, \u0026#34;warnings\u0026#34;: null } Jika gagal, maka pesan yang muncul tidak seperti di atas, melainkan pesan galat (error) yang isinya berbeda-beda tergantung penyebabnya.\nNah, gimana? Cukup mudah, bukan? Jika berhasil memasang sertifikat TLS Anda di cPanel melalui API-nya dan tidak ada penyedia lain, maka Anda hanya perlu membuat sebuah skrip Shell agar sertifikat tersebut dapat diperbarui secara otomatis atau mungkin Anda perlu mempelajari Konfigurasi acme.sh untuk Domain tertentu terlebih dahulu sebelum itu.\nDi DirectAdmin Jika Anda merupakan pengguna DirectAdmin sebagai kontrol panelnya, baik itu di dalam server ataupun pada layanan Shared Hosting yang digunakan, maka Anda dapat melakukannya tanpa harus mengakses SSH-nya terlebih dahulu.\nTidak ada syarat khusus dalam hosting untuk memasangkan sertifikat TLS melalui API ini, jadi Anda bisa memasangnya dengan memakai paket hosting termurah sekali pun, selama hosting mendukung pemasangan sertifikat TLS kustom.\nNamun sebelum itu, saya sarankan bahwa Anda perlu membuat \u0026ldquo;Login Key\u0026rdquo;-nya terlebih dahulu di dalam DirectAdmin-nya.\nSebenarnya bisa saja memakai kata sandi akun DirectAdmin Anda sebagai gantinya, hanya saja tidak saya merekomendasikan ini, selain karena orang lain dapat mengetahui kata sandi utamanya, hak akses yang diberikan telalu luas untuk keperluan akses yang spesifik saja sehingga metode ini kurang aman.\nDengan menggunakan \u0026ldquo;Login Key\u0026rdquo;, Anda dapat mengatur hak akses dan batasannya dengan bebas, sehingga jika orang lain dapat mengetahui \u0026ldquo;Login Key\u0026rdquo;-nya tanpa sengaja, maka hal tersebut tidak berpengaruh/merembet ke yang lain karena aksesnya dibatasi.\nJika kamu belum pernah membuatnya (di dalam bagian \u0026ldquo;Membuat Kode Token API\u0026rdquo;), silakan klik di sini untuk caranya.\nJika sudah dibuat, silakan lanjut ke langkah berikutnya.\nMemasang Sertifikat TLS melalui API dari DirectAdmin PEMBARUAN Minggu, 07 Juli 2024: Saya melihat ada orang yang mengajukan Pull Request agar Deploy Hook untuk Netlify, DirectAdmin, CacheFly, Edgio, dan KeyHelp Control Panel ada di dalam acme.sh, Anda dapat melihat Pull Request-nya di sini.\nJika itu digabung (merge) dan bekerja dengan baik ketika dicoba, maka saya akan menyederhanakan tutorial di bawah ini dengan memakai Deploy Hook saja untuk memasangkan sertifikat TLS-nya ketimbang cara manual seperti di bawah ini.\nSekarang Anda tinggal memasang sertifikatnya saja melalui Akses API dari DirectAdmin.\nPertama-tama, Anda perlu menyimpan isi dari berkas-berkas yang diperlukannya terlebih dahulu ke dalam sebuah variabel.\nTanpa basa-basi lagi, pertama-tama, Anda perlu menavigasikan Terminal/Shell Anda ke dalam folder tempat berkas sertifikat itu disimpan dengan perintah cd terlebih dahulu. Contoh:\ncd \u0026#34;$HOME\u0026#34;/.acme.sh/domain.com Lalu, simpan isi dari berkas-berkas yang diperlukannya ke dalam sebuah variabel.\nAnda dapat menyimpannya dengan perintah berikut:\n1 2 3 4 5 6 DIRECTADMIN_SCHEME=\u0026#34;https\u0026#34; #Pilih pakai \u0026#39;https\u0026#39; atau \u0026#39;http\u0026#39; DIRECTADMIN_ENDPOINT=\u0026#34;contoh-domain.id:2222\u0026#34; DIRECTADMIN_USERNAME=\u0026#34;USERNAME_DIRECTADMIN_KAMU_DI_SINI\u0026#34; DIRECTADMIN_LOGIN_KEY=\u0026#34;LOGIN_KEY_KAMU_DI_SINI\u0026#34; DIRECTADMIN_PLAIN_FULLCHAIN=\u0026#34;$(sed \u0026#39;s/$/\\\\n/\u0026#39; fullchain.cer | tr -d \u0026#39;\\n\u0026#39;)\u0026#34; DIRECTADMIN_PLAIN_KEY=\u0026#34;$(sed \u0026#39;s/$/\\\\n/\u0026#39; domain.com.key | tr -d \u0026#39;\\n\u0026#39;)\u0026#34; Atau, di bawah ini jika Anda ingin cara lain:\n1 2 3 4 5 6 DIRECTADMIN_SCHEME=\u0026#34;https\u0026#34; #Pilih pakai \u0026#39;https\u0026#39; atau \u0026#39;http\u0026#39; DIRECTADMIN_ENDPOINT=\u0026#34;contoh-domain.id:2222\u0026#34; DIRECTADMIN_USERNAME=\u0026#34;USERNAME_DIRECTADMIN_KAMU_DI_SINI\u0026#34; DIRECTADMIN_LOGIN_KEY=\u0026#34;LOGIN_KEY_KAMU_DI_SINI\u0026#34; DIRECTADMIN_PLAIN_FULLCHAIN=\u0026#34;$(awk -v ORS=\u0026#34;\\\\\\n\u0026#34; \u0026#39;1\u0026#39; fullchain.cer)\u0026#34; DIRECTADMIN_PLAIN_KEY=\u0026#34;$(awk -v ORS=\u0026#34;\\\\\\n\u0026#34; \u0026#39;1\u0026#39; domain.com.key)\u0026#34; Atau, di bawah ini jika Anda menggunakan fish sebagai Shell:\n1 2 3 4 5 6 set DIRECTADMIN_SCHEME \u0026#34;https\u0026#34; #Pilih pakai \u0026#39;https\u0026#39; atau \u0026#39;http\u0026#39; set DIRECTADMIN_ENDPOINT \u0026#34;contoh-domain.id:2222\u0026#34; set DIRECTADMIN_USERNAME \u0026#34;USERNAME_DIRECTADMIN_KAMU_DI_SINI\u0026#34; set DIRECTADMIN_LOGIN_KEY \u0026#34;LOGIN_KEY_KAMU_DI_SINI\u0026#34; set DIRECTADMIN_PLAIN_FULLCHAIN (sed \u0026#39;s/$/\\\\\\n/\u0026#39; fullchain.cer | tr -d \u0026#39;\\n\u0026#39;) set DIRECTADMIN_PLAIN_KEY (sed \u0026#39;s/$/\\\\\\n/\u0026#39; domain.com.key | tr -d \u0026#39;\\n\u0026#39;) Silakan ubah direktori, nama berkas dan nilai variabel di atas sesuai dengan kredensial DirectAdmin dan sertifikat TLS yang tersimpan di dalam perangkat Anda.\nSelain nilai variabelnya, Anda juga bisa bebas menggantikan nama variabelnya sesuka hati, misalnya variabel DIRECTADMIN_PLAIN_FULLCHAIN diubah menjadi PLAIN_FULLCHAIN, atau FULLCHAIN, atau apa saja, asal dapat digunakan kembali variabel tersebut.\nVariabel DIRECTADMIN_ENDPOINT adalah alamat domain/IP beserta port yang kamu gunakan untuk login ke dalam DirectAdmin, ini bisa Anda dapatkan di dalam halaman billing dari hostingnya, di pesan surel dari hosting Anda mengenai informasi login-nya, atau bisa juga diakses melalui domain yang Anda hubungkan ke server hostingnya dengan menambahkan port 2222 (cth. contoh-domain:2222).\nSetelah memasukkannya ke dalam variabel, tinggal panggil saja API-nya dengan perintah berikut:\n1 2 3 4 curl -s \\ -H \u0026#34;Content-Type: application/json\u0026#34; \\ -d \u0026#34;{\\\u0026#34;domain\\\u0026#34;: \\\u0026#34;ALAMAT_DOMAIN_KAMU_DI_SINI\\\u0026#34;, \\\u0026#34;action\\\u0026#34;:\\\u0026#34;save\\\u0026#34;, \\\u0026#34;type\\\u0026#34;: \\\u0026#34;paste\\\u0026#34;, \\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$DIRECTADMIN_PLAIN_FULLCHAIN\\n$DIRECTADMIN_PLAIN_KEY\\n\\\u0026#34;}\u0026#34; \\ \u0026#34;$DIRECTADMIN_SCHEME://$DIRECTADMIN_USERNAME:$DIRECTADMIN_LOGIN_KEY@$DIRECTADMIN_ENDPOINT/CMD_API_SSL?json=yes\u0026#34; Atau, gunakan perintah berikut ini jika Anda ingin memanggilnya dalam satu baris saja:\ncurl -sH \u0026#34;Content-Type: application/json\u0026#34; -d \u0026#34;{\\\u0026#34;domain\\\u0026#34;: \\\u0026#34;ALAMAT_DOMAIN_KAMU_DI_SINI\\\u0026#34;, \\\u0026#34;action\\\u0026#34;:\\\u0026#34;save\\\u0026#34;, \\\u0026#34;type\\\u0026#34;: \\\u0026#34;paste\\\u0026#34;, \\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$DIRECTADMIN_PLAIN_FULLCHAIN\\n$DIRECTADMIN_PLAIN_KEY\\n\\\u0026#34;}\u0026#34; \u0026#34;$DIRECTADMIN_SCHEME://$DIRECTADMIN_USERNAME:$DIRECTADMIN_LOGIN_KEY@$DIRECTADMIN_ENDPOINT/CMD_API_SSL?json=yes\u0026#34; Ganti ALAMAT_DOMAIN_KAMU_DI_SINI menjadi alamat \u0026ldquo;Domain\u0026rdquo; yang ada di DirectAdmin yang ingin kamu pasangkan sertifikatnya. ?json=yes pada akhir alamat URL di atas berfungsi agar keluaran ditampilkan sebagai JSON, Anda dapat menghapusnya agar keluaran yang ditampilkan adalah URI yang dikodekan (URI Encoded).\nJika Anda ingin memasangkan sertifikatnya untuk subdomain, maka Anda perlu menambahkan subdomain tersebut ke dalam \u0026ldquo;Domain\u0026rdquo; di DirectAdmin-nya (Bukan ke dalam \u0026ldquo;Subdomain Management\u0026rdquo; yah).\nJika sukses, maka akan tampil pesan seperti di bawah ini jika ?json=yes tidak dihapus:\n{ \u0026#34;result\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;success\u0026#34;: \u0026#34;Certificate and Key Saved.\u0026#34; } Atau, di bawah ini jika Anda menghapus ?json=yes:\nerror=0\u0026amp;text=Certificate%20and%20Key%20Saved%2E\u0026amp;details=\u0026amp; Yap, tidak ada rincian lebih lanjut, hanya pesan itu saja yang tampil, tapi jika tidak berhasil maka pesannya tidak seperti di atas, melainkan pesan galat yang berbeda-beda tergantung penyebabnya.\nNah, gimana? Cukup mudah, bukan? Jika Anda berhasil memasang sertifikat TLS di DirectAdmin melalui akses API-nya dan tidak ada penyedia lain, maka Anda hanya perlu membuat sebuah skrip Shell agar SSL bisa diperbarui secara otomatis atau mungkin Anda perlu mempelajari Konfigurasi acme.sh untuk Domain tertentu terlebih dahulu sebelum itu.\nLainnya Jika Anda menggunakan penyedia hosting selain Netlify (seperti GitHub Pages, Vercel, Surge.sh, Render.com), kontrol panel untuk hosting selain cPanel dan DirectAdmin (seperti Virtualmin/Webmin, Webuzo, CyberPanel, aaPanel, CWP, Kloxo-MR, InterWorx, dll) atau menggunakan penyedia CDN selain Bunny CDN (seperti Cloudflare, Fastly, AWS CloudFront, Akamai, Edgio, SwiftServe, dll), mohon maaf di sini belum tersedia.\nKenapa? Karena setiap penyedia dan perangkat lunak mempunyai cara yang berbeda untuk memanggil API-nya dan mengirim datanya, kalau saya ingin mengetahui cara kerjanya, maka saya harus mencobanya terlebih dahulu, oleh karena itu saya belum (atau mungkin tidak) bisa menyediakan semuanya di sini.\nAnda dapat membaca dan mempelajari masing-masing dokumentasinya sebagai referensi dalam memasang sertifikat TLS di penyedia lain. Bila berkenan, Anda juga dapat membantu saya menambahkan penyedianya di sini dengan berkomentar di dalam kolom komentar yang tersedia.\nAtau, Anda dapat menggunakan Deploy Hook dari acme.sh untuk memasangkan sertifikat TLS ke berbagai layanan yang didukung olehnya, silakan baca halaman dokumentasinya untuk lebih lanjut.\nKonfigurasi acme.sh untuk Domain tertentu Salah satu kelebihan acme.sh selain ringan dan kompatibel di hampir semua sistem operasi berbasis *nix adalah mampu memberikan fleksibilitas bagi Anda untuk mengatur perkakasnya dan mengatur apa yang dilakukan baik sebelum dan sesudah mengeksekusi perkakas tersebut melalui konfigurasinya.\nKonfigurasi tersebut dapat Anda lakukan untuk alamat domain tertentu, sehingga tidak semua domain yang menggunakan acme.sh terkena efeknya. Hal ini akan menjadi kelebihan tersendiri sejak domain dan subdomainnya dapat menggunakan Hosting/CDN yang berbeda-beda.\nJadi, sebelum membuat/menentukan skrip untuk me-renew/memperbarui sertifikat TLS, mungkin ada baiknya Anda pelajari terlebih dahulu cara mengkonfigurasi acme.sh untuk alamat domain tertentu di sini.\nMengubah opsi yang sudah ada Anda dapat mengubah opsi-opsi yang sudah ada di dalam berkas konfigurasinya.\nUntuk itu, lihatlah isi dari berkas domain.com.conf terlebih dahulu, biasanya berkas tersebut ada di dalam folder $HOME/.acme.sh/domain.com. Ganti domain.com dengan alamat domain Anda.\nContoh isi dari berkas domain.com.conf adalah sebagai berikut:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ cat \u0026#34;$HOME/.acme.sh/domain.com/domain.com.conf\u0026#34; Le_Domain=\u0026#39;domain.com\u0026#39; Le_Alt=\u0026#39;*.domain.com\u0026#39; Le_Webroot=\u0026#39;dns_cf\u0026#39; Le_PreHook=\u0026#39;\u0026#39; Le_PostHook=\u0026#39;\u0026#39; Le_RenewHook=\u0026#39;\u0026#39; Le_API=\u0026#39;https://acme.zerossl.com/v2/DV90\u0026#39; Le_Keylength=\u0026#39;ec-384\u0026#39; Le_OrderFinalize=\u0026#39;https://acme.zerossl.com/v2/DV90/order/kyxxxxxxxxxxxxxxxxxxxx/finalize\u0026#39; Le_LinkOrder=\u0026#39;https://acme.zerossl.com/v2/DV90/order/kyxxxxxxxxxxxxxxxxxxxx\u0026#39; Le_LinkCert=\u0026#39;https://acme.zerossl.com/v2/DV90/cert/20xxxxxxxxxxxxxxxxxxxx\u0026#39; Le_CertCreateTime=\u0026#39;1625708943\u0026#39; Le_CertCreateTimeStr=\u0026#39;Thu Jul 8 01:49:03 UTC 2021\u0026#39; Le_NextRenewTimeStr=\u0026#39;Mon Sep 6 01:49:03 UTC 2021\u0026#39; Le_NextRenewTime=\u0026#39;1630806543\u0026#39; Kalau Anda ingin mengubahnya, silakan ubah/edit isi dari berkas tersebut dengan Editor Teks favorit Anda.\nDari semua opsi, yang boleh diubah adalah nilai dari opsi Le_PreHook, Le_PostHook, dan Le_RenewHook saja.\nBagaimana dengan lainnya? Untuk lainnya saya sarankan agar Anda tidak mengubahnya, apalagi Le_Domain, Le_Alt, Le_API, Le_OrderFinalize, Le_LinkOrder, dan Le_LinkCert, kecuali jika Anda memahami apa yang sedang Anda lakukan dan siap menerima risikonya.\nJadi, saya bahas yang boleh diubah saja. Berikut adalah penjelasan mengenai nilai dari opsi di atas:\nLe_PreHook: Opsi ini menentukan perintah yang akan dieksekusi sebelum perkakas acme.sh menjalankan tugasnya untuk menerbitkan/memperbarui sertifikat TLS.\nNilai baku untuk opsi ini adalah tidak ada, tapi jika Anda menerbitkan sertifikatnya dibarengi parameter --pre-hook, maka opsi tersebut akan di-encode menjadi Base64 dan terisi secara otomatis\nLe_PostHook: Opsi ini menentukan perintah yang akan dieksekusi setelah perkakas acme.sh menjalankan tugasnya untuk menerbitkan/memperbarui sertifikat TLS, tidak peduli apakah berhasil atau gagal\nNilai baku untuk opsi ini adalah tidak ada, tapi jika Anda menerbitkan sertifikatnya dibarengi parameter --post-hook, maka opsi tersebut akan di-encode menjadi Base64 dan terisi secara otomatis\nLe_RenewHook: Opsi ini menentukan perintah yang akan dieksekusi setelah perkakas acme.sh berhasil memperbarui sertifikat TLS-nya\nNilai baku untuk opsi ini adalah tidak ada, tapi jika Anda menerbitkan sertifikatnya dibarengi parameter --renew-hook, maka opsi tersebut akan di-encode menjadi Base64 dan terisi secara otomatis\nKetiga opsi tersebut dapat Anda isi dengan perintah itu langsung, contoh berikut ini adalah ketika Anda ingin menyetak teks Halo, Dunia! di sebelum perkakas acme.sh menjalankan tugasnya:\nLe_PreHook=\u0026#39;echo \u0026#34;Halo, Dunia!\u0026#34;\u0026#39; Namun, jika perintah yang ingin Anda jalankan itu mengandung multibaris atau lebih dari satu baris perintah, saya sarankan buat saja berkas Shell di dalam direktori di mana berkas domain.com.conf itu berada (cth. di dalam direktori $HOME/.acme.sh/domain.com).\nSetelah itu, ubah nilai dari opsi Le_RenewHook, Le_PreHook atau Le_PostHook menjadi cara Anda menjalankan berkas skripnya.\nAnda dapat tentukan sendiri perintah untuk menjalankan skrip pemasangan sertifikatnya, seperti sh deploy.sh, bash deploy.sh, ./deploy.sh atau env sh deploy.sh atau memakai perintah yang lebih lengkap seperti /usr/bin/env sh deploy.sh juga tidak masalah, meski saya lebih menyarankan agar menggunakan yang lebih pendek biar gak repot.\nAtau, jika Anda menggunakan Termux, disarankan menggunakan perintah yang lebih lengkap seperti berikut:\n/data/data/com.termux/files/usr/bin/env sh deploy.sh Walau itu sebenarnya tidak wajib, jadi Anda tetap bisa menggunakan perintah yang biasa Anda gunakan kecuali /usr/bin/env sh deploy.sh karena itu tidak bisa dieksekusikan saat memperbarui sertifikat di dalam Termux.\nNamun perlu diingat, perintah yang dieksekusi atau dijalankan melalui acme.sh akan menggunakan direktori di mana berkas domain.com.conf itu berada sebagai direktori kerjanya.\nJadi, segala aktivitas masukkan/keluaran (input atau output) pada penyimpanan yang telah Anda lakukan saat perintah tersebut dijalankan (cth. membuat sebuah berkas atau folder, melihat isi dari berkas dengan perintah cat, dll) tanpa menyertakan direktori lengkapnya, maka Anda akan melakukannya di dalam direktori $HOME/.acme.sh/domain.com/.\nSetelah perintah tersebut berhasil dieksekusi, maka nilai opsi yang telah Anda ubah sebelumnya akan menjadi seperti berikut:\n__ACME_BASE64__START_\u0026lt;BARIS_PERINTAH_DALAM_BENTUK_BASE64\u0026gt;__ACME_BASE64__END_ \u0026lt;BARIS_PERINTAH_DALAM_BENTUK_BASE64\u0026gt; adalah Base64 dari perintah yang sebelumnya Anda terapkan di dalam opsi tersebut. Ya, acme.sh secara otomatis meng-encode perintah yang telah Anda tentukan menjadi Base64.\nMenambahkan opsi di dalam konfigurasi Selain mengubah ketiga opsi di atas, Anda juga dapat menambahkan opsi-opsi lain di dalam konfigurasinya, berikut adalah salah satu opsinya beserta penjelasannya:\nLe_ForceNewDomainKey: Opsi ini bertujuan agar acme.sh membuat kunci pribadi (Private key) baru setiap pembaruan sertifikat. Nilai yang diterima hanya dua, yakni 1 untuk mengaktifkan dan 0 untuk menonaktifkan.\nContoh: Le_ForceNewDomainKey='1' untuk mengaktifkan pembuatan kunci setiap pembaruan sertifikat.\nNilai baku untuk opsi ini meskipun tidak disetel adalah 0, yang berarti secara baku acme.sh tidak membuat kunci pribadi baru setiap pembaruan sertifikat\nLe_RealCertPath: Opsi ini bertujuan untuk menyalinkan berkas sertifikatnya setelah sertifikat berhasil diperbarui, isi opsi tersebut dengan menentukan lokasi mana berkas sertifikat itu akan disalinkan, beserta menentukan nama berkasnya juga.\nContoh: Le_RealCertPath='/etc/ssl-certificates/domain.com.cer'\nJika Anda mengisinya seperti contoh di atas, maka saat pembaruan sertifikat nanti, berkas tersebut akan disalinkan ke dalam lokasi /etc/ssl-certificates sebagai berkas dengan nama domain.com.cer.\nNilai baku untuk opsi ini adalah tidak ada, tapi jika Anda menerbitkan sertifikatnya dibarengi dengan parameter --cert-file, maka opsi tersebut akan terisi secara otomatis sesuai dengan nilai dari parameternya.\nIni artinya, secara baku acme.sh tidak menyalinkan berkas sertifikatnya ke mana pun\nLe_RealCACertPath: Sama seperti Le_RealCertPath, hanya saja opsi ini ditujukan untuk berkas sertifikat penengah atau sertifikat CA-nya (atau berkas yang biasanya dinamai dengan ca.cer).\nNilai baku untuk opsi ini adalah tidak ada, tapi akan terisi secara otomatis jika Anda menerbitkan sertifikatnya dibarengi dengan parameter --ca-file\nLe_RealKeyPath: Sama seperti Le_RealCertPath dan Le_RealKeyPath, hanya saja opsi ini ditujukan untuk berkas kunci pribadinya (atau berkas yang biasanya dinamai dengan domain.com.key).\nNilai baku untuk opsi ini adalah tidak ada, tapi akan terisi secara otomatis jika Anda menerbitkan sertifikatnya dibarengi dengan parameter --key-file\nLe_RealFullChainPath: Sama seperti Le_RealCertPath, Le_RealKeyPath dan Le_RealKeyPath, hanya saja opsi ini ditujukan untuk berkas sertifikat dengan rantai penuhnya (atau berkas yang biasanya dinamai dengan fullchain.cer).\nNilai baku untuk opsi ini adalah tidak ada, tapi akan terisi secara otomatis jika Anda menerbitkan sertifikatnya dibarengi dengan parameter --fullchain-file\nLe_ReloadCmd: Opsi ini bertujuan agar acme.sh mengeksekusi sebuah skrip setelah proses menyalinkan berkas-berkas yang diperlukan ke lokasi tertentu itu selesai jika ada opsi Le_RealCertPath, Le_RealCACertPath, Le_RealKeyPath, atau/dan Le_RealFullChainPath di dalam konfigurasi.\nAnda dapat mengisi opsi ini dengan perintah yang ingin Anda eksekusikan, tapi biasanya perintah yang diisi adalah perintah untuk memuat ulang konfigurasi perangkat lunak server (termasuk Web Server), sesuai nama opsinya.\nContoh: Le_ReloadCmd='systemctl reload nginx'\nJika Anda mengisinya seperti contoh di atas, maka setelah pembaruan sertifikat, lebih tepatnya setelah berkas-berkas yang diperlukan tadi telah disalin ke lokasi tertentu, maka acme.sh akan secara otomatis menjalankan perintah systemctl reload nginx untuk memuat ulang konfigurasi NGINX.\nSetelah dieksekusi, nilai dari opsi tersebut akan di-encode ke dalam Base64, sama seperti skrip Renew Hook.\nBedanya dengan Renew Hook (Le_RenewHook) adalah skala prioritas dan peruntukannya, skrip Reload Command (Le_ReloadCmd) akan dijalankan lebih dulu dan akan dijalankan setelah proses menyalinkan berkasnya selesai, skrip tersebut untuk memuat ulang konfigurasi perangkat lunak server.\nSedangkan skrip Renew Hook akan dijalankan setelahnya dan peruntukannya lebih luas daripada itu\nLe_DNSSleep: Opsi ini bertujuan agar acme.sh menunggu selama beberapa detik setelah DNS record ditambahkan/diubah dan sebelum verifikasi oleh CA sampai DNS benar-benar terpropagasi. Tujuannya tentu saja agar proses verifikasi dari CA berjalan tanpa kendala hanya karena tidak adanya catatan yang diminta oleh CA.\nAnda hanya dapat mengisi opsi ini hanya dengan angka (disarankan diapit dengan tanda kutip), tidak bisa dengan lainnya. Opsi yang Anda isi itu menentukan durasi berapa detik acme.sh akan menunggu setelah catatan DNS berhasil ditambahkan/diubah.\nNilai baku dari opsi ini tidak ada sama sekali, tapi akan terisi secara otomatis jika Anda menggunakan parameter --dnssleep saat menerbitkan atau pun memperbarui sertifikat.\nContoh: Le_DNSSleep='300'\nJika Anda mengisinya seperti contoh di atas, maka acme.sh akan menunggu selama 300 detik (5 menit) setelah berhasil menambahkan/mengubah catatan DNS-nya dan sebelum proses verifikasi dari CA\nKredensial Penyedia DNS kamu: Anda dapat menyimpan kredensial dari penyedia DNS yang Anda gunakan di konfigurasi khusus domain ini.\nJika Anda adalah pengguna Cloudflare, Anda dapat menyimpan variabel CF_Token, CF_Account_ID dan CF_Zone_ID beserta nilainya di dalam konfigurasi tersebut tanpa perlu meletakkannya lagi di dalam berkas ~/.acme.sh/account.conf, sehingga menjadi lebih spesifik.\nMungkin hal itu berlaku juga bagi pengguna layanan penyedia DNS lainnya, seperti Netlify DNS yang hanya perlu menyimpan NETLIFY_ACCESS_TOKEN saja\nYa udah, itu saja dulu mengenai opsi-opsinya, di bawah ini membahas contoh kasusnya.\nContoh Kasus Konfigurasi Menjalankan sebuah Berkas Skrip setelah Memperbarui Sertifikat TLS Si Udin membuat sebuah berkas skrip yang bernama deploy.sh untuk memperbarui TLS pada domain www.si-udin.com miliknya yang di-hosting menggunakan Netlify dan dia ingin agar skrip tersebut dieksekusi setelah sertifikat TLS sukses diperbarui.\nIsi berkas skripnya sebagai berikut:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/usr/bin/env sh # Skrip ini saya lisensikan di bawah lisensi \u0026#34;The Unlicense\u0026#34; (https://unlicense.org/) # Silakan kembangkan sendiri kode skrip di bawah ini PLAIN_CERT=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; www.si-udin.com.cer)\u0026#34; PLAIN_KEY=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; www.si-udin.com.key)\u0026#34; PLAIN_CA=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; ca.cer)\u0026#34; NETLIFY_ACCESS_TOKEN=\u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; NETLIFY_SITE_ID=\u0026#34;www.si-udin.com\u0026#34; curl -s \\ -H \u0026#34;Authorization: Bearer $NETLIFY_ACCESS_TOKEN\u0026#34; \\ -H \u0026#34;content-type: application/json\u0026#34; \\ -d \u0026#34;{\\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$PLAIN_CERT\\\u0026#34;, \\\u0026#34;key\\\u0026#34;: \\\u0026#34;$PLAIN_KEY\\\u0026#34;, \\\u0026#34;ca_certificates\\\u0026#34;: \\\u0026#34;$PLAIN_CA\\\u0026#34;}\u0026#34; \\ \u0026#34;https://api.netlify.com/api/v1/sites/$NETLIFY_SITE_ID/ssl\u0026#34; Kenapa perintah di atas mengarahkan kepada berkasnya langsung? Kenapa tidak ditentukan direktorinya? Itu karena suatu saat skrip tersebut dijalankan, maka direktori kerjanya adalah $HOME/.acme.sh/www.si-udin.com yang di dalamnya ada berkas www.si-udin.com.cer, www.si-udin.com.key dan ca.cer dan itu diperlukan bagi Netlify, serta itu merupakan tempat berkas www.si-udin.com.conf berada, yang gunanya untuk mengkonfigurasi supaya skrip tersebut bisa digunakan.\nSehingga, dia tidak perlu menentukan direktorinya lagi secara absolut, dia cuma perlu menuliskan nama berkasnya saja.\nSetelah pembuatan skripnya selesai, ia simpan berkas tersebut, berkas skrip tersebut ia simpan di dalam direktori $HOME/.acme.sh/www.si-udin.com/, sehingga berkas tersebut berdekatan dengan berkas konfigurasinya, yakni www.si-udin.com.conf.\nSetelah menyimpannya, ia perlu melakukan konfigurasi supaya skripnya bisa dijalankan saat acme.sh sukses memperbarui sertifikatnya. Untuk melakukan konfigurasi, maka ia perlu mengubah isi dari berkas $HOME/.acme.sh/www.si-udin.com/www.si-udin.com.conf.\nDi dalam berkas tersebut ada banyak opsi yang kosong, termasuk Le_PreHook, Le_PostHook, dan Le_RenewHook. Karena ia mau menjalankan skrip tersebut saat sertifikat TLS sukses diperbarui, jadi ia memilih untuk mengisi opsi Le_RenewHook ketimbang opsi lain.\nNah, dia isi itu dengan /usr/bin/env sh deploy.sh. Jadi, opsinya akan menjadi seperti berikut:\nLe_RenewHook=\u0026#39;/usr/bin/env sh deploy.sh\u0026#39; Setelah itu, ia simpan berkas tersebut dan beberapa bulan kemudian, acme.sh memperbarui sertifikat TLS tersebut dan berhasil, lalu skrip tersebut akhirnya berhasil dijalankan dan www.si-udin.com telah menggunakan sertifikat yang lebih baru.\nSetelah skrip tersebut berhasil dijalankan dan melihat lagi konfigurasinya, ia melihat kalau nilai dari opsi Le_RenewHook itu berubah menjadi seperti berikut:\nLe_RenewHook=\u0026#39;__ACME_BASE64__START_L3Vzci9iaW4vZW52IHNoIGRlcGxveS5zaA==__ACME_BASE64__END_\u0026#39; Itu artinya, perintah tersebut telah dikonversikan menjadi Base64 secara otomatis oleh acme.sh saat perintah tersebut dieksekusi.\nTeks L3Vzci9iaW4vZW52IHNoIGRlcGxveS5zaA== di atas adalah Base64 dari perintah /usr/bin/env sh deploy.sh.\nNah, sekarang Anda sudah paham, kan? Kalau sudah paham, silakan lanjut ke bagian selanjutnya.\nMembuat Skrip untuk me-renew Sertifikat TLS Setelah mempelajari di bagian-bagian sebelumnya, sekarang tinggal membuat sertifikat TLS ini dapat diperbarui/di-renew secara otomatis. Bagaimana caranya?\nCaranya Anda perlu membuat sebuah skrip terlebih dahulu agar sertifikat TLS dapat diperbarui. Contoh skripnya sebagai berikut:\n#!/usr/bin/env sh # Skrip ini saya lisensikan di bawah lisensi \u0026#34;The Unlicense\u0026#34; (https://unlicense.org/) # Silakan kembangkan sendiri kode skrip di bawah ini PLAIN_CERT=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; www.si-udin.com.cer)\u0026#34; PLAIN_KEY=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; www.si-udin.com.key)\u0026#34; PLAIN_CA=\u0026#34;$(awk \u0026#39;{printf \u0026#34;%s\\\\n\u0026#34;, $0}\u0026#39; \u0026lt; ca.cer)\u0026#34; NETLIFY_ACCESS_TOKEN=\u0026#34;ACCESS_TOKEN_KAMU_DI_SINI\u0026#34; NETLIFY_SITE_ID=\u0026#34;domain.com\u0026#34; curl -s \\ -H \u0026#34;Authorization: Bearer $NETLIFY_ACCESS_TOKEN\u0026#34; \\ -H \u0026#34;content-type: application/json\u0026#34; \\ -d \u0026#34;{\\\u0026#34;certificate\\\u0026#34;: \\\u0026#34;$PLAIN_CERT\\\u0026#34;, \\\u0026#34;key\\\u0026#34;: \\\u0026#34;$PLAIN_KEY\\\u0026#34;, \\\u0026#34;ca_certificates\\\u0026#34;: \\\u0026#34;$PLAIN_CA\\\u0026#34;}\u0026#34; \\ \u0026#34;https://api.netlify.com/api/v1/sites/$NETLIFY_SITE_ID/ssl\u0026#34; Intinya, isi skrip tersebut adalah perintah-perintah untuk memasang sertifikat pada beberapa layanan yang saya bahas di bagian sebelumnya. Shebang bisa kamu ganti, kalau di Termux disarankan untuk menggantinya menjadi barisan berikut:\n#!/data/data/com.termux/files/usr/bin/env sh Kalau sudah selesai, simpanlah berkas tersebut di dalam direktori domain pada acme.sh (cth. $HOME/.acme.sh/domain.com) sebagai berkas Shell.\nAnda bisa gunakan konfigurasi dari perkakas acme.sh agar dia mengeksekusi baris perintah setelah acme.sh berhasil memperbarui sertifikatnya untuk domain tertentu. Untuk selengkapnya, bisa Anda pelajari itu di bagian sebelumnya, beserta salah satu contoh kasusnya.\nSetelah melakukan konfigurasi, tinggal perlu menunggu sampai acme.sh berhasil memperbarui sertifikatnya untuk Anda. Pastikan Anda benar-benar bisa mengotomatiskannya, caranya bisa lanjut ke bagian selanjutnya.\nOtomatiskan pembaruan sertifikat Mengotomatiskan pembaruan sertifikat adalah wajib hukumnya karena masa berlaku sertifikat hanya 90 hari dan akan terus berkurang, kalau Anda tidak mampu mengotomatiskannya ya berarti Anda harus siap capek memperbarui itu semua secara manual setiap 90 hari sekali atau bahkan kurang dari itu.\nCara mengotomatiskan yang bisa Anda pilih ada 2, yakni sebagai berikut\nMenggunakan Systemd Timer Bagi pengguna yang sistemnya tidak terinstal Cron job atau sesimpel gak mau menggunakannya, maka Systemd Timer bisa menjadi pilihan alternatif, atau bahkan pengganti dari Cron job itu sendiri.\nSelain itu, cara ini lebih saya rekomendasikan jika Anda adalah pengguna Systemd di dalam sistem operasi Anda ketimbang lainnya, seperti karena tiap tugas itu memiliki berkasnya tersendiri yang bisa disebut unit timer (gak kayak Cron Jobs yang semuanya di dalam satu berkas), setiap tugas itu ada catatannya tersendiri sehinga mempermudah debugging, tercatat juga ke dalam jurnal Systemd, dll.\nLangkah ke-1: Untuk memulainya, Anda perlu membuat terlebih dahulu layanan Systemd-nya. Pertama-tama, buatlah terlebih dahulu folder-nya dengan perintah berikut:\nmkdir -p ~/.config/systemd/user Loh, kok \u0026ldquo;user\u0026rdquo;? Karena di artikel ini membahas acme.sh yang terinstal di dalam lingkungan pengguna, \u0026lsquo;kan tidak memakai sudo pas instal ataupun di root, jadi layanannya harus dibuat di lingkungan pengguna biasa. Kalau ternyata kamu instalnya di lingkungan root dan mau jalan di lingkungan itu, ya berarti kamu langsung ke direktori /etc/systemd/system/ aja.\nSetelah itu buatlah berkas layanannya di dalam folder tersebut, sebut saja namanya acme.sh.service dan isi berkasnya sebagai berikut:\n[Unit] Description=acme.sh service After=network-online.target nss-lookup.target [Service] Type=oneshot SyslogIdentifier=acme.sh ExecStart=/lokasi/ke/acme.sh --cron --home /lokasi/ke/folder/acme.sh Ganti /lokasi/ke/acme.sh dengan lokasi ke berkas acme.sh itu berada, biasanya di /home/username/.acme.sh/acme.sh.\nSedangkan /lokasi/ke/folder/acme.sh dengan lokasi perkakas acme.sh itu berada, contoh: /home/username/.acme.sh atau seperti yang kamu tahu sendiri.\nSimpan berkas tersebut, lalu silakan ke langkah selanjutnya.\nLangkah ke-2 (Opsional): Kamu bisa nonaktifkan timestamp di dalam acme.sh, supaya pas debugging tidak muncul waktunya secara ganda. Caranya kamu tinggal tambahkan barisan berikut di dalam berkas account.conf yang terletak di direktori acme.sh:\nNO_TIMESTAMP=\u0026#39;1\u0026#39; Simpan konfigurasinya, lalu maju ke langkah selanjutnya.\nLangkah ke-3: Muat ulang daemon Systemd terlebih dahulu dengan perintah berikut:\nsystemctl --user daemon-reload Setelah itu, lakukan uji coba terlebih dahulu layanan Systemd yang sudah dibuat tadi dengan perintah berikut:\nsystemctl --user start acme.sh Lalu, lihat hasilnya dengan perintah berikut:\njournalctl --user -u acme.sh.service # Atau (salah satu, dua-duanya juga gak masalah) systemctl --user status acme.sh Kalau di lingkungan root gimana? Ya tinggal hapus aja parameter --user-nya.\nEkspektasi keluaran yang muncul adalah keluaran dari acme.sh itu sendiri dengan berbagai macam tambahan dari Systemd dan jangan kaget kalau ternyata muncul tulisan Active: inactive (dead) pas lihat statusnya, ya artinya layanan tersebut memang sudah tidak aktif.\nKenapa kok begitu? Ya karena memang jenisnya oneshot, yakni cuma sekali jalan aja, \u0026lsquo;kan nanti mau dijalanin sama timer-nya jadinya masih sesuai ekspektasi.\nKalau sudah seperti itu, ayo langsung ke langkah selanjutnya.\nGak perlu di-enable ini? Ya gak perlulah, pake nanya 🙄\nLangkah ke-4 Buatlah sebuah berkas timer di dalam direktori yang sama kayak tadi, yakni ~/.config/systemd/user yang bernama sama cuma beda ekstensi aja, yakni acme.sh.timer. Isinya seperti berikut:\n[Unit] Description=acme.sh timer unit [Timer] OnCalendar=00/2:00 RandomizedDelaySec=30m #AccuracySec=30m Persistent=true [Install] WantedBy=timers.target Simpan terlebih dahulu berkas tersebut.\nSeperti yang kamu lihat di atas, bahwa dengan setelan di atas, maka acme.sh akan berjalan pada setiap 2 jam sekali pada pukul dengan kelipatan 2 di menit ke-0 (seperti pukul 00:00, 02:00, 04:00, 06:00, 08:00, 10:00, 12:00, 14:00, dst).\nKenapa bisa seperti itu? Di kata kunci atau opsi OnCalendar itu saya isikan 00/2:00 yang artinya menggunakan format hh/r:mm, arti dari formatnya sebagai berikut:\nhh artinya waktu pukul berapa, saya isi 00 r itu artinya pengulangan yang nilainya adalah 2, yang berarti nilai hh ditambah semua kelipatan dari nilai pengulangan yang cocok (cth. 00, 02, 04, 06, 08, 10, 12, 14, 16, dan seterusnya) mm artinya berapa menit tiap jam itu, kalau misalnya diisi 30 maka timer akan dijalankan mulai dari pukul 00:30, 02:30, dst Kamu bisa menggantikan 00/2:00 di atas menjadi hourly agar dapat dijalankan setiap jam, daily agar dijalankan setiap hari atau weekly agar dijalankan setiap minggu.\nKamu juga bisa menganalisa ekspektasi bahwa layanan tersebut akan dijalankan pada pukul berapa aja dengan perintah berikut:\n$ systemd-analyze calendar 00/2:00 Original form: 00/2:00 Normalized form: *-*-* 00/2:00:00 Next elapse: Wed 2025-07-02 16:00:00 WIB (in UTC): Wed 2025-07-02 09:00:00 UTC From now: 1h 6min left Kamu juga bisa tambahkan parameter --iterations=\u0026lt;angka\u0026gt; untuk perulangan dengan contoh seperti berikut beserta keluarannya:\n$ systemd-analyze calendar --iterations=5 00/2:00 Original form: 00/2:00 Normalized form: *-*-* 00/2:00:00 Next elapse: Wed 2025-07-02 16:00:00 WIB (in UTC): Wed 2025-07-02 09:00:00 UTC From now: 1h 7min left Iteration #2: Wed 2025-07-02 18:00:00 WIB (in UTC): Wed 2025-07-02 11:00:00 UTC From now: 3h 7min left Iteration #3: Wed 2025-07-02 20:00:00 WIB (in UTC): Wed 2025-07-02 13:00:00 UTC From now: 5h 7min left Iteration #4: Wed 2025-07-02 22:00:00 WIB (in UTC): Wed 2025-07-02 15:00:00 UTC From now: 7h left Iteration #5: Thu 2025-07-03 00:00:00 WIB (in UTC): Wed 2025-07-02 17:00:00 UTC From now: 9h left Terus apa itu RandomizedDelaySec, AccuracySec sama Persistent? Opsi-opsi tersebut memiliki fungsi yang berbeda-beda, fungsinya sebagai berikut:\nRandomizedDelaySec itu fungsinya agar menambah waktu secara acak dengan batas waktu maksimum sebelum akhirnya layanan dapat diluncurkan, untuk di kasus ini saya isi 30m yang berarti maksimum 30 menit.\nMisalnya kamu berekspektasi kalau layanan tersebut akan berjalan di pukul 02:00, kalau kamu mengaktifkan opsi ini, maka ekspektasikan kalau layanan tersebut bakal jalan di pukul 02:26:13 atau sekian, asal gak melebihi 30 menit, sesuai ketentuan\nAccuracySec itu digunakan untuk menetapkan batas waktu penundaan maksimum di mana layanan dapat diluncurkan, untuk di kasus ini saya isi dengan 30m yang artinya maksimum penundaan hanya sampai 30 menit saja dan saya komentari supaya gak aktif.\nIni tidak sama dengan opsi di atas, opsi ini tidak menambah waktu ekspektasi mengenai kapan layanan akan dijalankan, tapi justru opsi ini menambah penundaan sampai batas waktu yang ditentukan.\nNilai baku dari opsi ini adalah 1m yang artinya opsi ini tetap aktif meski tidak disetel, tapi penundaan maksimum hanya sampai 1 menit saja\nPersistent itu menerima nilai boolean, hanya bisa diisi dengan true atau false. Jika diisi true, seperti di kasus ini, maka waktu terakhir layanan dipicu oleh timer disimpan ke dalam disk.\nJika karena alasan apa pun jadwal eksekusi terlewatkan, layanan akan dijalankan segera saat timer diaktifkan kembali, asalkan dalam waktu yang telah berlalu layanan tersebut seharusnya telah dipicu setidaknya sekali.\nTentu opsi ini dapat berguna, misalnya untuk menjalankan jadwal yang terlewatkan akibat sistem dimatikan pada kali berikutnya mesin dinyalakan kembali.\nKenapa kok ditunda seperti itu? Agar layanan bisa berjalan dengan optimal dan tidak bentrok dengan tugas/layanan lainnya, kalau kamu mau lebih tepat waktu ya tinggal hapus aja opsinya, itu tidak masalah karena dua itu bukan opsi wajib.\nSudah mengaturnya? Kalau sudah, simpan berkas tersebut dan silakan ke langkah selanjutnya.\nLangkah ke-5: Aktifkan dan jalankan timer tersebut dengan perintah berikut:\nsystemctl --user enable acme.sh.timer systemctl --user start acme.sh.timer Gunakan perintah berikut untuk memastikan bahwa timer berhasil dijalankan:\nsystemctl --user status acme.sh.timer Pastikan statusnya adalah Active: active (waiting) yang artinya timer tersebut aktif sedang menunggu.\nKalau kamu mau melihat keluaran dari acme.sh di situ, ya gak bakalan muncul, karena di situ cuma timer-nya saja buat pemicu, jadi pakai perintah berikut untuk melihatnya:\nsystemctl --user status acme.sh Silakan gunakan perintah berikut untuk melihat timer yang aktif dan ekspektasi waktu layanan di jalankan:\nsystemctl --user list-timers Maka keluarannya akan seperti di bawah ini:\nNEXT LEFT LAST PASSED UNIT ACTIVATES Wed 2025-07-02 16:15:21 WIB 1h 35min Wed 2025-07-02 14:29:01 WIB 10min ago acme.sh.timer acme.sh.service 1 timers listed. Pass --all to see loaded but inactive timers, too. Seperti yang kalian lihat pada keluaran tabel di atas, NEXT di atas itu menunjukkan kapan layanan itu akan dijalankan berikutnya. Kenapa waktunya acak? Karena tadi menggunakan RandomizedDelaySec sehingga menambah waktu jalannya layanan.\nKalau pakai AccuracySec memang tidak akan nambah, tapi layanan akan mengalami penundaan terlebih dahulu untuk dijalankan setelah waktunya dijalankan.\nNah, itu saja pembahasan mengenai mengotomatiskan pembaruan sertifikat menggunakan Systemd Timer ini.\nMenggunakan Cron Job Cron job merupakan cara yang paling dikenal untuk mengotomatiskan suatu tugas di dunia *nix selain cara di atas, kalau Anda terjun ke dunia per-server-an pasti tidak asing dengan benda ini.\nSelain itu, setelah perkakas acme.sh diinstal, biasanya cron job akan otomatis terpasang untuk keperluan pembaruan sertifikat kalau ada. Jadi, sebenarnya Anda tidak perlu membuatnya lagi secara manual.\nNamun, Anda dapat mengubah jadwal dan waktu eksekusi perkakas acme.sh-nya kalau mau. Bagaimana caranya? Caranya sebagai berikut:\nEdit Crontab dengan perintah berikut: (tanpa perlu akses root ataupun memakai sudo)\ncrontab -e Saat mengedit, Anda akan menemukan sebuah Cron dengan teks yang mirip seperti berikut:\n6 0 * * * \u0026#34;/home/username/.acme.sh\u0026#34;/acme.sh --cron --home \u0026#34;/home/username/.acme.sh\u0026#34; \u0026gt; /dev/null 6 0 * * * adalah parameter Crontab yang menentukan kapan perintah tersebut dilaksanakan, 6 0 * * * artinya kalau perintah tersebut akan dilaksanakan pada pukul 00:06 pada setiap harinya. Parameter yang Anda temukan nanti mungkin berbeda-beda, jadi silakan ganti parameter tersebut sesuka hati Anda, selama masih mengikuti aturan dari Cron.\nMisalnya, kalau Anda ingin perintah tersebut dieksekusi pada menit ke-0 dan setiap jam ke-2 dari pukul 0 hingga 23, atau setiap 2 jam sekali pada pukul dengan kelipatan 2 di menit ke-0 (seperti pukul 00:00, 02:00, 04:00, 06:00, 08:00, 10:00, 12:00, 14:00, dst), maka Anda dapat menggantinya menjadi 0 */2 * * *.\nAtau, manfaatkan situs web Crontab.guru untuk membantu Anda dalam menentukan parameter pada crontab-nya.\n\u0026quot;/home/username/.acme.sh\u0026quot;/acme.sh adalah perintahnya dan seterusnya adalah parameter atau argumen dari perintah tersebut. Perintah pada crontab untuk acme.sh mungkin akan berbeda-beda, karena perbedaan nama pengguna, dll.\nUntuk \u0026gt; /dev/null-nya biarkan saja, fungsinya itu hanya membuang keluaran, karena ini dijalankan melalui Cron Job maka keluaran tidak diperlukan untuk itu, tapi Anda dapat menggantinya atau menghapusnya jika merasa tidak yakin.\nSetelah semuanya selesai, simpanlah berkas tersebut dan keluar dari editor teks yang Anda gunakan sekarang. Setelahnya, Cron Job akan dijalankan, tinggal tunggu waktunya saja agar skrip dijalankan sesuai jadwal.\nYa sudah, itu saja langkah-langkahnya.\nHal-hal lain yang dapat Anda lakukan dengan acme.sh Di sini Anda akan menjelajahi hal-hal lain yang dapat Anda lakukan melalui acme.sh, ini bukan hal yang wajib, sehingga Anda dapat lewati/akhiri saja karena ini sudah akhir artikel sebenarnya.\nBerikut di bawah ini adalah hal lain yang dapat Anda lakukan.\nMelihat Daftar Sertifikat TLS yang ada Anda dapat melihat daftar sertifikat yang ada di acme.sh dengan perintah berikut:\nacme.sh --list Keluarannya sebagai berikut:\n1 2 3 $ acme.sh --list Main_Domain KeyLength SAN_Domains CA Created Renew *.domain.com \u0026#34;ec-384\u0026#34; domain.com ZeroSSL 2022-08-11T09:42:26Z 2022-10-10T09:42:26Z Seperti yang Anda lihat, keluarannya berbentuk tabel, tapi tanpa garis. Saya jelaskan satu per satu mengenai kolomnya di bawah ini:\nMain_Domain merupakan bahasa Inggris dari \u0026ldquo;Domain Utama\u0026rdquo; dan domain utama adalah domain pertama yang Anda masukkan saat menerbitkan sertifikat tadi KeyLength merupakan kunci dan ukuran yang digunakan sekarang, di tabel tersebut menunjukkan ec-384 yang berarti sertifikat tersebut diterbitkan dengan ECC/ECDSA sebagai algoritma kunci publik yang berukuran P-384 SAN_Domains merupakan domain SAN (Subject Alternative Names) dan singkat kata ini adalah domain lain selain domain utama di dalam sertifikat atau domain kedua dan seterusnya yang Anda masukkan saat menerbitkan sertifikat CA merupakan CA yang digunakan, di tabel tersebut menunjukkan ZeroSSL yang berarti sertifikat tersebut diterbitkan oleh ZeroSSL Created merupakan tanggal dan waktu sertifikat tersebut dibuat/diterbitkan, format yang digunakan sesuai dengan standar internasional ISO 8601 Renew merupakan tanggal dan waktu sertifikat tersebut akan diperbarui, format yang digunakan sesuai dengan standar internasional ISO 8601 Nah, kira-kira begitu.\nMengganti CA Baku Secara baku, perkakas acme.sh menggunakan ZeroSSL sebagai CA-nya, yang artinya secara baku sertifikat akan diterbitkan oleh ZeroSSL. Jika Anda ingin menggantikan CA baku pada acme.sh, maka Anda tinggal jalankan perkakas acme.sh dengan parameter --set-default-ca --server opsi_ca.\nContoh perintahnya akan seperti berikut:\nacme.sh --set-default-ca --server opsi_ca Anda bisa ganti opsi_ca dengan nama pendek dari CA yang didukung oleh acme.sh atau dengan Alamat URL Direktori ACME yang dimiliki oleh CA. Untuk mengetahui apa saja nama pendek dari CA yang didukung, Anda bisa mengunjungi Halaman Wiki-nya.\nContoh perintah di bawah ini adalah menggantikan CA baku menjadi Let\u0026rsquo;s Encrypt:\nacme.sh --set-default-ca --server letsencrypt Selain menggunakan nama pendek, Anda juga dapat menggunakan Alamat URL Direktori ACME, cukup ganti saja letsencrypt di atas menjadi Alamat URL lengkap Direktori ACME dari CA Anda.\nPenggantian CA baku ini harusnya dilakukan sebelum Anda menerbitkan sertifikat TLS apa pun, karena ini hanya berefek jika Anda menerbitkan sertifikat terbaru.\nNamun, jika Anda melakukan itu setelah menerbitkan sertifikatnya, maka Anda perlu menggantikan sertifikat tersebut dengan menerbitkannya lagi secara paksa oleh CA yang berbeda.\nMelihat konfigurasi utama acme.sh atau konfigurasi domain Anda dapat melihat konfigurasi yang tersedia pada perkakas acme.sh, baik konfigurasi utama maupun konfigurasi yang dispesifikasikan untuk domain tertentu.\nAnda dapat melihat isi konfigurasi utamanya dengan perintah berikut:\nacme.sh --info Keluarannya sebagai berikut:\n1 2 3 4 5 6 7 $ acme.sh --info LE_WORKING_DIR=/home/username/.acme.sh LE_CONFIG_HOME=/home/username/.acme.sh UPGRADE_HASH=\u0026#39;8ded524236347d5a1f7a3169809cab9cf363a1c8\u0026#39; ACCOUNT_EMAIL=\u0026#39;emailku@domain.com\u0026#39; #AUTO_UPGRADE=\u0026#39;1\u0026#39; USER_PATH=\u0026#39;/home/username/bin:/home/username/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin\u0026#39; Perintah di atas sama saja dengan melihat isi dari account.conf di dalam direktori acme.sh.\nUntuk melihat konfigurasi domainnya, Anda perlu menambahkan parameter -d domain.com. Contoh perintahnya sebagai berikut:\nacme.sh --info -d domain.com Ganti domain.com di atas dengan domain utama Anda (gunakan acme.sh --list untuk mencari tahu domain utamanya).\nMaka keluarannya akan seperti berikut:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DOMAIN_CONF=/home/username/.acme.sh/domain.com/domain.com.conf Le_Domain=domain.com Le_Alt=*.domain.com Le_Webroot=dns_cf Le_PreHook= Le_PostHook= Le_RenewHook=/usr/bin/env sh deploy.sh Le_API=https://acme.zerossl.com/v2/DV90 Le_Keylength=2048 Le_OrderFinalize=https://acme.zerossl.com/v2/DV90/order/kyxxxxxxxxxxxxxxxxxxxx/finalize Le_LinkOrder=https://acme.zerossl.com/v2/DV90/order/kyxxxxxxxxxxxxxxxxxxxx Le_LinkCert=https://acme.zerossl.com/v2/DV90/cert/20xxxxxxxxxxxxxxxxxxxx Le_CertCreateTime=1660210946 Le_CertCreateTimeStr=2022-08-11T09:42:26Z Le_NextRenewTimeStr=2022-10-10T09:42:26Z Le_NextRenewTime=1665308546 Apabila Anda ingin melihat konfigurasi domain yang menggunakan ECC, tambahkan parameter --ecc-nya juga diakhir perintah. Contoh perintahnya sebagai berikut:\nacme.sh --info -d domain.com --ecc Nah, kira-kira begitu.\nMencabut dan Menghapus Sertifikat Anda dapat mencabut dan menghapus sertifikat TLS dari perangkat Anda (meskipun ini sudah beberapa kali dibahas di bagian sebelumnya sih), tapi dengan catatan bahwa mencabut (revoke) sertifikat akan menyebabkan aplikasi, web ataupun blog yang menggunakan sertifikat tersebut menjadi tidak dapat diakses, terutama dari perangkat Desktop.\nJika sudah siap, Anda dapat mencabutnya dengan perintah berikut:\nacme.sh --revoke -d domain.com Perintah di atas akan mencabut sertifikat yang diterbitkan menggunakan RSA sebagai algoritma kunci publiknya, jika Anda hanya ingin mencabut sertifikat yang menggunakan ECC/ECDSA, tinggal tambahkan saja parameter --ecc-nya, sehingga contoh perintahnya menjadi seperti berikut:\nacme.sh --revoke -d domain.com --ecc Keluarannya akan seperti berikut:\n1 2 [Fri Sep 9 13:19:38 WIB 2022] Try domain key first. [Fri Sep 9 13:19:42 WIB 2022] Revoke success. Setelah mencabutnya, Anda dapat menghapusnya dengan perintah berikut:\nacme.sh --remove -d domain.com Apabila Anda ingin menghapus sertifikat yang menggunakan ECC, tinggal tambahkan saja parameter --ecc-nya, sehingga contoh perintahnya menjadi seperti berikut:\nacme.sh --remove -d domain.com --ecc Keluarannya akan seperti berikut:\n1 2 [Fri Sep 9 13:20:22 WIB 2022] domain.com is removed, the key and cert files are in /home/username/.acme.sh/domain.com [Fri Sep 9 13:20:22 WIB 2022] You can remove them by yourself. Setelah sukses menjalankan perintah di atas, silakan hapus sendiri foldernya dengan menggunakan perintah rm -rf. Jika terdapat tanda bintang di nama foldernya, saya sarankan agar kamu mengutip nama folder tersebut dengan kutip dua agar shell tidak salah menghapus folder/berkas dikarenakan salah mengintepretasi nama folder/berkas yang dituju.\nAkhirnya, selesai juga setelah mengikuti langkah-langkah di atas. Gimana, pusing kan? Atau, malah bosen? Iyalah, gimana tidak, artikel ini saja panjang lebarnya kebangetan.\nYa sudah, semua pembahasan di artikel ini sudah selesai, kamu bisa akhiri saja sampai sini jika Anda tidak mempunyai keluhan/pertanyaan apa pun.\nNamun, jika Anda memiliki pertanyaan, maka ada baiknya baca terlebih dahulu bagian berikutnya sebelum bertanya, barangkali saja pertanyaan dari pikiran kamu bisa terjawab di sini.\nPertanyaan yang (mungkin) akan sering ditanya, beserta jawabannya Pertanyaan ke-1: Apa itu Protokol ACME? Menurut salah satu Artikel di Wikipedia, Protokol ACME (singkatan dari \u0026ldquo;Automatic Certificate Management Environment\u0026rdquo;) adalah protokol komunikasi untuk mengotomatisasi interaksi antara Penyelenggara sertifikat (bahasa Inggris: Certificate Authority atau disingkat dengan CA) dan Pengguna Server Web-nya.\nHal ini memungkinkan untuk penyebaran/penginangan Infrastruktur Kunci Publik (bahasa Inggris: Public Key Infrastructure atau disingkat dengan PKI) dengan biaya yang rendah/murah.\nProtokol tersebut dirancang oleh pihak Internet Security Research Group (ISRG), yang pada awalnya untuk layanan Let\u0026rsquo;s Encrypt mereka.\nProtokol yang berbasis pada penyampaian pesan berformat JSON melalui Protokol HTTPS ini telah ditetapkan sebagai Standar Internet di dalam RFC 8555 oleh kelompok kerja IETF yang disewanya sendiri.\nPertanyaan ke-2: Apa itu CA? Certificate Authority (disebut juga sebagai: Certification Authority) atau disingkat CA (bahasa Indonesia: Otoritas Sertifikat) adalah sebuah entitas yang mengeluarkan/menerbitkan sertifikat digital dengan memverifikasi identitas pihak subjek (seperti Situs Web, Alamat Surel, Perusahaan, Organisasi/Lembaga/Yayasan atau Perseorangan).\nDalam sertifikat TLS, CA juga bertindak sebagai pihak ketiga yang tepercaya/dipercaya baik oleh subjek (pemilik) sertifikat dan oleh pihak yang mengandalkan sertifikat (Perangkat Lunak).\nPertanyaan ke-3: Apa itu PKI? Menurut salah satu artikel di Wikipedia, Public key Infrastructure (bukan tentang Partai Komunis Indonesia) atau disingkat PKI (bahasa Indonesia: Infrastruktur Kunci Publik atau disingkat dengan IKP) adalah seperangkat peran, kebijakan, perangkat keras, perangkat lunak, dan prosedur yang diperlukan untuk membuat, mengelola, mendistribusikan, menggunakan, menyimpan, dan mencabut sertifikat digital dan mengelola enkripsi kunci publik.\nTujuan IKP adalah untuk memfasilitasi transfer informasi elektronik yang aman untuk berbagai aktivitas jaringan seperti perdagangan elektronik (e-commerce), perbankan melalui internet (internet banking), dan perpesanan surel rahasia.\nIKP diperlukan untuk aktivitas di mana kata sandi sederhana merupakan metode otentikasi yang kurang memadai dan juga diperlukan sebagai bukti yang lebih ketat untuk mengonfirmasi identitas pihak yang terlibat dalam komunikasi, serta untuk memvalidasi informasi yang ditransfer.\nPertanyaan ke-4: Apa saja CA selain ZeroSSL dan Let\u0026rsquo;s Encrypt yang bisa menggunakan Protokol ACME? Untuk yang gratisan, ada Buypass Go SSL, SSL.com dan Google Public CA yang saya bahas di artikel ini.\nSedangkan yang berbayar ada DigiCert, Sectigo, GlobalSign dan mungkin SSL.com versi berbayarnya mendukung protokol ACME juga.\nPertanyaan ke-5: Saya memasang CAA Record pada DNS Domain saya, apa CAA yang harus saya isi biar supaya saya bisa menggunakan ZeroSSL? Anda bisa mengisinya dengan sectigo.com. Kenapa? Karena pada dasarnya ia menggunakan sertifikat TLS dari Sectigo, sehingga ZeroSSL itu sebenarnya tidak \u0026lsquo;berdiri sendiri\u0026rsquo;, melainkan menjalin kerjasama dengan mereka.\nPertanyaan ke-6: Bagaimana caranya agar saya dapat menggantikan sertifikat TLS menjadi dari Let\u0026rsquo;s Encrypt atau CA lainnya, saya tidak ingin Sertifikat TLS dari ZeroSSL? Caranya tinggal Anda terbitkan ulang sertifikat TLS oleh CA yang berbeda secara paksa.\nSaat menerbitkan sertifikat TLS, Anda perlu menambahkan parameter --server opsi_ca dan itu harus dibarengi dengan parameter --force agar acme.sh dapat melakukannya dengan paksa. Tanpa parameter/argumen --force, maka Anda tidak mungkin bisa menggantinya.\nContoh perintahnya akan seperti berikut:\nacme.sh --issue -d domain.com -d www.domain.com --server opsi_ca --force Anda bisa mengganti opsi_ca dengan nama pendek dari CA yang didukung oleh acme.sh atau dengan Alamat URL Direktori ACME yang dimiliki oleh CA, serta domain-domain tersebut menjadi alamat domain milik Anda.\nSetelah menerbitkan ulang sertifikatnya, tentu saja acme.sh tidak mengeksekusikan skrip renewal-nya secara otomatis, jadi sertifikat TLS yang terpasang pada aplikasi atau situs web yang Anda miliki tidak terganti, apalagi jika Anda lebih memilih untuk membuatkan skripnya secara terpisah.\nLalu, bagaimana caranya agar saya bisa menggantikan sertifikatnya? Ya, Anda tinggal eksekusikan saja skrip renewal tersebut secara manual untuk memasangkan sertifikat TLS yang terbaru di Situs Web/Blog atau Aplikasi Anda.\nPertanyaan ke-7: Apa bedanya dengan mengikuti tutorial di sini kalau dari panel saja ada? Apa saja kelebihannya dan sebaiknya metode apa yang saya pakai? Saya tahu bahwa DirectAdmin dan cPanel memiliki antarmukanya sendiri dalam menerbitkan sertifikat TLS-nya, tapi kelebihan dalam mengelola sertifikat TLS-nya sendiri seperti yang ditulis di artikel ini adalah sebagai berikut:\nPilihan CA yang lebih beragam ketimbang DirectAdmin yang cuma bisa menerbitkan sertifikat dari Let\u0026rsquo;s Encrypt dan ZeroSSL, dan cPanel yang hanya bisa menerbitkan sertifikat dari Comodo/Sectigo melalui AutoSSL dan Let\u0026rsquo;s Encrypt jika ada pengayanya Anda dapat menerbitkan dan bahkan memperbarui/me-renew sertifikat-sertifikat tersebut ke mana saja dengan mengatur skripnya dengan benar, tanpa harus berdiam di satu tempat saja, ini akan cocok bagi Anda yang tidak hanya menggunakan 1 server/layanan dalam 1 domain saja dan ini membuat sertifikat TLS dalam bentuk Wildcard menjadi lebih berguna Anda dapat menggunakan metode verifikasi yang Anda suka ketimbang di cPanel yang hanya bisa menerbitkan sertifikatnya jika terhubung ke dalam layanannya saja dan DirectAdmin yang hanya mendukung DNS (bisa dari luar) dan HTTP sebagai metode verifikasinya Anda dapat mengelola dan mengatur sertifikat TLS beserta skrip dan konfigurasinya dengan lebih fleksibel ketimbang menggunakan antarmuka yang tersedia Hal yang perlu diperhatikan:\nRibet, belum lagi galatnya Koneksi Internet harus aktif setiap saat agar dapat menerbitkan dan memperbarui sertifikat TLS secara otomatis Pilih yang mana? Tergantung kebutuhan, jika Anda lebih menginginkan kemudahan dan langkah yang lebih sederhana, mungkin menggunakan antarmuka yang disediakan itu cocok buat Anda dan biarkan server yang memperbaruinya secara otomatis setelah ini, tapi mengorbankan fleksibilitas dan kemungkinan untuk dapat digunakan oleh server/layanan lain.\nAtau, jika Anda ingin sertifikatnya dapat digunakan di mana saja dan dapat diperbarui ke mana saja, dapat menggunakan metode verifikasi yang Anda suka, pilihan CA yang lebih beragam serta konfigurasi yang lebih fleksibel, mungkin mengelola sertifikatnya sendiri akan lebih cocok buat Anda, tapi ini akan mengorbankan kemudahan dan kesederhanaan langkah yang ada pada antarmuka di panel atau mungkin keamanan juga semenjak kunci pribadi (private key) disebar ke server lain, tergantung bagaimana Anda mengelola sertifikatnya.\nPertanyaan ke-8: Sertifikat TLS sudah saya hapus, tapi pas saya jalankan acme.sh dalam Cron atau untuk memperbarui semua SSL (--renew-all), kok domain yang terhapus masih ada saat saya cek di Terminal? Itu karena Anda belum menghapus direktorinya setelah menghapus sertifikat TLS dari perkakas acme.sh-nya. Jadi, Anda perlu menghapus direktori tersebut secara manual.\nSolusinya adalah hapus direktori tersebut (cth. $HOME/.acme.sh/domain.com untuk domain.com) secara manual setelah menghapus sertifikatnya.\nPertanyaan ke-9: Kenapa harus acme.sh dan kenapa tidak pakai yang lain seperti Certbot atau Lego? Karena acme.sh lebih sederhana dan lebih mudah dipelajari, serta fiturnya pun lumayan lengkap juga, apalagi untuk kasus umum seperti menerbitkan dan memperbarui sertifikat TLS.\nPerkakas tersebut bisa diakses tanpa perlu akun root atau perintah sudo sama sekali, sehingga bisa diakses seperti biasa.\nSaya dengar kalau Certbot memerlukan akses root atau menggunakan perintah sudo untuk itu, kalau itu benar maka hal itu gak banget, apalagi kalau kasusnya adalah memasangkan sertifikat TLS di Netlify dan BunnyCDN.\nSelain itu, acme.sh juga mendukung berbagai sistem operasi *nix dan lebih ringan karena itu merupakan berkas skrip Shell, serta mendukung berbagai layanan Penyedia DNS yang ada di Internet dan berbagai CA baku selain Let\u0026rsquo;s Encrypt dan ZeroSSL yang bisa Anda ganti tanpa perlu memasukkan Alamat URL-nya lagi, mudah dipindahkan atau digandakan ke perangkat lain, dan sebagainya.\nMengenai alasan kenapa saya tidak menggunakan Lego sebagai perkakas klien ACME, karena jujur saja saya baru tahu perkakas tersebut dan saya sendiri sudah lama terbiasa dengan acme.sh, jadi saya perlu waktu untuk mempelajarinya.\nNamun, jika Anda lebih suka atau lebih memilih untuk menggunakan Lego atau Certbot, ya silakan saja.\nPertanyaan ke-10: Selain acme.sh, apakah ada alternatifnya untuk Windows? Ada, namanya Certimate sebuah aplikasi pengelola sertifikat TLS berbasis protokol ACME (sehingga bisa termasuk klien ACME) yang dapat berjalan di Windows, GNU/Linux dan macOS.\nUntuk mengelola sertifikat, mereka memakai sistem \u0026lsquo;alur kerja\u0026rsquo; dan menggunakan visual dalam bentuk diagram alur kerja, sehingga mempermudah dalam pengelolaan sertifikat (silakan lihat cuplikan layar di bagian perkenalan mereka).\nIni bukanlah aplikasi desktop pada umumnya, melainkan ini benar-benar menggunakan web sebagai antarmuka penggunanya, sehingga harus diakses melalui peramban web.\nTapi walau begitu, aplikasi tersebut sangat ringan ketika berjalan di latar belakang, sehingga kamu tidak perlu khawatir akan penggunaan sumber daya perangkat.\nPertanyaan ke-11: Bagaimana cara menghapus acme.sh sepenuhnya? Anda tinggal ketik perintah berikut:\nacme.sh --uninstall Lalu, hapus sebuah skrip yang berkaitan dengan acme.sh di dalam berkas konfigurasi shell yang Anda gunakan, seperti di dalam berkas $HOME/.bashrc atau $HOME/.zshrc.\nSetelah itu, gunakan perintah source \u0026lt;LETAK_KONFIGURASI_SHELL\u0026gt; atau menutup, lalu membuka lagi Terminal untuk menyegarkan kembali shell Anda. Kalau perlu, Anda juga dapat menghapus direktori acme.sh dengan perintah rm -rf \u0026quot;$HOME\u0026quot;/.acme.sh jika direktori tersebut masih ada.\nPertanyaan ke-12: Jika Netlify hanya menerima Sertifikat TLS dalam bentuk Teks Biasa, kenapa kita pake perintah awk? Kenapa gak pake perintah cat aja? Karena isi berkas sertifikat itu mengandung multibaris, sedangkan Netlify tidak menerima itu.\nJika saya hanya menggunakan perintah cat, maka akan tampil isi dari berkas sertifikat yang sebenarnya sebagai keluaran.\nJadi, saya ganti setiap jeda baris/baris pemutus (line break) dengan \\n menggunakan perintah awk, agar si Netlify bisa memproses permintaan dari kita.\nPertanyaan ke-13: Kenapa pake OpenSSL untuk melakukan konversi/encoding teks ke Base64? Kenapa gak pake perintah base64 aja? Karena artikel ini saya buat agar bisa diikuti oleh banyak perangkat dan sistem operasi, seperti oleh pengguna Windows, GNU/Linux, Android, BSD dan macOS. Maka saya usahakan agar perintah-perintah yang saya bahas di sini kompatibel oleh banyak perangkat lunak dengan hasil yang sama.\nSedangkan base64 itu belum tentu kompatibel dan belum tentu akan sama baik perintah ataupun hasil keluarannya di kebanyakan sistem operasi berbasis Unix/Mirip-Unix (*nix), base64 milik GNU (GNU coreutils) dan yang bukan milik GNU itu benar-benar berbeda, baik dari segi perintah ataupun hasil keluaran bakunya.\nLagipula, tidak semua sistem operasi berbasis *nix memakai GNU coreutils, sebut saja macOS, Alpine Linux, dan BSD yang merupakan tiga di antaranya, jadi ya wajar saja jika mereka berbeda bila dibandingkan dengan GNU/Linux.\nOleh karena itu, saya memakai OpenSSL sebagai gantinya, selain karena kompatibilitas, saya yakin OpenSSL pasti terinstal di hampir semua sistem operasi yang berbasis *nix seperti GNU/Linux, BSD, macOS, dan lainnya.\nKalau di Android Anda tinggal Instal Termux, lalu instal openssl-tool saja di dalam Termux.\nLalu, bagaimana dengan Windows? Untuk Pengguna Windows sudah saya bahas dari awal di bagian Persiapan.\nLagian, acme.sh hanya kompatibel dengan sistem operasi atau lingkungan *nix, jadi mau-gak mau harus pakai perangkat lunak yang bisa menyediakan lingkungan *nix atau pakai WSL saja sekalian.\nNamun, jika Anda bisa menawarkan solusi yang lebih baik daripada ini, silakan berikan masukan di dalam kolom komentar yang telah disediakan.\nPertanyaan ke-14: Saya menggunakan Windows 10/11 dan WSL, saya berhasil memasang sertifikat TLS dengan mengikuti artikel ini, tapi bagaimana caranya agar saya bisa memperbaruinya secara otomatis? Kalau kamu menggunakan WSL (Windows Subsystem Linux) 2, maka harusnya kamu menggunakan systemd-timer untuk mengotomatiskan pembaruan sertifikat, karena WSL 2 sudah mendukung Systemd secara penuh dan di beberapa distribusi WSL 2 juga sudah mengaktifkannya secara baku (seperti Arch Linux WSL yang saya pakai misalnya).\nKalau kurang yakin, silakan buka Terminal WSL dan cek dengan perintah berikut:\nsystemctl status systemctl --type=service --state=running Kalau Systemd-nya aktif, maka harusnya ada tulisan State: Active dan layanan yang berkaitan dengan systemd aktif semua.\nTapi kalau kamu masih tidak yakin juga, maka kamu bisa mengaktifkannya secara manual dengan menambahkan barisan berikut ke dalam berkas /etc/wsl.conf:\n[boot] systemd=true Kalau sudah ada gimana? Ya gak usah ditambahin lagi dan gak usah diapa-apain, artinya Systemd udah aktif. Kalau belum ada, silakan tambahkan, setelah itu simpan dan tutup semua yang berkaitan dengan WSL, lalu buka terminal PowerShell dan eksekusikan perintah berikut untuk mematikan WSL:\nwsl --shutdown Setelah itu buka lagi WSL-nya, maka Systemd sudah aktif dan kamu bisa pastikan itu lagi.\nTapi pastikan bahwa kamu tidak mematikan WSL 2, entah itu dengan terminate distribusi WSL, mematikan WSL, mematikan atau memulai ulang komputer (yang mana ini mematikan WSL juga) agar otomatisasi pembaruan sertifikat bisa berjalan dengan lancar.\nKalau WSL-nya mati karena alasan apa pun itu, termasuk mematikan dan menyalakan ulang komputer desktop-mu, maka kamu perlu menyalakan WSL-nya cukup dengan membuka Terminal WSL saja, bisa saat start-up atau pas buka Windows Terminal atau terserah kamu caranya bagaimana.\nGak mau repot dengan hal seperti ini? Ya disarankan pakai komputer kecil seperti Raspberry Pi yang bisa kamu nyalakan selama mungkin atau kalau gak punya bisa pakai aplikasi Termux di Ponsel Android kamu, seperti yang saya jelaskan di awal. Toh, ponsel \u0026lsquo;kan bisa dinyalakan jauh lebih lama dan konektivitasnya lebih banyak ketimbang komputer desktop atau laptop.\nPertanyaan ke-15: Apa yang terjadi jika rantai pada sertifikat TLS yang terpasang malah tidak sempurna/tidak lengkap? Tergantung pada ketidaksempurnaannya/tidak lengkapnya seperti apa, jika Anda hanya memasang sertifikat dan kunci pribadi (private key)-nya saja tanpa sertifikat CA-nya, ada perangkat lunak yang mendukung dan ada yang tidak.\nBiasanya kebanyakan peramban web di desktop dan seluler (terutama versi terbaru) masih mendukungnya karena mereka memanfaatkan dukungan ekstensi AIA (Authority Information Access) yang tertera di dalam sertifikat untuk mengunduh sertifikat penengah yang hilang sesuai RFC3280 bagian 4.2.2.1 dan ada pula yang menembolokan (cache) sertifikat penengah untuk melengkapi rantai sertifikat.\nNamun, ada beberapa perangkat lunak klien lainnya yang tidak mendukung ekstensi AIA ini dan ada pula yang tidak menembolokan sertifikat penengah, sehingga mereka tidak mendukung sertifikat TLS yang rantainya tidak lengkap.\nKalau Anda ingin menguji \u0026lsquo;reaksi\u0026rsquo; dari peramban web yang Anda gunakan, silakan kunjungi alamat URL https://incomplete-chain.badssl.com/ atau situs web badssl.com untuk pengujian lainnya.\nAtau, kalau Anda ingin mengecek rantai sertifikat yang terpasang di situs web, blog atau aplikasi Anda, silakan kunjungi halaman SSL Checker dari SSL Shopper atau SSL Server Test dari Qualys SSL Labs.\nSelain hal di atas, jika Anda tidak memasang kunci pribadi, maka sertifikat tersebut biasanya tidak bisa digunakan/tidak diterima oleh perangkat lunak, karena server memerlukan kunci pribadi untuk melakukan dekripsi data.\nKalau kuncinya tidak cocok dengan sertifikatnya, maka akan ada galat seperti cuplikan di bawah ini jika Anda mengaksesnya:\nAtau, jika Anda tidak memasang sertifikat untuk domainnya, sepertinya Anda sudah bisa menebak apa yang akan terjadi.\nKalau jawabanmu adalah \u0026ldquo;Sertifikat TLS/SSL menjadi gagal terpasang dan tidak diterima oleh perangkat lunak\u0026rdquo; maka jawabanmu benar, ya karena itu artinya Anda tidak memasang sertifikatnya.\nJadi, pasanglah sertifikatnya dengan benar!\nPertanyaan ke-16: Kok sertifikat USERTrust yang saya lihat masa berlakunya cuma sampai tahun 2029 saja, bukannya sampai tahun 2038 seperti yang dibahas tadi? USERTrust yang Anda lihat itu bukanlah sertifikat akarnya. Kenapa? Karena ia masih bergantung pada sertifikat \u0026ldquo;AAA Certificate Services\u0026rdquo; sebagai sertifikat akar.\nSeharusnya \u0026ldquo;Sertifikat Akar\u0026rdquo; itu tidak mengakar pada sertifikat apa pun, melainkan mengakari sertifikat lain dan dalam hierarki sertifikat TLS atau rantai kepercayaan, posisi sertifikat akar itu merupakan yang paling tinggi dibandingkan dengan bawahannya.\nJika Anda bingung, silakan lihat cuplikan berikut:\nSeperti yang Anda lihat pada cuplikan di atas, hierarki tertinggi untuk sertifikat TLS dari ZeroSSL di Windows 10 (lebih tepatnya di Chrome/Chromium sebelum versi 105) adalah \u0026ldquo;Sectigo (AAA)\u0026rdquo; (sebutan lain dari \u0026ldquo;AAA Certificate Service\u0026rdquo;), bukan \u0026ldquo;USERTrust ECC Certification Authority\u0026rdquo;.\nBerbeda bila dibandingkan dengan rantai sertifikat TLS di sistem operasi berbasis *nix seperti GNU/Linux dan Android (terutama versi terbaru), serta perangkat lunak lain seperti Mozilla Firefox yang malah menempatkan \u0026ldquo;USERTrust ECC Certification Authority\u0026rdquo; sebagai sertifikat akarnya.\nJadi, sertifikat akar atau rantai (Chain of Trust) yang Anda dapatkan itu bergantung pada perangkat lunak yang Anda gunakan.\nPertanyaan ke-17: Kenapa Sertifikat Akar/Rantai yang didapat bisa berbeda-beda di tiap perangkat? Salah satu alasan kenapa masih menggunakan sertifikat akar yang lama oleh perangkat lunak adalah karena perangkat lunak tersebut sudah \u0026lsquo;berumur\u0026rsquo;, tidak diperbarui ataupun tidak bisa memperbarui sertifikat yang ada, sehingga sertifikat akar alternatif belum/tidak ada.\nAtau rantai yang dihasilkan saat menerbitkan sertifikat melalui perkakas klien ACME bisa saja berbeda, seperti misalnya di acme.sh Anda dapat memilih rantai mana yang akan digunakan untuk menerbitkan sertifikat, silakan kunjungi halaman Wiki ini untuk caranya.\nAlasan selain itu saya kurang tahu, mungkin ini masalah implementasi teknis yang berbeda di tiap perangkat lunak, seperti pada Windows (baik versi terbaru ataupun yang lama) yang seringkali menggunakan sertifikat akar lama ketimbang sertifikat akar baru yang mengakibatkan rantai kepercayaan yang didapat terlalu banyak. (Lihat di jawaban pada pertanyaan sebelumnya)\nNamun yang jelas, agar sertifikat TLS dapat bekerja dengan baik, maka perangkat lunak perlu \u0026lsquo;mempercayai\u0026rsquo;/mengenali sertifikat akar tersebut, salah satunya adalah perlu memiliki sertifikat akarnya dan memasangkannya ke dalam perangkat Anda.\nMasalahnya sertifikat akar memiliki masa berlaku, sehingga perlu diperbarui agar aplikasi/web yang menggunakan sertifikat tersebut dapat diakses/digunakan secara terus-menerus di dalam perangkat itu.\nMemperbarui perangkat lunak adalah salah satu cara untuk memperbarui masa berlaku dari sertifikat akar yang lama dan dapat mengenali sertifikat akar baru yang sudah bermunculan seiring berjalannya waktu.\nNamun jika tidak bisa diperbarui, maka perangkat lunak akan menggunakan sertifikat akar lama yang tersimpan di dalam tempat penyimpanan sertifikatnya.\nJika sertifikat akar tersebut habis masa berlakunya, maka skenario terburuknya adalah aplikasi atau web yang terpasang sertifikat dengan akar tersebut akan tidak bisa diakses dari perangkat itu sebagaimana mestinya.\nKalau Anda memakai Windows sebagai sistem operasinya, maka seharusnya Anda tidak perlu khawatir soal ini karena secara otomatis Windows akan mengunduh sertifikat akarnya untuk Anda (dengan asumsi bahwa fitur Pembaruan Sertifikat Akar Otomatis yang secara baku sudah aktif dan Windows Update tetap aktif).\nJadi, selama akar tersebut dipercaya oleh Microsoft dan Anda tetap mengaktifkan Windows Update, maka seharusnya aman dan akan lebih baik untuk selalu memperbarui sistem Windows Anda, terutama untuk pengguna Windows 7 (bukan \u0026ldquo;memperbaharuinya\u0026rdquo; atau menggantikan versi Windows ke versi terbaru).\nApabia Anda ingin memperbarui Windows 7 sampai pembaruan terakhir, silakan ikuti tutorial yang tersedia melalui tautan ini.\nKetika Anda mengikuti tutorial pada tautan tersebut, tolong abaikan kalimat di bawah ini:\nUnfortunately, this website requires ActiveX, which means it only works in Internet Explorer–you can’t use Google Chrome, Mozilla Firefox, or even Microsoft Edge on a Windows 10 PC.\nKarena nyatanya situs web Microsoft Update Catalog tersebut tidak membutuhkan fitur ActiveX agar bisa diakses dan digunakan sebagaimana mestinya, sehingga situs web tersebut bisa diakses menggunakan peramban web mana pun, begitupula dengan pengunduhannya, jadi Anda bisa mengikuti tutorial tersebut seperti biasanya asal mengabaikan kalimat yang saya kutip di atas.\nPertanyaan ke-18: Saya mengalami galat/error selama menggunakan acme.sh, bagaimana cara mengatasinya? Cara mengatasinya itu bergantung dengan galatnya. Berbeda pesan galat, maka akan beda penyebabnya, beda penyebab maka solusi pun akan berbeda pula. Sehingga, saya tidak bisa memberikan solusi yang pasti.\nJadi, pertama-tama Anda perlu diagnosa terlebih dahulu mengenai penyebabnya. Untuk caranya, silakan kunjungi halaman dokumentasinya.\nAnda perlu melihat-lihat/membaca barisan keluarannya saat acme.sh sedang bekerja, jika ada yang menurut Anda mencurigakan, mungkin saja itu adalah penyebabnya.\nJika Anda merasa kesulitan untuk mengatasi masalahnya, mungkin Anda bisa salinkan semua keluarannya terlebih dahulu, lalu tempelkan itu ke dalam layanan Pastebin seperti GitHub Gist, IX, dll.\nSetelah menempelkannya, Anda perlu mengirimkan teksnya, sebelum dikirimkan mungkin Anda perlu menutupi beberapa informasi terlebih dahulu, setelah dikirimkan maka akan muncul alamat URL untuk mengakses teksnya, salinkan alamat URL tersebut dan tempelkan itu ke dalam kolom komentar nantinya.\nSerta, berikan pembuka dan detail seperti informasi mengenai sistem operasi, versi acme.sh, kronologi, dll, selengkap mungkin di dalam kolom komentarnya, agar saya dan yang lain bisa lebih cepat membantu Anda, karena Informasi yang diperlukan telah tersedia.\nPertanyaan ke-19: Bagaimana cara menggantikan kredensial akses API untuk Penyedia DNS yang telah saya masukkan sebelumnya? Soalnya tadi saya salah memasukkannya Jika Anda ingin mengganti kredensial yang telah Anda masukkan sebelumnya dengan alasan apa pun, seperti salah ketik, kredensialnya telah diganti, dll, maka ada beberapa cara yang dapat Anda tempuh untuk mengubah kredensialnya, yakni:\nMetode 1: Mengubah kredensial di dalam account.conf Anda dapat mengubah isi berkas account.conf, nanti di situ akan ada variabel/opsi yang berawalan SAVED_ dan diakhiri dengan informasi yang telah disimpan. Lokasi berkas account.conf itu berada di $HOME/.acme.sh/account.conf. Berkas tersebut dapat diubah menggunakan editor teks apa pun, termasuk editor teks favorit Anda.\nKalau bingung itu apaan, saya bahas saja bagaimana cara kerjanya. Sebagai contoh, Anda menggunakan Cloudflare sebagai penyedia DNS untuk domain Anda, maka Anda perlu menyimpan kredensial berupa \u0026ldquo;API Token\u0026rdquo; ke dalam variabel CF_Token dan \u0026ldquo;Account ID\u0026rdquo; ke dalam variabel CF_Account_ID di dalam Terminal terlebih dahulu sebelum menerbitkan sertifikat.\nSetelah menyimpannya dan menjalankan perkakas acme.sh untuk menerbitkan sertifikatnya, maka secara otomatis acme.sh akan menyimpan kedua informasi tersebut ke dalam berkas account.conf, tapi dalam bentuk variabel SAVED_CF_Token untuk CF_Token dan SAVED_CF_Account_ID untuk CF_Account_ID-nya.\nNah, jika Anda menggunakan Cloudflare sebagai penyedia DNS dan ingin menggantikan kredensialnya, entah itu ganti \u0026ldquo;API Token\u0026rdquo; atau/dan \u0026ldquo;Account ID\u0026rdquo;-nya, maka cukup ganti saja nilai dari variabel SAVED_CF_Token dan SAVED_CF_Account_ID atau salah satunya di dalam berkas $HOME/.acme.sh/account.conf.\nKalau mau cepat, Anda bisa salin, lalu tempelkan perintah berikut ke dalam Terminal Anda.\nGunakan Perintah berikut ini jika Anda ingin menggantikan dua-duanya:\n1 2 3 4 5 cp \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf.1 ## Backup dulu sed -i \u0026#39;/SAVED\\_CF\\_Token\\=/d\u0026#39; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf sed -i \u0026#39;/SAVED\\_CF\\_Account\\_ID\\=/d\u0026#39; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf printf \u0026#34;SAVED_CF_Token=\u0026#39;%s\u0026#39;\\n\u0026#34; \u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; \u0026gt;\u0026gt; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf printf \u0026#34;SAVED_CF_Account_ID=\u0026#39;%s\u0026#39;\\n\u0026#34; \u0026#34;ACCOUNT_ID_KAMU_DI_SINI\u0026#34; \u0026gt;\u0026gt; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf Atau, contoh perintah di bawah ini jika Anda hanya ingin menggantikan CF_Token-nya saja:\n1 2 3 cp \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf.1 ## Backup dulu sed -i \u0026#39;/SAVED\\_CF\\_Token\\=/d\u0026#39; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf printf \u0026#34;SAVED_CF_Token=\u0026#39;%s\u0026#39;\\n\u0026#34; \u0026#34;API_TOKEN_KAMU_DI_SINI\u0026#34; \u0026gt;\u0026gt; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf Namun jika Anda menggunakan penyedia DNS lain, maka variabel yang digunakan akan berbeda-beda untuk setiap penyedia, oleh karena itu Anda perlu mengetahui dan menyesuaikan variabel-variabel tersebut, untuk mengetahui variabel yang mereka gunakan, silakan kunjungi terlebih dahulu halaman dokumentasinya.\nSetelah itu, coba perbarui/terbitkan lagi sertifikatnya, dengan begini acme.sh akan menggunakan kredensial barunya.\nMetode 2: Mengubah kredensial di dalam konfigurasi domainnya Selain menggunakan account.conf, Anda juga dapat mengubah kredensial bahkan menambahkan kredensial akses API dari penyedia DNS Anda melalui konfigurasi domainnya.\nBerkas Konfigurasi Domainnya berada di $HOME/.acme.sh/domain.com/domain.com.conf. Berkas tersebut dapat diubah menggunakan editor teks apa pun, termasuk editor teks favorit Anda, serta Anda dapat mengubah ataupun menambahkan variabelnya di situ.\nKalau bingung itu apaan, saya bahas saja bagaimana cara kerjanya. Sebagai contoh, Anda menggunakan Cloudflare sebagai penyedia DNS untuk domain Anda, maka Anda perlu menyimpan kredensial berupa \u0026ldquo;API Token\u0026rdquo; ke dalam variabel CF_Token, \u0026ldquo;Account ID\u0026rdquo; ke dalam variabel CF_Account_ID dan \u0026ldquo;Zone ID\u0026rdquo; ke dalam variabel CF_Zone_ID di dalam Terminal terlebih dahulu.\nSetelah menyimpannya dan menjalankan perkakas acme.sh untuk menerbitkan sertifikatnya, maka secara otomatis acme.sh akan menyimpan kedua informasi tersebut bukan ke dalam berkas account.conf, melainkan ke dalam konfigurasi domainnya, tanpa diubah variabel beserta nilainya tidak seperti ketika disimpan ke dalam account.conf.\nNah, jika Anda menggunakan Cloudflare sebagai penyedia DNS dan ingin menggantikan kredensialnya, entah itu ganti \u0026ldquo;API Token\u0026rdquo;, \u0026ldquo;Account ID\u0026rdquo; atau/dan \u0026ldquo;Zone ID\u0026rdquo;-nya, maka cukup ganti saja nilai dari variabel CF_Token, CF_Account_ID dan CF_Zone_ID atau salah satunya di dalam berkas $HOME/.acme.sh/domain.com/domain.com.conf, bahkan Anda bisa menambahkan variabel lainnya di dalam sana.\nNamun jika Anda menggunakan penyedia DNS lain, maka variabel yang digunakan akan berbeda-beda untuk setiap penyedia, oleh karena itu Anda perlu mengetahui dan menyesuaikan variabel-variabel tersebut, untuk mengetahui variabel yang mereka gunakan, silakan kunjungi terlebih dahulu halaman dokumentasinya.\nSetelah itu, tunggu saja sampai waktu pembaruan sertifikat telah tiba.\nPertanyaan ke-20: Apakah ini juga bisa diikuti oleh pengguna perangkat komputer kecil seperti Raspberry Pi dan perangkat sejenis lainnya? Sangat bisa, saya bahkan menyarankan agar Anda memakai perangkat seperti ini kalau punya, Anda sangat bisa untuk mengikuti semua tutorial yang ada di sini menggunakan perangkat komputer kecil Anda, seperti Raspberry Pi atau perangkat sejenisnya.\nUntuk sistem operasinya, saya sarankan Anda gunakan GNU/Linux yang merupakan salah satu sistem operasi berbasis *nix dibandingkan dengan Windows, kalau mau yang lain seperti macOS, BSD, Solaris, dll, juga boleh. Di Android juga bisa, tapi saya sarankan unduh, instal dan gunakan aplikasi Termux di dalamnya untuk itu.\nPertanyaan ke-21: Bagaimana cara memindahkan salinan acme.sh ke dalam perangkat lain? Bisa sekali, cara memindahkan acme.sh ke dalam perangkat lainnya adalah sebagai berikut:\nPastikan perangkat yang Anda tuju atau perangkat baru Anda sudah memenuhi persiapannya terlebih dahulu. Sudah? Kalau begitu, Anda bisa lanjut. Sebelum itu, Anda perlu menyalinkan direktori acme.sh ke perangkat baru dari perangkat lama Anda. Kompresi direktori dan berkas tersebut dengan perintah berikut dari perangkat lama Anda: 1 2 cd tar --exclude \u0026#39;.acme.sh/deploy\u0026#39; --exclude \u0026#39;.acme.sh/notify\u0026#39; --exclude \u0026#39;.acme.sh/dnsapi\u0026#39; --exclude \u0026#39;.acme.sh/acme.sh\u0026#39; --exclude \u0026#39;.acme.sh/*.env\u0026#39; --format pax -cvzf acme.sh.tar.gz .acme.sh Anda bisa mengganti acme.sh.tar.gz menjadi nama berkas yang Anda inginkan, asal akhirannya ada .tar.gz.\nCatatan: Jika Anda menggunakan Metode ke-2, maka Anda perlu kompresi berkas renew-ssl.sh-nya juga.\nSetelah mengkompresinya, silakan langsung menyalinkannya ke dalam perangkat yang ingin Anda tuju/perangkat baru Anda. Jika perlu, silakan lakukan enkripsi pada berkas tersebut terlebih dahulu sebelum menyalinkan/mengirimkannya\n(Catatan: Mulai sekarang/di langkah ini, gunakan perangkat yang Anda tuju/perangkat baru Anda sampai seterusnya) Setelah disalin ke dalam perangkat baru, pindahkan berkas tersebut ke dalam direktori $HOME atau ~ yang ada di dalam perangkat baru Anda.\nSetelah itu, buka Terminalnya dari perangkat baru, lalu instal terlebih dahulu acme.sh-nya dengan perintah berikut:\ncurl https://get.acme.sh | sh -s Setelah Anda menginstalnya, dekripsi berkas acme.sh.tar.gz jika Anda melakukan enkripsi, lalu ekstrak berkas tersebut dengan perintah berikut: tar -xvzf acme.sh.tar.gz Setelah diekstrak, aturlah USER_PATH di dalam berkas $HOME/.acme.sh/account.conf dengan perintah berikut: 1 2 3 cp \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf.1 ## Backup dulu sed -i \u0026#39;/USER\\_PATH\\=/d\u0026#39; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf printf \u0026#34;USER_PATH=\u0026#39;%s\u0026#39;\\n\u0026#34; \u0026#34;$PATH\u0026#34; \u0026gt;\u0026gt; \u0026#34;$HOME\u0026#34;/.acme.sh/account.conf Kalau sudah selesai, pastikan agar layanan Cron selalu aktif di dalam perangkat baru Anda, baik saat perangkat dijalankan, bahkan saat perangkat dalam posisi start-up/setelah dinyalakan.\nSetelah ini semua berhasil dan selesai, maka sebaiknya Anda hapus Cron Job yang berkaitan dengan acme.sh atau pembaruan sertifikat TLS di dalam perangkat lama Anda, hal ini dilakukan supaya tidak menimbulkan konflik saat memperbarui sertifikatnya hanya karena kredensialnya sama.\nCaranya bisa hapus manual melalui crontab -e, atau gunakan perintah acme.sh --uninstall-cronjob untuk menghapusnya secara otomatis dari perangkat lama Anda\nKalau perlu, Anda juga dapat menghapus acme.sh sepenuhnya dari perangkat lama Anda dengan perintah acme.sh --uninstall; rm -rf ~/.acme.sh\nPertanyaan ke-22: Saat saya menerbitkan/memperbarui sertifikat TLS melalui acme.sh, kok malah muncul error 5xx yah? (cth. \u0026ldquo;504 Gateway Time-Out\u0026rdquo;) Penyebab dari masalah ini kemungkinan terbesarnya adalah bahwa server tersebut sedang mengalami gangguan, kendala atau ketidaktersediaan (downtime) karena suatu masalah, seperti banyaknya pengguna, koneksi dari server atau proksi yang melambat, dll.\nKekurangan ZeroSSL ya begini, selalu saja gangguan maka dari itu aturlah agar acme.sh dapat dieksekusi setiap 2 jam dalam seharian penuh, dengan begini Anda dapat mengurangi keterlambatan pembaruan sertifikat karena masalah seperti ini.\nPertanyaan ke-23: Saat saya menerbitkan/memperbarui sertifikat TLS melalui acme.sh, kok CA malah gak mengenali perubahan DNS record yang dilakukan yah, sehingga seringkali berujung gagal verifikasi? Karena catatan DNS (DNS record) tersebut baru saja ditambahkan atau diubah dan TTL (Time-to-live) seringkali disetel ke beberapa menit (biasanya 2 menit), apalagi kalau penyedia DNS yang kamu gunakan bukanlah dari Cloudflare atau kamu menggunakan alias DNS (DNS Alias Mode) sebagai metodenya, sehingga perlu beberapa waktu untuk propagasi.\nMakanya saya sarankan kamu perlu menunggu sampai DNS benar-benar terpropagasi sebelum verifikasi. Bagaimana caranya? Sebetulnya sudah saya jelaskan kok, di acme.sh kamu bisa gunakan parameter --dnssleep durasi baik untuk menerbitkan sertifikat sampai memperbaruinya, atau bisa juga memasukkan Le_DNSSleep='durasi' ke dalam konfigurasi acme.sh untuk domain kamu.\nGanti durasi di atas dengan waktu durasi menunggu selama beberapa detik, misalnya jika kamu setel ke angka 200 maka kamu perlu menunggu 200 detik setelah catatan DNS berhasil ditambahkan atau diubah dan sebelum verifikasi dari CA.\nPerlu diingat bahwa 200 itu adalah yang paling minimum, nilai minimum yang disarankan adalah 300 detik, kalau masih terkendala verifikasi kamu perlu naikkan lagi ke 600, 900 detik, dst, sampai bisa terpropagasi.\nPertanyaan ke-24: Apakah benar bahwa SSL gratisan itu memiliki enkripsi yang lemah? Itu tidak benar, jika ada artikel yang menyatakan demikian, itu bisa dipastikan sesat. Karena enkripsi, baik itu algoritma, cipher (penyandian) dan entropi pada enkripsi itu ditentukan sepenuhnya oleh konfigurasi cipher suite yang ada pada Server.\nSertifikatnya memang punya andil yang sangat penting dalam keamanan, karena ia membawa kunci publik di dalamnya, tapi yang melakukan enkripsi dan dekripsi tetap saja oleh server dan kliennya, bukan oleh sertifikat atau pun pihak CA-nya.\nLagipula, algoritma dan ukuran kunci publik yang bisa Anda dapatkan baik dari sertifikat TLS berbayar atau bahkan gratisan itu sama aja kok, dan yang pasti Anda tidak akan mendapatkan kunci yang sudah \u0026rsquo;tertinggal\u0026rsquo; (cth. RSA dengan ukuran 1024-bit).\nBahkan algoritma kunci publik yang digunakan pada sertifikat TLS berbayar yang terpasang di dalam situs web/blog yang saya lihat kebanyakan pada memakai algoritma kunci RSA dengan ukuran 2048-bit saja, yang merupakan kunci yang cukup ideal untuk saat ini.\nSelain itu, saat sertifikat TLS ingin dibuat memakai acme.sh saja, Anda bisa menentukan ukuran dan jenis kuncinya dengan bebas selama didukung oleh acme.sh dan pihak CA-nya, semakin besar ukuran kuncinya maka semakin kuat kuncinya.\nNamun, semakin besar pula pengorbanan kinerja dari sebuah perangkat saat mengunjunginya, karena perangkat keras belum tentu dapat memprosesnya dengan cepat, apalagi jika tidak memiliki fitur akselerasi dari perangkat keras, sehingga ini akan mengorbankan kinerja dari sebuah Web/Blog juga.\nJadi, harus dipertimbangkan dengan baik untuk pemilihan kuncinya ya 🙂\nPertanyaan ke-25: Masa aktif Sertifikat TLS gratisan (termasuk dari ZeroSSL) rata-rata hanya 90 hari, apakah itu tidak bermasalah? Bukan cuma itu saja, bahkan sekarang ada kabar bahwa Forum CA/Browser sudah resmi \u0026lsquo;ketok palu\u0026rsquo; agar masa berlaku sertifikat bakal diperpendek lagi sampai menjadi 47 hari berdasarkan hasil voting dari tanggal 05-11 April 2025 untuk surat suara SC-081 yang sudah direncanakan dari 21 Oktober 2024 yang lalu.\nTentu saja kebijakan ini dimulai perlahan-lahan, hal ini bakal berlaku mulai pada tanggal berikut:\n15 Maret 2026, masa berlaku maksimum menjadi 200 hari 15 Maret 2027, masa berlaku maksimum menjadi 100 hari 15 Maret 2029, masa berlaku maksimum menjadi 47 hari Untuk lebih jelasnya, silakan kunjungi halaman ini.\nJadi, selama bisa diperbarui secara otomatis, maka harusnya tidak masalah.\nSekarang ini sudah sangat banyak atau bahkan mayoritas perangkat lunak klien untuk protokol ACME, penyedia web (seperti Layanan Hosting Web dan CDN), dll, sanggup memperbarui sertifikat tersebut secara otomatis berkat dukungan protokol ACME-nya.\nUntuk kasus pembaruan sertifikat TLS dari ZeroSSL (yang telah saya bahas di artikel ini), itu juga diperbarui secara otomatis melalui perkakas acme.sh yang telah dijalankan di dalam latar belakang pada ponsel atau perangkat Anda.\nJadi, Anda hanya perlu duduk diam dan menunggu bahwa sertifikat TLS berhasil diperbarui, tidak perlu melakukan apa pun, Anda hanya perlu pastikan bahwa koneksi internet selalu ada pada ponsel atau perangkat Anda.\nAda alasan mengapa kebijakan ini diberlakukan, beserta manfaatnya dalam memiliki sertifikat dengan masa yang pendek, seperti berikut ini:\nUntuk meningkatkan kelincahan pengguna dengan memaksa mereka untuk mengotomatisasi pengelolaan siklus hidup sertifikat mereka (yang kini sudah mudah berkat ACME), ini juga agar Anda mempelajari dan terbiasa dengan proses otomatisasi sertifikat.\nMeskipun ini sudah ada sekarang, sejarah telah menunjukkan bahwa terlalu banyak pengguna yang tidak memiliki kemampuan untuk dengan cepat mengganti sertifikat mereka dalam situasi darurat seperti kunci pribadi yang terekspos, kerentanan serupa Heartbleed, atau pencabutan sertifikat yang diwajibkan.\nUntuk mempercepat penghapusan algoritma kriptografi yang sudah usang. Kalau masa berlaku sertifikatnya lama, proses penggantian algoritma kriptografi akan berlangsung lama juga yang akibatnya menjadi banyaknya celah keamanan di masa yang akan datang.\nIni juga bermanfaat untuk sisi pengguna/klien agar selalu mendapatkan algoritma terbaru, coba kamu bayangkan kalau di tahun 2008 yang lalu kamu menyewa sebuah sertifikat TLS dengan masa berlaku 10 tahun (yang artinya berlaku sampai tahun 2018), yang mana saat itu sertifikat TLS masih ditandatangani dengan algoritma SHA1 dan menggunakan kunci RSA 1024-bit.\nNamun 3-5 tahun kemudian, root program (seperti Google, Mozilla, Apple dan Microsoft) tersebut malah memutuskan untuk tidak lagi mempercayai atau memblokir sertifikat yang ditandatangani dengan algoritma yang telah usang seperti SHA1 dan menggunakan kunci yang telah usang seperti RSA dengan ukuran 1024-bit.\nNah, kira-kira seperti itulah maksudnya, paham kan? Dari sini aja prosesnya dulu itu lama sekali, karena saat itu banyak sertifikat dengan masa berlaku yang lama, yang mana itu membuat mereka harus menyesuaikan juga, kalau ada kebijakan ini, maka diharapkan proses itu bakalan jadi jauh lebih cepat daripada waktu dulu\nDengan mengotomatiskan pembaruan sertifikat, Anda dapat meminimalkan pembaruan dalam keadaan mendadak secara manual. Memperbaruinya secara manual akan menguras waktu lain berharga Anda\nMeminimalisir ketergantungan terhadap sistem pencabutan sertifikat yang dinilai \u0026ldquo;kacau balau\u0026rdquo;, walau memang belum sempurna.\nYa betul, sekarang ada CRLite yang digadang-gadang dapat memperbaiki segala masalah yang ada pada sistem pencabutan di dunia IKP Web (WebPKI).\nTapi itu hanya berlaku buat peramban web, lalu bagaimana dengan perangkat lunak tanpa antarmuka seperti cURL? Yap betul, mereka sama sekali tidak peduli, belum lagi perangkat lunak klien lainnya yang belum tentu peduli dan mengimplementasikan juga.\nJadi, baiknya jangan ketergantungan sama pencabutan sertifikat ya!\nAnda selalu bisa mendapatkan kunci terbaru (dengan merotasi kunci pribadi) ketika memperbarui sertifikatnya secara otomatis.\nCatatan: Ini tergantung dari perkakas klien ACME yang Anda gunakan, acme.sh secara baku tidak merotasi kunci pribadi, dengan kata lain tidak membuat kunci pribadi baru ketika memperbarui sertifikatnya, sehingga ia tetap menggunakan kunci yang ada sebelumnya.\nKetika Anda ingin menerbitkan sertifikatnya, Anda dapat menambahkan parameter --always-force-new-domain-key atau jika telanjur, Anda dapat menambahkan Le_ForceNewDomainKey=1 di dalam berkas domain.com.conf agar acme.sh selalu membuat kunci baru setiap pembaruan sertifikat\nUntuk mengalihkan penggunaan sertifikat yang tidak sesuai ke otoritas sertifikat pribadi atau CA Pribadi (bahasa inggris: Private CAs), walaupun sebenarnya ini lebih ke manfaat kebijakannya sih.\nSekarang banyak sekali sistem yang menggunakan sertifikat publik bukan karena mereka butuh, tapi karena mudah dipasang sehingga gak perlu repot-repot memasang sertifikat akarnya sendiri di dalam sistem operasi mereka.\nKarena sistemnya gak bisa diperbarui dengan cepat, maka yang kayak gini bikin inovasi di dalam WebPKI terhambat, karena harus menyesuaikan dengan sistem yang kaku seperti itu.\nTermasuk segala perubahan dan perbaikan yang sulit diterapkan karena dianggap merusak sistem-sistem itu, yang sebenarnya akan jauh lebih baik jika itu dilayani oleh CA Pribadi\nApakah validitas sertifikat yang diperkecil ini akan menjadi akal-akalan CA biar supaya untung banyak? Tentu bukan, biasanya CA akan menyesuaikan model penetapan harga mereka menjadi sistem berlangganan dengan sertifikat tak terbatas selama periode berlangganan berbayar, yang mana harusnya bukan hal yang sulit bagi pihak CA.\nJika tidak, mereka akan kehilangan pelanggan karena pelanggan bakal beralih ke CA pesaing yang lebih mampu atau bahkan ke CA gratisan seperti ZeroSSL, Google Trust Services dan Let’s Encrypt.\nNah, itulah jawaban dari pertanyaan ini, jadi tinggal adaptasi saja sebenarnya.\nPertanyaan ke-26: Apakah Sertifikat TLS dari ZeroSSL (baik gratisan atau berbayarnya) itu boleh dipasang pada situs web untuk keperluan komersial (seperti Perdagangan Elektronik, dll)? Saya kurang tahu secara pastinya apakah sertifikat TLS tersebut boleh tidak digunakan oleh situs web yang punya keperluan komersial, seperti perdagangan elektronik (bahasa Inggris: e-commerce).\nNamun, di dalam halaman Syarat \u0026amp; Ketentuan Layanannya, tertulis kalimat berikut:\nYou may not use ZeroSSL for any commercial purpose including but not limited to selling, licensing, providing services, or distributing ZeroSSL to any third party unless you have received the express written consent of ZeroSSL beforehand.\nSaya kurang tahu/kurang paham apa maksud dari kalimat for any commercial purpose di sini, apakah tidak boleh dipasang di Situs Web Perdagangan Elektronik secara keseluruhan atau melarang tindakan komersil pada layanan ZeroSSL-nya saja.\nKalaupun tidak boleh dipasang di situs web tersebut, saya juga kurang tahu apakah itu berlaku untuk pengguna gratisan, yang berbayar atau malah semua. Karena TOS ini sepertinya melingkupi semua layanan yang ada pada ZeroSSL, gak peduli itu gratisan ataupun berbayar.\nJadi, jawabannya saya kurang tahu dan belum saya tanya ke mereka, mungkin saja diperbolehkan sama mereka selama tidak mengkomersilkan layanan mereka tanpa izin dari mereka.\nPertanyaan ke-27: Apa alasan kamu menggunakan ZeroSSL? Kenapa kamu gak pakai Let\u0026rsquo;s Encrypt aja? Padahal tampilan blog ini akan lebih baik apabila diakses dengan peramban web yang sangat modern PEMBARUAN Jum\u0026rsquo;at, 21 Agustus 2026: Karena ZeroSSL ini makin sering banget gangguan saat penerbitan sertifikat ketimbang saat artikel ini pertama kali diterbitkan, jadi saya putuskan untuk meninggalkan ZeroSSL sepenuhnya dan menjadikan Let\u0026rsquo;s Encrypt sebagai CA cadangan. Sebenarnya sudah cukup lama sih, tapi sempat mau mencoba lagi, cuma hasilnya ya gangguan mulu, jadi saya mulai sepenuhnya meninggalkan ZeroSSL\nAlasan saya menggunakan ZeroSSL (atau CA lain) sebagai berikut:\nKarena ingin mencoba hal yang baru dan merasa ZeroSSL lebih baik ketimbang Let\u0026rsquo;s Encrypt Setelah beberapa tahun saya menggunakan sertifikat TLS dari Let\u0026rsquo;s Encrypt (entahlah, mungkin sekitar dari 2016 atau 2017-an), karena sekarang ini saya baru tahu kalau ada CA selain Let\u0026rsquo;s Encrypt yang menawarkan sertifikat TLS-nya secara gratis, seperti ZeroSSL, maka saya memutuskan untuk tidak lagi menggunakan Let\u0026rsquo;s Encrypt sebagai CA yang \u0026rsquo;eksklusif\u0026rsquo;.\nSelain itu, dari beberapa aspek, sertifikat TLS dari ZeroSSL jelas lebih baik ketimbang Let\u0026rsquo;s Encrypt untuk saat ini. Mungkin Let\u0026rsquo;s Encrypt mendapatkan banyak sponsor/donatur dari luaran sana, tapi bukan berarti sertifikatnya lebih baik dibandingkan lainnya.\nBisa jadi uang hasil sponsor atau donasi tersebut digunakan untuk memperbarui infrastruktur mereka, pengembangan fitur-fitur, perangkat lunak dan protokol ACME-nya.\nJadi, selama ZeroSSL lebih baik daripada Let\u0026rsquo;s Encrypt pada beberapa aspek, kenapa tidak? Toh, saya pake ini juga bukan sekadar untuk blog ini saja.\nMembantu Let\u0026rsquo;s Encrypt Alasan ini mungkin terlihat aneh, tapi saya jelaskan mengapa saya menggunakan alasan ini.\nLet\u0026rsquo;s Encrypt itu merupakan organisasi nirlaba yang super sibuk, CA tersebut terkenal di mana-mana dan hampir semua penyedia Hosting/CDN menyediakan fitur pemasangan sertifikat TLS tersebut dari panelnya, salah satunya adalah Netlify, Vercel, Render, GitHub Pages, GitLab Pages, Bunny CDN, Akamai, Cloudflare, bahkan di layanan Shared Hosting pun biasanya ada fitur tersebut.\nBukan hanya dari layanan dan jasa saja, tapi tutorial dari orang lain pun pada menyarankan untuk menggunakan Let\u0026rsquo;s Encrypt dan kebanyakan dari orang mengenal \u0026ldquo;SSL Gratis\u0026rdquo; itu hanyalah dari Let\u0026rsquo;s Encrypt saja.\nKarena saya tidak bisa berdonasi dalam bentuk uang, sponsor atau dalam bentuk apa pun itu, maka saya tidak lagi mengeksklusifkan Let\u0026rsquo;s Encrypt untuk seluruh domain dan subdomain saya sebagai CA demi menghemat pengeluaran mereka serta memaksimalkan anggarannya.\nDengan memaksimalkan anggarannya, maka mereka bisa memfokuskan anggarannya untuk hal lain, seperti mengembangkan protokol ACME agar protokol tersebut bisa lebih baik lagi dari yang sekarang.\nLagipula, memiliki lebih dari 1 CA gratisan yang menggunakan Protokol ACME itu merupakan hal yang sangat, sangat baik untuk ekosistem IKP dan penggunanya sama-sama diuntungkan di sini, karena ada pilihan lain.\nMerasa tertantang dan mendapat ilmu baru Saat ingin menggunakan ZeroSSL, mayoritas penyedia web belum mendukung antarmuka untuk pemasangan sertifikat TLS dari ZeroSSL secara otomatis, kebanyakan dari mereka cuma mendukung Let\u0026rsquo;s Encrypt saja, seperti yang pernah saya bahas di awal.\nSehingga saya merasa tertantang untuk menerbitkan, memasang dan mengotomasi pembaruan sertifikat TLS tersebut sendirian, dengan menggunakan acme.sh untuk mengelola sertifikatnya dan curl untuk memasang sertifikatnya dengan memanfaatkan Server API dari Penyedia Web-nya.\nPada akhirnya, saya mendapatkan ilmu baru yang cukup berguna juga, setidaknya untuk saya sendiri.\nPertanyaan ke-28: Apa kekurangan ZeroSSL menurut Anda? Kekurangannya menurut saya adalah:\nServer ACME-nya yang kadang-kadang bermasalah. Jadi, Anda harus bersabar jika Anda mengalami masalah saat menerbitkan/memperbarui sertifikat TLS melalui server ACME-nya. Memiliki kelebihan di pengelolaan sertifikatnya, tapi tidak bisa mencabut atau menghapus sertifikat TLS yang diterbitkan melalui server ACME-nya Itu aja sih kekurangannya untuk saat ini.\nReferensi lain di Artikel ini Di bawah ini adalah referensi-referensi yang saya gunakan untuk artikel ini yang sebelumnya tidak saya sebut/bahas.\nBerikut adalah referensinya:\nReferensi Penggunaan API bunny.net Halaman Dokumentasi API bunny.net Cuplikan berikut adalah Obrolan di Dukungan Tiket yang menyatakan jika ingin memasangkan sertifikat TLS menggunakan panggilan API-nya, maka berkas-berkas tersebut harus dikirimkan dalam bentuk Base64: Ngomong-ngomong, saya tanya di Tiket Dukungan itu karena saat artikel ini ditulis sampai pertama kali diterbitkan belum ada dokumentasi resmi yang menyatakan bahwa itu dikirimkan dalam bentuk Base64, kalau sekarang sih sudah ada.\nUntuk konversi ke dalam Base64, komentar-komentar di dalam jawaban dari \u0026ldquo;Steve Folly\u0026rdquo; di Super User sangat membantu saya. Referensi Penggunaan API Netlify Halaman Dokumentasi API Netlify\nHalaman yang berjudul \u0026quot;Get started with the Netlify API\u0026quot; dari Netlify\nMelakukan Inspeksi Jaringan di Peramban Web saat memasang sertifikat TLS secara manual di dalam Situs Web-nya, dengan bertujuan untuk mengetahui bagaimana Netlify mengirimkan datanya ke dalam Server dan hasilnya itulah yang dijadikan referensi.\nAnda bisa lakukan itu sendiri dengan cara berikut:\nTekan tombol Ctrl + ⇧ Shift + I sebelum memasang sertifikat TLS di Netlify Klik pada tab \u0026ldquo;Network\u0026rdquo;, nanti di situ akan tampil sebuah panel kosong dan hanya berpesan kalau kamu perlu menyegarkan (refresh) halamannya atau menekan tombol Ctrl + R terlebih dahulu, tapi jangan Anda lakukan itu. Pasang Sertifikat TLS kamu secara manual di Halaman Web-nya Jika kamu sudah selesai mengisi semua informasi yang diperlukan, klik pada button \u0026ldquo;Install certificate\u0026rdquo; Setelah kamu mengklik button tersebut, maka di dalam Panel Inspeksi Jaringan akan muncul sebuah permintaan (request) dari api.netlify.com, klik pada permintaan tersebut, nanti akan muncul sebuah Informasi mengenai permintaan tersebut di sebelah kanan Panelnya. Setelah muncul, arahkan kursor kamu ke sebelah kanan Panel, lalu kamu gulirkan itu ke bawah menggunakan tetikus (mouse) kamu sampai kamu menemukan bagian \u0026ldquo;Request Payload\u0026rdquo; atau sejenisnya. Jika ketemu, seperti itulah data yang akan kamu kirimkan ke Netlify saat memasang sertifikat TLS kamu secara manual Untuk cara menghilangkan jeda barisnya (line break) dan menggantinya dengan karakter \\n, saya pakai jawaban dari \u0026ldquo;Ed Morton\u0026rdquo; dan dari mvr di Stack Overflow sebagai referensi, masing-masing jawabannya dilisensikan di bawah CC BY-SA 4.0 (Ed Morton) dan CC BY-SA 3.0 (mvr).\nReferensi untuk lainnya Utas forum yang berjudul \u0026quot;How do I Crontab on Termux..\u0026quot; di Reddit sebagai referensi untuk menginstal Cron Job di Termux Utas forum yang berjudul \u0026quot;Do I need to set crontab again when I restart termux?\u0026quot; di Reddit sebagai referensi untuk mengaktifkan Layanan Cron jika Termux diterminasi Halaman yang berjudul \u0026quot;RSA key lengths\u0026quot; dari Javamex sebagai referensi untuk pengaruh Ukuran kunci RSA bagi kecepatan Hasil dari pengujian dengan perintah openssl speed rsa2048 rsa3072 rsa4096 yang rata-rata menyatakan/menyimpulkan bahwa semakin besar ukuran kuncinya (terutama untuk kunci RSA), maka akan semakin besar pengaruhnya terhadap kecepatan. Di bawah ini adalah hasil pengujian di Laptop: (Menggunakan Laptop Lenovo Legion 5 15ARH05, Prosesor: AMD Ryzen 7 4800H, RAM: 8x2 GB DDR4)\n1 2 3 4 sign verify sign/s verify/s rsa 2048 bits 0.000516s 0.000015s 1937.1 66884.5 rsa 3072 bits 0.001568s 0.000031s 637.9 32169.3 rsa 4096 bits 0.003504s 0.000054s 285.4 18588.0 Dan, di bawah ini adalah hasil pengujian di PC saya: (PC-nya menggunakan Prosesor: Intel Pentium G2030, RAM: 2x2 GB DDR3)\n1 2 3 4 sign verify sign/s verify/s rsa 2048 bits 0.001680s 0.000050s 595.1 19946.8 rsa 3072 bits 0.005208s 0.000106s 192.0 9463.3 rsa 4096 bits 0.012121s 0.000186s 82.5 5368.5 Halaman \u0026quot;Making tar Archives More Portable\u0026quot; dari Proyek GNU Halaman Manual Perintah tar untuk macOS (yang entah apakah benar sesuai atau tidaknya untuk versi sekarang, itu pun bukan halaman resmi dari Apple) Penutup Ya udah, segitu aja dulu artikel kali ini. Gimana? Pusing? Meriang? Ya makanya pelan-pelan bacanya, sudah saya jelaskan dari awal kalau artikel ini bakalan panjang kali lebar.\nSaya tulis artikel ini sejak 10 Juli 2021 dan perlu waktu 1 bulan lebih agar saya bisa menerbitkannya, karena artikel ini membahas banyak hal dan juga sedikit \u0026lsquo;riset\u0026rsquo; agar artikel ini bisa diikuti oleh banyak perangkat, belum lagi sama kalimat-kalimatnya, itu pun belum sama pengujiannya.\nSelain itu, artikel ini pada akhirnya dapat membuka mata dan pengetahuan baru bahwa sertifikat TLS yang gratis itu tidak hanya dari Let\u0026rsquo;s Encrypt saja, tapi ada CA lain yang dapat menerbitkan sertifikat TLS secara gratis untuk Anda, seperti ZeroSSL ini.\nTerima kasih bagi 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, kurang rapi, dll, karena artikel ini jauh dari sempurna.\nSaya akan berusaha untuk terus-terusan memperbarui artikel ini seiring berkembangnya informasi yang ada, karena yang saya pos ini adalah tutorial, sehingga perlu adanya penyesuaian.\nJika 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 ke depannya nanti.\nTerima kasih atas perhatiannya 😊\nPenggunaan Gambar dan Atribusi Berkas-berkas gambar (seperti cuplikan layar dan Gambar lainnya) yang digunakan di dalam artikel ini, disediakan di dalam repositori blog ini.\nJika Anda ingin menjelajahinya, silakan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2021/08/26-cara-memasang-zerossl-dan-renew-otomatis-di-netlify-bunnycdn ZeroSSL dan logonya merupakan Merek Dagang, Merek Dagang Terdaftar, atau/dan Pakaian Dagang dari \u0026ldquo;Stack Holdings GmbH\u0026rdquo;, sehingga nama merek dan logo tersebut bukanlah milik saya pribadi, saya hanya dapatkan itu dari Situs Web Resminya dan di sana belum ada petunjuk penggunaan logonya.\n","date":"2021-08-26T20:51:00+07:00","image":"/cara-memasang-zerossl-di-netlify-bunnycdn-cpanel-directadmin/ZeroSSL-Logo_hu_56bde0b0b36516b8.webp","permalink":"/cara-memasang-zerossl-di-netlify-bunnycdn-cpanel-directadmin/","title":"Cara memasang ZeroSSL + Renew Otomatis di Netlify, BunnyCDN, cPanel dan DirectAdmin"},{"content":"Pembuka Setelah berbulan-bulan saya menggunakan FTP sebagai protokolnya untuk blog ini, kini saatnya saya beralih ke protokol S3 sebagai protokol penyimpanannya. Sehingga jika saya ingin menggunakannya, tentunya saya harus pindah penyedia penyimpanan.\nKarena sampai artikel ini ditulis, Bunny CDN masih belum menyediakan layanan penyimpanan yang menggunakan protokol S3, masih menggunakan FTP hingga sekarang, hingga akhirnya saya pindah ke IDCloudHost.\nTentu saja saya tidak berlangganan hostingnya di sana, melainkan saya hanya berlangganan layanan Object Storage-nya saja.\nDi Artikel ini, saya akan bahas pengalaman saya saat menggunakan menggunakan layanan ini sekaligus penggunaannya sebagai seorang yang pertama kali menyicipi Penyimpanan yang berbasis Objek ini.\nYa Anda benar, saya sendiri baru pertama kali menggunakan layanan penyimpanan dengan protokol S3 ini. Jadi, kalau ada kesalahan pada saya, tolong koreksi saya yah, saya juga masih sangat pemula terhadap protokol ini, hihi 😁\nOh iya, semua cuplikan layar yang ditampilkan itu merupakan cuplikan layar yang terbaru, bukan pada saat saya melakukan semuanya, karena saya tidak sempat mengambil cuplikan layar pada saat itu, jadi harap maklum yah 😊\nPengalaman Object Storage di IDCloudHost Saat pertama kali mengetahuinya Saya mengetahui layanan ini dari Tweet Bapak Achmad Zaky berikut, yang merupakan Pendiri sekaligus mantan CEO Bukalapak (yang sekarang merupakan Pendiri dari \u0026ldquo;Init 6\u0026rdquo;)\nKARYA ANAK BANDUNG pic.twitter.com/s19ARdfDFU\n\u0026mdash; Achmad Zaky (@achmadzaky) May 19, 2021 Cheapest cloud in the world? @Idcloudhostcom pic.twitter.com/ckiRnmoFhm\n\u0026mdash; Achmad Zaky (@achmadzaky) May 19, 2021 Entahlah Tweet yang mana, tetapi yang jelas saya tahu ini dari Tweet-nya beliau yang dikutip oleh Bapak Teguh Aprianto.\nSontak hal itu membuat saya langsung mengunjungi situs web resminya IDCloudHost dan melihat-lihat apa saja produk-produk atau layanannya dan ternyata di sana ada produk/layanan penyimpanan berbasis objek yang bernama IS3 (IDCloudHost S3).\nHarga yang ditawarkan sangat murah, yakni cuma sebesar Rp507,00 per GB per Bulan saja, bahkan lebih murah daripada layanan object storage dari Indonesia lainnya yang pernah saya temui, seperti: Biznet NEO Object Storage dan Kilat Storage.\nTentu saja biaya tersebut tidak termasuk biaya per Request yang dilakukan, Bandwidth keluar/masuk, dan biaya-biaya lainnya, karena biaya-biaya tersebut memang tidak ada di sana.\nKarena harga yang murah serta bonus saldo sebesar Rp100.000,00 setelah melakukan isi ulang, hal itu membuat saya ingin mencoba layanan Penyimpanan berbasis Objek beberapa hari setelah saya mengunjunginya.\nSaat Pendaftaran dan Berlangganan Berbeda daripada Layanan IDCloudHost pada umumnya (seperti Domain, Hosting, VPS, Dedicated/Colocation Server, dll), untuk bisa berlangganan layanan fleksibelnya (Seperti: Virtual Machine/VPS yang fleksibel, Network Resources, dan Object Storage) maka Anda perlu mendaftar akun di Konsol IDCloudHost yang beralamat: https://console.idcloudhost.com terlebih dahulu.\nYa, ini bukan seperti biasanya yang menggunakan laman My IDCloudHost untuk segala urusan layanan yang ada dan layanan fleksibel tadi tidak menggunakan laman ini. Dengan kata lain, Anda harus buat akunnya di Konsol IDCloudHost itu tadi agar dapat menikmatinya.\nSaya daftar akunnya pada akhir Mei yang lalu dan saya melakukan pengisian ulang (top-up) pada tanggal 9 Juni yang lalu, itu semua terjadi saat IDCloudHost memberikan Kredit sebesar Rp100.000,00 secara gratis jika saya melakukan top-up yang minimalnya Rp50.000,00 dan saya isi ulang sebesar minimalnya saja.\nHarga itu tentu saja belum termasuk PPn 10%, jadi saya bayar sebesar Rp55.000,00 saja untuk mengisi ulangnya.\nMetode pembayarannya pun beragam, selain Kartu Kredit (Visa/Mastercard), ada ATM Bersama, Akun Virtual (Virtual Account) dari beberapa Bank, seperti Bank Permata, Mandiri, Maybank, BNI, dan CIMB Niaga (tidak ada Virtual Account BCA), serta mendukung pembayaran lewat Ritel (seperti: Alfamart \u0026amp; Dan-dan), Pegadaian, Kantor Pos, OVO dan QRIS dari Shopee Pay saat artikel ini saya tulis.\nKarena saya menggunakan LinkAja, maka saya pilih menggunakan Kode QRIS dari \u0026ldquo;Shopee Pay\u0026rdquo;, pembayarannya pun mudah, saya tinggal memindai Kode QR yang muncul di layar saja, nanti akan muncul semua biaya yang tertera di LinkAja.\nSetelah itu saya klik bayar dan masukkan nomor PIN-nya, lalu pembayaran akan diproses dan diselesaikan secara otomatis tanpa harus verifikasi lagi setelah saya memasukkan kode PIN-nya tadi. Sungguh mudah, bukan?\nTentu saja tidak ada biaya tambahan lainnya saat pengisian selain PPn 10%, yang artinya saya cuma membayar sebesar Rp55.000,00 saja kemarin. Setelah mengisi ulang saldo, barulah secara otomatis saya mendapatkan kredit gratis sebesar Rp100.000,00 dan saya langsung berlangganan Object Storage-nya pada saat itu juga.\nSaat pertama kali membuat Bucket untuk Object Storage Agar dapat menggunakan layanan penyimpanan dengan Protokol S3 atau Object Storage, maka Anda perlu membuat sebuah \u0026ldquo;wadah\u0026rdquo; yang disebut dengan \u0026ldquo;Bucket\u0026rdquo;.\nWadah tersebut sudah jelas fungsinya, yakni untuk menyimpan berkas dan folder di dalamnya, namanya aja \u0026ldquo;Bucket\u0026rdquo;, kalau kamu pernah ke KFC atau ke restoran ayam cepat saji lainnya, pastinya kamu tahu apa itu \u0026ldquo;Bucket\u0026rdquo; dan perbedaannya.\nUntuk membuat bucket-nya sendiri cukup mudah, Anda tinggal klik pada \u0026ldquo;Storage\u0026rdquo; lalu klik \u0026ldquo;Create New Storage\u0026rdquo;, isikan nama bucket-nya, karakter nama bucket yang diizinkan yaitu: Mengandung angka, huruf kecil atau/dan tanda hubung (-). Kalau selesai, tinggal klik \u0026ldquo;Create\u0026rdquo; saja di bagian paling kanan.\nPembuatan yang mudah dan tanpa halangan, itulah yang saya alami saat membuat Bucket S3 di IDCloudHost, bucket S3 pertama yang saya buat bernama farrelf pada saat itu. Cuplikan di bawah ini hanyalah gambaran penampilannya saja, karena pada saat itu tampilannya benar-benar kosong dan belum ada satupun bucket S3-nya saat itu.\nSetelah dibuat dan bucket tersebut dipilih, maka akan tampil sebuah informasi untuk Bucket S3 yang cukup minim, seperti pada cuplikan berikut:\nKenapa minim? Karena di situ tidak ada informasi tentang Endpoint, Alamat URL Alternatif, Region, dan informasi yang diperlukan lainnya, saya baru menyadari semua itu saat menggunakannya yang saya bahas lebih lanjut lagi.\nMungkin karena \u0026ldquo;Object Storage\u0026rdquo; ini baru banget kali yah sehingga minim gitu informasinya, semoga semakin lengkap lagi informasinya 😊\nAwalnya saya mengira kalau Access Key ID dan Secret Key Access itu cuma berlaku di satu Bucket S3 saja, tetapi saat saya membuat bucket-nya lagi, saya menyadari bahwa 2 informasi penting itu berlaku untuk semua Bucket S3 yang saya buat.\nSehingga, ketika saya mengklik Bucket yang berbeda, maka Access Key ID dan Secret Key Access akan tampil dengan nilai yang sama. Mungkin maksudnya agar dapat memudahkan penggunanya, sehingga menampilkan informasi dengan cara seperti itu? Siapa tahu juga alasannya begitu, karena saya merasa dimudahkan daripada dipisah gitu 🤷‍♂️\nSaat pertama kali menggunakan Object Storage Karena di IDCloudHost belum ada fitur yang berguna untuk mengelola sekaligus menjelajah Berkas dan Folder di dalam Bucket, maka saya harus meng-install Aplikasi tambahan agar dapat mengelolanya.\nKalau di Windows itu ada sebuah Perangkat Lunak yang bernama \u0026ldquo;Cyberduck\u0026rdquo;, berfungsi sebagai pengelola berkas dari jarak jauh dan mendukung protokol S3 juga, serta merupakan FLOSS (Free/Libre Open Source Software). Saya tahu ini dari halaman dokumentasinya.\nPada saat menggunakan Cyberduck dan saya klik kanan pada salah satu objek/berkas, lalu saya arahkan kursornya ke \u0026ldquo;Copy URL\u0026rdquo;, di situlah saya langsung menyadari kalau Bucket S3 itu bisa diakses melalui URL Alternatif, yaitu https://nama-bucket.is3.cloudhost.id dan sayangnya di panel/konsolnya belum ada informasi seperti itu, padahal menurut saya lebih enak cara mengakses seperti ini, lebih bersih aja daripada https://is3.cloudhost.id/nama-bucket.\nLalu, bagaimana dengan GNU/Linux atau Android? Hmmm, di GNU/Linux saya harus me-mounting Bucket S3-nya secara manual menggunakan s3fs agar bisa mengelola Berkas-berkas di dalamnya (itu pun sampai sekarang belum bisa).\nKalau di Android saya kurang tahu, ada sebuah Aplikasi yang tersebar di Play Store untuk ini, tetapi rasanya saya kurang percaya aja mengingat perangkat lunak tersebut tak terurus sejak lama dan itu bukanlah termasuk FLOSS.\nJadi, untuk sekarang saya belum bisa mengelola Berkas dan Folder yang di dalam Bucket S3 itu di Sistem Operasi selain Windows.\nKarena rencananya saya gunakan Bucket S3 itu sebagai tempat untuk menyimpan Berkas-berkas Blog Statis, maka saya membutuhkan cuma membutuhkan fitur sinkronisasi dan itu semua bisa dilakukan dengan Rclone.\nSaat menggunakan Rclone, disitu saya langsung menyadari pengaturan perizinan pada Bucket S3 (Permissions) dan ada fitur ACL (Access control list) disitu, karena saya ingin menggunakan nya sebagai Hosting Web Statis, maka saya atur ACL nya menjadi Public-Read di Rclone.\nOh iya, seiring penggunaan, saya baru menyadari kalau ternyata IDCloudHost itu menggunakan Platform dari Warren.io untuk Layanan Fleksibelnya. Yah tidak masalah sih, yang penting kedepan nya bisa lebih berkembang lagi daripada lainnya yang menggunakan Platform yang sama.\nSaat mencoba fitur Hosting Web Statis di S3 Saya gunakan Object Storage dari IDCloudHost sebagai Hosting untuk Blog Statis ini, sedangkan saya gunakan Bunny CDN sebagai Reverse-proxy, TLS termination proxy (atau bisa disebut dengan \u0026ldquo;SSL offloading\u0026rdquo; atau \u0026ldquo;SSL termination\u0026rdquo;) dan juga CDN (kependekan dari Content Delivery Network).\nDengan alasan itu, saya mencoba fitur Hosting Web Statis yang seharusnya itu merupakan fitur AWS S3 di IDCloudHost S3, karena di Scaleway Object Storage ada fitur seperti ini juga.\nPada dasarnya, fungsinya agar supaya Object Storage ini dapat membaca berkas indeks seperti index.html saja ketika diakses tanpa harus menuliskan index.html lagi di alamat URL pada peramban web dan tentunya ini akan sangat berguna untuk Hosting Web Statis.\nNah, saya butuh fitur ini agar supaya mempermudah saya untuk mengatur Reverse-proxy CDN ini tanpa perlu melakukan penyetelan/pengaturan yang tidak perlu, seperti mengatur \u0026ldquo;Edge Rules\u0026rdquo; agar berkas indeks dapat terbaca.\nKarena secara bawaan (default) fitur tersebut tidak diaktifkan, maka saya berinisiatif untuk mengaktifkannya. Akhirnya saya gunakanlah referensi dari Scaleway dan di sana saya diperkenalkan serta disarankan untuk menggunakan AWS CLI, ya saya pakailah perangkat lunak tersebut.\nSetelah saya membuat berkas bucket-website.json (sesuai Referensi) dan mengeksekusi perintah berikut:\n$ aws s3api put-bucket-website --bucket \u0026lt;NAMA_BUCKET\u0026gt; --website-configuration file://bucket-website.json Malah muncul kesalahan (error) dengan pesan berikut:\nAn error occurred (MethodNotAllowed) when calling the PutBucketWebsite operation: Unknown Ya langsung bingung dong, masa gak boleh sih cuma pake fitur ini doang biar bisa saya bisa menyetel CDN-nya dengan mudah. Akhirnya saya coba cara lain, seperti mengubah nama berkas, menggunakan s3cmd, bahkan sampai menggunakan Cyberduck pun juga sama aja hasilnya.\nAkhirnya, ketika saya ingin menggunakan Bunny CDN sebagai Reverse-proxy untuk Blog ini seperti sekarang, saya malah harus menyetel \u0026ldquo;Edge Rule\u0026rdquo;-nya terlebih dahulu agar berkas index.html bisa terbaca dengan baik.\nSetelah itu, saya sinkronkan secara manual dengan menggunakan Rclone. Seperti yang saya bilang diawal, bahwa blog ini saya hosting di Object Storage-nya dan saya gunakan Bunny CDN sebagai Reverse-proxy, TLS termination proxy dan juga CDN, sehingga pengunjung tidak mengakses Bucket S3-nya, melainkan CDNnya.\nSaat saya menghubungi dan membuat tiket dukungannya (Support Ticket), mereka bilang kalau saat ini belum ada fitur Hosting Web Statis di Bucket S3, sedang dalam pengembangan katanya.\nJadi, harus sabar menunggu kalau kamu butuh banget sama fiturnya, tetapi kalo kamu bisa menyiasatinya (kayak saya), ya gas ajalah kalo pengen, hehe 😀\nPEMBARUAN Rabu, 07 Juli 2021: Sekarang saya tidak lagi menggunakan IDCloudHost sebagai Hosting, melainkan Storj DCS (Decentralized Cloud Storage), jadi saya tidak mengalami hal di atas lagi sejak saat itu.\nSaat menghapus Bucket S3 Karena suatu alasan, maka saya berinisiatif mencoba untuk menghapus sebuah Bucket S3 dari laman Panelnya. Bucket S3 tersebut bernama farrelf.\nAda konfirmasi yang muncul sebelum menghapusnya, setelah itu, bucket S3 tersebut hilang dari panel. Namun, saat saya buat lagi dengan nama yang sama, malah muncul kalau Bucket tersebut sudah ada, padahal sudah saya hapus dan di panel sudah tidak ada bucket tersebut.\nSetelah saya akses bucket-nya melalui peramban web, masih bisa diakses dong, dengan menampilkan pesan AccessDenied, lalu saya tambahkan salah satu nama file yang ingin diakses pada URL nya, seperti index.html dan benar saja bahwa file tersebut masih bisa diakses, itu tandanya kalau Bucket tersebut benar-benar masih ada.\nKalau sudah terhapus, seharusnya cuma nampil NoSuchBucket saat diakses lewat peramban web dan bucket sudah tidak bisa diakses sama sekali dengan cara apa pun, sehingga sudah seharusnya dapat dibuat lagi dengan nama yang sama, ini tidak.\nNamun pas saya coba mengaksesnya lewat AWS CLI untuk mencoba menghapus Bucket S3-nya, saya malah tidak dapat mengaksesnya.\nKarena Bucket tersebut tidak benar-benar terhapus, maka saya buat bucket S3 lagi yang bernama farrelfstaticblog untuk menyimpan blog statis dan saya gunakan sebelum artikel ini terbit.\nSetelah menghubungi dan membuat tiket dukungannya (Support Ticket), kata mereka kalau penghapusan bucket S3 lewat panel itu tidak dilakukan secara realtime, melainkan secara terjadwal, sehingga saya harus menunggu beberapa hari agar bucket S3 tersebut benar-benar terhapus.\nSetelah beberapa hari (kira-kira selama 4-5 hari), bucket tersebut akhirnya terhapus juga dan saya bisa membuat bucket itu lagi dengan nama farrelf. Lho, kok bisa sampe 4-5 harian? Nanti akan saya bahas lebih lanjut.\nSelang beberapa waktu setelahnya, saya mencoba menghapus Bucket S3 melalui AWS CLI dan s3cmd, malah bucket tersebut bisa terhapus secara realtime dan di panel pun juga bucket tersebut hilang, bahkan saya hapus bucket S3 melalui Cyberduck juga bisa.\nUntuk buktinya, Anda bisa lihat/tonton video berikut:\nHal ini lantas membuat saya berpikir:\nLha kalo tahu gitu, ngapain 4-5 hari kemarin saya hapus melalui panelnya yah?\nMungkin karena saat itu saya masih baru banget terhadap Penyimpanan yang menggunakan protokol S3 ini, jadi ya saya belum tahu banyak.\nJadi jika Anda kebetulan berlangganan S3 dari IDCloudHost dan Anda ingin menghapus salah satu bucket dengan alasan apa pun, saran saya jangan hapus bucket S3 dari halaman panelnya jika Anda ingin membuatnya lagi.\nSaat menghubungi dukungan layanan Alasan saya menghubungi dukungan layanan adalah karena masalah fitur Hosting Web Statis di S3, Penghapusan Bucket S3 dan fitur CNAME. Inti dari dukungan layanan (salah satunya melalui Tiket Dukungan/Support Ticket) selain fitur Hosting Web Statis adalah tentang penghapusan Bucket S3 yang gak realtime itu.\nFitur CNAME belum saya butuhkan, karena pada dasarnya saya tidak mungkin Hosting langsung di sana.\nNamun sebelum saya menghubungi Dukungan Layanan, seperti biasa, saya baca-baca terlebih dahulu Dokumentasi nya, siapa tahu kalo ada Informasi yang menjawab pertanyaan-pertanyaan saya di sana.\nNamun ternyata, dokumentasi nya belumlah lengkap, hingga artikel ini diterbitkan, dokumentasi di sana cuma membahas kasus yang sebatas cara membuat Bucket S3, mengakses Bucket S3, Mounting Bucket S3 dan integrasi ke WordPress saja.\nPada akhirnya, saya gunakanlah fasilitas \u0026ldquo;Live Chat\u0026rdquo; nya terlebih dahulu, karena di panel gak ada halaman untuk menggunakan tiket dukungan dan di sana saya hanya disarankan untuk menggunakan fasilitas \u0026ldquo;Live Chat\u0026rdquo;-nya, maka saya gunakanlah itu terlebih dahulu.\nNamun, Live Chat tidak memberikan jawaban yang berarti selama seharian dan bahkan saya disuruh untuk membuat tiket dukungan, karena hal itu, maka dengan terpaksa saya membuat Tiket Dukungan di laman \u0026ldquo;My IDCloudHost\u0026rdquo;nya.\nJika Anda ingin melihat percakapan nya seperti apa di tiket dukungan, silakan Anda lihat cuplikan layar mengenai transkrip percapakan berikut:\nCatatan: Saya sarankan untuk perbesar cuplikan nya dengan mengklik gambarnya dan gambar yang saya sisipkan bersifat urut berdasarkan angka yang tampil di keterangan gambar/caption.\nJika Anda ingin melihat Cuplikan Transkrip nya secara utuh, silakan klik di sini (Ukuran berkasnya sebesar 380 KB dan resolusinya sebesar 842x5254).\nBagaimana menurutmu mengenai tiket dukungan ini? Kalau menurut saya, respon mereka terlalu lambat dan mereka terlalu sering \u0026ldquo;melempar\u0026rdquo; pesan ke \u0026ldquo;tim terkait\u0026rdquo;, mungkin saja mereka ini adalah beda tim divisi atau apalah saya juga gak tahu.\nAtau, mungkin karena saya diawal tidak memberikan cuplikan layar sebagai lampiran diawal, jadi mereka seperti gak paham detailnya seperti apa.\nNamun yang jelas, respon mereka sangatlah lambat, kadang seringkali seharian baru bales tiket/pertanyaan saya, untungnya saat itu saya bersabar untuk menunggu dan terus mantengin tiketnya, serta saya saat itu tidak terlalu ada urgensi agar permasalahan nya cepat selesai.\nSelama 4-5 harian, barulah kasusnya terselesaikan dan akhirnya bucket nya benar-benar terhapus, sehingga saya bisa lagi membuat bucket S3 dengan nama yang sama seperti sebelumnya.\nPEMBARUAN 12/02/2022: Saat mengalami gangguan Sebetulnya gangguan itu sendiri sudah sangat lama, sekitar 7 bulanan kurang lebih, hanya saja saya baru memperbaruinya sekarang.\nSaat menggunakannya, saya pernah mengalami gangguan yang membuat blog saya menjadi tidak bisa diakses, yakni mengalami galat \u0026ldquo;503 Service Unavailable\u0026rdquo;.\nSaat saya sadar bahwa blognya mengalami galat seperti itu, awalnya saya mengira bahwa CDN-lah yang menjadi penyebabnya, tetapi setelah saya akses bucket S3-nya, ternyata terkena galat 503 juga.\nIni artinya, penyebab dari masalah tersebut adalah dari bucket S3-nya yang mengalami gangguan, bukan layanan CDN-nya (entah pada jaringan mereka atau server mereka, saya gak ngerti).\nDi bawah ini adalah penampakannya:\nSaya sudah mengecek blog dan bucket S3 saya ke beberapa situs web yang menguji ketersediaan dari sebuah situs web (seperti Uptrends), dan ternyata mengalami galat yang sama juga, jadi ini jelas bukan dari ISP yang saya gunakan.\nMaaf apabila saya tidak bisa memberikan cuplikan layarnya di sini, sehingga buktinya kurang lengkap, karena pada saat itu saya tidak sempat mengambil cuplikannya.\nSejak saat itu, saya langsung membuat tiket dukungan, tetapi balasnya lama sekali. Saya memulai itu dari sekitar pukul 18:06 WIB dan setengah jam kemudian gak ada jawaban.\nKarena gak ada jawaban apa pun, maka saya menanyakan kenapa tiketnya tidak dibalas. Setengah jam lagi kemudian setelah saya menanyakannya, akhirnya tiket tersebut baru dijawab, tetapi sayangnya masalah tersebut masih belum selesai, \u0026ldquo;sedang dilakukan pengecekan oleh team kami\u0026rdquo; katanya.\nJika Anda ingin melihat percakapannya, silakan lihat cuplikan berikut dan klik pada cuplikannya untuk memperbesar:\nKarena penyelesaian masalahnya yang lambat, maka saya pindahkan dulu Hosting-nya untuk sementara memakai Netlify, untung saja saya memiliki cadangannya.\nSetelah itu saya langsung mencari layanan penyimpanan S3 atau Object Storage yang lain, tentunya kalau bisa yang gratis dan gak perlu kartu kredit buat verifikasi. Saat mencari, ketemulah Storj DCS yang selain gratis dan memiliki S3-compatible pada layanan penyimpanannya, ia juga tidak memerlukan kartu kredit atau debit untuk bisa digunakan.\nMeskipun penyetelannya sulit (atau bisa Anda bilang \u0026ldquo;sangat sulit\u0026rdquo;), tetapi saya tetap memindahkan blog statis saya dari IS3 ke Storj DCS. Jadi, saya langsung pindah dari IDCloudHost S3 pada saat itu juga.\nBeberapa jam kemudian, sampai jam 9 malam, saya melihat bahwa masalah tersebut sebenarnya sudah selesai setelah saya mengakses bucket S3-nya, hanya saja si CS belum memberitahukan apa pun kepada saya, saya pikir itu belum selesai sepenuhnya, jadi saya tunggu besok saja.\nKeesokkan harinya, si CS belum juga membalas ataupun merespon tiketnya sama sekali dan masalah sepertinya sudah teratasi sepenuhnya, jadi saya tutup saja tiketnya secara manual.\nKesimpulan Apakah Layanan ini disarankan? Jika Anda adalah orang yang pemula banget sama Protokol S3 ini dan sangat ingin belajar, maka untuk saat ini saya belum terlalu bisa menyarankan ini.\nKenapa? Karena dokumentasinya sangat belum lengkap dan belum tentu juga semua API Penyimpanan S3 dari AWS akan didukung oleh Penyimpanan S3 dari IDCloudHost, yah namanya juga \u0026ldquo;S3-compatible\u0026rdquo;.\nBelum lagi masalah penghapusan Bucket S3 melalui Panel yang tidak dilakukan secara realtime, melainkan secara terjadwal, kecuali jika Anda tahu bagaimana cara menghapus bucket S3-nya secara realtime.\nSaya lebih menyarankan Anda untuk belajar menggunakan S3 dari AWS-nya secara langsung untuk saat ini, di sana dokumentasinya sangatlah lengkap dan komprehensif, sehingga apa yang Anda eksekusikan di sana maka akan sesuai dengan apa yang Anda pelajari di sana.\nNamun jika Anda ingin belajar dengan menggunakan S3 dari IDCloudHost, ya silakan dicoba sendiri.\nUntuk Hosting Web Statis Untuk Hosting Web Statis, saya belum terlalu sarankan juga karena fiturnya memang belum ada hingga saat ini, sehingga berkas index.html tidak terbaca dengan baik, kecuali jika kamu sanggup mengakali nya saat menggunakan CDN (seperti yang saya lakukan) atau kamu rela kalau ada index.html di URL setiap mengakses Blog/Web kamu, ya bolehlah dicoba.\nSelain itu, di sana tidak ada fitur CNAME, jadi jika Anda ingin meng-hosting web statis Anda ke dalam bucket S3, maka Anda harus mempunyai/menyewa sebuah layanan CDN terlebih dahulu, paling murah bisa gunakan Bunny CDN*.\nNB: Pada praktik terbaiknya, Anda tetap harus menggunakan layanan CDN sih, karena pada dasarnya penyimpanan berbasis objek memang tidak didesain untuk digunakan sebagai hosting sekaligus pengantaran konten. Namun, jika Anda hanya ingin mengantarkan konten ke sesama orang Indonesia, mungkin ini bisa dicoba.\n*Catatan mengenai tautan diatas Tautan diatas merupakan tautan afiliasi, jika Anda mendaftar dan membayar sebuah layanan melalui tautan tersebut, maka Anda telah memberikan dukungan terhadap saya agar saya lebih bersemangat dalam menulis artikel, karena menulis itu menguras tenaga, pikiran dan waktu.\nTenang saja, Anda tidak akan terkena biaya tambahan apa pun karena afiliasi ini, saya jamin 100%.\nMenggunakan Cloudflare Gratisan? Mungkin bisa Anda coba, tetapi yang jelas itu perlu mengkaitkan terlebih dahulu domainnya dengan CNAME ke Bucket S3-nya dan mungkin perlu mengaktifkan proksinya (dengan mengubahnya menjadi awan oranye).\nUntuk kebutuhan lain Bagaimana jika saya butuhnya cuma integrasi ke WordPress, Backup Data, atau simpan data saja atau lainnya?\nYah, jika Anda tidak terlalu butuh Support/dukungan layanan atau jika Anda tidak masalah dengan Penghapusan Bucket S3-nya, saya bisa menyarankan Anda untuk menggunakan nya, terlepas dari kekurangan yang telah saya sampaikan sebelumnya.\nKenapa? Karena mereka menggunakan Server Indonesia (yang pasti sangat cepat jika diakses dari Indonesia), biaya yang fleksibel, harga yang sangat murah untuk per GB nya, pembayaran yang mudah dan beragam, serta tidak terkendala Bahasa saat berkomunikasi dengan dukungan layanannya.\nJika Anda mengisi ulang saldo Anda dari sekarang (minimal sebesar Rp50.000,00), maka Anda akan mendapatkan bonus saldo sebesar Rp100.000,00, promo tersebut ada sampai tanggal 30 Juni 2021. (Kalau tidak salah)\nPEMBARUAN Sabtu, 15 April 2023: Setelah 30 Juni 2021 kemarin, promo tersebut sudah tidak ada, tetapi sebagai gantinya Anda dapat gunakan kode m9z6qf untuk mendapatkan bonus saldo sebesar Rp25.000,00 setelah pertama kalinya Anda mengisi saldo di Console IDCloudHost atau silakan klik di sini jika Anda belum pernah mendaftar Console IDCloudHost sama sekali\nJadi, jika Anda ingin menggunakan Object Storage dari IDCloudHost ini, saya sarankan mulai saja dari sekarang.\nPertanyaan yang (mungkin) sering ditanyakan Pertanyaan ke-1: Dimanakah Server Object Storage IDCloudHost? Jawab: Ada di DKI Jakarta, Indonesia. Saya tidak tahu di mana persisnya, jika Anda sangat ingin tahu letak servernya, mungkin bisa Anda tanyakan sendiri ke pihak IDCloudHostnya.\nPertanyaan ke-2: Jika saya cuma mengunggah berkas/file kurang dari 1 GB, apakah saya akan dikenakan Rp507/Bulan juga? Jawab: Mungkin tidak, Anda hanya dikenakan sesuai dengan besaran ukuran berkas yang Anda unggah dan biayanya tidak langsung dibulatkan ke Rp507/Bulan saat Anda mengunggah berkas-berkas dengan ukuran kurang dari 1 GB.\nContohnya Blog Statis ini, saya unggah semuanya ke dalam bucket S3 farrelfstaticblog yang tidak mencapai 1 GB, tetapi saya cuma perlu membayar sekitar Rp13,00/bulan saja.\nSaldo saya berkurang cukup banyak karena saya seringkali melakukan mengunggah banyak berkas dan menghapusnya lagi dengan tujuan mempelajari protokol S3 ini.\nPertanyaan ke-3: Apa alasan kamu untuk menggunakan Layanan ini? Jawab: Alasannya yakni cuma karena kemudahan sinkronisasi dan biayanya fleksibel untuk kebutuhan saya.\nKebutuhannya apa? Kebutuhannya cuma menyimpan blog statis ini. Kenapa \u0026ldquo;kemudahan sinkronisasi\u0026rdquo;? Karena blog ini statis, agar bisa terus diperbarui, maka diperlukan untuk melakukan sinkronisasi.\nSaat masih menggunakan FTP, saya bisa melakukan sinkronisasi melalui Rclone, tetapi perubahan pada berkas itu dikenali bukan berdasarkan pada Hash, melainkan cuma berdasarkan ukuran dari sebuah berkas dengan menggunakan satuan Byte/Bita, karena server tidak mendukungnya.\nSedangkan, ukuran pada suatu berkas itu akan berubah jika ada pengurangan atau penambahan jumlah karakter (terutama untuk berkas yang isinya karakter latin seperti berkas HTML, CSS dan JS ini).\nSehingga jika saya melakukan perubahan pada berkas CSS, lalu saya hasilkan blognya, maka berkas baru pun tidak akan disinkronisasikan karena ukurannya sama.\nMeskipun saya menggunakan teknik Fingerprinting, memang saya bisa menyinkronisasikan berkas-berkas statiknya, tetapi saya tidak bisa menyinkronkan perubahan pada berkas-berkas HTML karena ukuran nya memang sama seperti berkas sebelumnya dan jumlah karakternya pun juga sama, kecuali jika saya melakukan perubahan pada HTML-nya.\nJadi, jika saya melakukan perubahan pada berkas-berkas statik, seperti CSS dan JS maka saya perlu meng-install Perangkat Lunak lftp agar menghapus berkas-berkas HTML, lalu saya upload lagi berkas-berkasnya.\nKenapa gak pake lftp aja semuanya? Karena lftp yang saya dan CI \u0026ldquo;GitHub Actions\u0026rdquo; (di Ubuntu 20.04) gunakan itu belum bisa menghapus berkas-berkas dari server yang memiliki nama yang berbeda dari berkas yang ingin diunggah, karena berkas nya dianggap tidak ada oleh lftp.\nMisalnya, berkas yang diunggah itu adalah style.min.9rcxxxx.css untuk menggantikan style.min.8bcxxxx.css di server, tetapi berkas di server tidak bisa terhapus melalui lftp karena suatu kesalahan yang entah penyebabnya. Pesan kesalahan nya seperti berikut:\nrm: Access failed: 550 File Not Found (./style.min.8bcxxxx.css) Aneh banget, padahal berkas tersebut jelas-jelas ada di server setelah saya melakukan pemeriksaan ulang.\nKarena kesalahan seperti itu, makanya di GitHub Actions saya jalankan dulu Rclone-nya, barulah saya jalankan juga lftp-nya untuk sinkronisasi berkas-berkas HTML jika berkas CSS atau/dan JS mengalami perubahan. Ribet banget, kan?\nNah, karena menggunakan protokol S3, jadi perubahan pada berkas itu dikenali berdasarkan Hash, jika berkas mengalami perubahan, bahkan tanpa mengurangi/menambah jumlah karakter sekali pun, berkas tersebut akan dianggap berbeda.\nSehingga ini akan mempermudah saya untuk melakukan sinkronisasi blog statis ini tanpa perlu membuat langkah yang banyak seperti sebelumnya pada GitHub Actions. Jadi, berkat ini, saya hanya perlu Rclone saja untuk sinkronisasi.\nPertanyaan ke-4: Kenapa Anda malah memilih IDCloudHost daripada Layanan serupa dari Scaleway dan Wasabi misalnya? Jawab: Untuk Scaleway itu karena saya belum punya kartu kredit, meskipun gratis penyimpanan sebesar 75 GB dan Kuota Bandwidth keluar sebesar 75 GB/Bulan, tetapi untuk mendaftarnya saya harus menggunakan kartu kredit untuk keperluan verifikasi.\nSedangkan untuk Wasabi, di sana tidak ada tingkat Gratis nya, melainkan cuma masa percobaan selama 30 hari saja dan pembayarannya pun cuma bisa dilakukan dengan menggunakan kartu kredit saja.\nSelain itu, saya lihat kalau Wasabi sendiri tidak memiliki fitur Hosting Web Statis, sehingga buat saya yang menyimpan blog statis ini akan merasa sama saja.\nSaya pilih IDCloudHost hanya karena pembayaran yang mudah dan beragam dan layanan dukungan nya yang berbahasa Indonesia, itu saja sih.\nSaya juga berencana ingin migrasi ke penyedia lainnya, bahkan mungkin saja saya akan migrasi ke AWS S3 untuk mempelajari protokol S3 ini dengan mencoba Tingkat Gratis (Free Tier) nya.\nMungkin saya akan mempertimbangkan opsi Kartu Kredit Virtual untuk ini, tetapi jika Anda memiliki cara lain, Anda bisa komentar di kolom komentar atau Anda bisa japri ke saya.\nPertanyaan ke-5: Server Penyimpanan nya ada di Indonesia, tetapi PoP Bunny CDN belum ada di Indonesia, sedangkan targetnya Indonesia. Bukankah ini akan memperlambat Blog nya sendiri karena \u0026lsquo;bolak-balik\u0026rsquo; seperti itu? Jawab: Blog ini merupakan blog statis yang konten nya \u0026lsquo;pasti\u0026rsquo;, sehingga tidak perlu proses dinamis di \u0026lsquo;belakang layar\u0026rsquo; untuk menampilkan sebuah konten yang mempengaruhi sebuah kecepatan.\nJadi, seharusnya secara kecepatan juga tidak ada perbedaan yang berarti. Untuk berkas-berkas statiknya sendiri, seperti berkas-berkas CSS, JS dan gambar, itu sudah dibantu oleh fitur \u0026ldquo;Perma-Cache\u0026rdquo; dari Bunny CDN agar berkas tersebut tidak lagi ditarik oleh Server CDN dari Penyimpanan S3-nya setelah dikunjungi balik.\nApalagi jika berkas tersebut disimpan ke dalam \u0026ldquo;Edge Storage\u0026rdquo; yang telah direplikasi, sehingga akses ke berkas-berkas statik akan menjadi jauh lebih cepat, tanpa menyentuh server aslinya sama sekali.\nPEMBARUAN Rabu, 07 Juli 2021: Karena saya Hosting di Storj DCS dan bukan di IDCloudHost lagi, jadi \u0026lsquo;masalah\u0026rsquo; di pertanyaan ini sudah terselesaikan.\nPertanyaan ke-6: Apakah semua API S3 yang saya pelajari dari Dokumentasi AWS bisa saya gunakan di IDCloudHost? Jawab: Belum tentu, sejak ini merupakan \u0026ldquo;S3-compatible\u0026rdquo; belum tentu semua fitur dari AWS S3 bisa diaplikasikan ke dalam S3-nya IDCloudHost.\nNamun jika Anda sudah berkecimpung cukup lama dengan protokol S3 ini dan ingin mempelajari API S3 pada IDCloudHost yang bisa digunakan, ya silakan Anda coba saja sendiri.\nPenutup Ya sudah, itu aja dulu pembahasan pada artikel kali ini. Saat ini saya belum bisa mengulas API dari S3 mana aja yang bisa digunakan pada IDCloudHost ini, karena saya sendiri baru pertama kali belajar mengenai protokol S3 ini.\nJadi, mohon maaf jika artikel ini dirasa kurang lengkap bagi kebutuhan Anda. Mohon maaf juga jika apa yang saya bahas di artikel ini kesannya seperti menjelekkan layanan Object Storage dari IDCloudHost, saya tidak bermaksud demikian, saya cuma membahas pengalaman saya selama menggunakan penyimpanan S3 dari IDCloudHost ini.\nSelama menggunakannya, saya menemukan cukup banyak kekurangan yang harusnya diperbarui. Mungkin semua kekurangan yang terjadi dikarenakan layanan Object Storage ini masih sangatlah baru, belum lama ada juga, tetapi semoga saja layanan ini bisa terus berkembang maju, salah satu nya dengan mampu menerima banyak masukkan dari pengguna nya dari waktu ke waktu.\nMengingat IDCloudHost telah mendapatkan suntikkan dana sebesar US$ 5 juta dari Init 6 (yang CEO nya adalah Bapak Achmad Zaky, salah satu pendiri dan mantan CEO Bukalapak) belum lama ini, maka sudah seharusnya bahwa layanan ini merupakan layanan yang serius, termasuk tetapi tidak terbatas pada layanan fleksibel (Layanan Cloud) lainnya, seperti Cloud VPS dan Network Resources, setidaknya untuk pasar Asia.\nKalau adanya kesalahan pada penulisan artikel ini, silakan berikan masukkan terbaik Anda dengan berkomentar melalui kolom komentar yang telah disediakan. Atau, Anda juga bisa kirimi pesan kepada saya secara pribadi jika Anda lebih suka melalui \u0026lsquo;jalur pribadi\u0026rsquo;.\nSemoga layanan ini bisa lebih berkembang lagi dengan baik ke depannya dan terima kasih bagi Anda yang telah membaca artikel ini sampai habis 😊\nPenggunaan Gambar dan Atribusi Berkas-berkas gambar (seperti cuplikan layar dan gambar lainnya) yang saya gunakan di dalam artikel ini, disediakan di dalam repositori blog ini.\nJika Anda ingin menjelajahinya, silakan kunjungi alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2021/06/25-nyobain-idcloudhost-object-storage IDCloudHost dan logonya merupakan Merek Dagang, Merek Dagang Terdaftar, atau/dan Pakaian Dagang dari \u0026ldquo;PT Cloud Hosting Indonesia\u0026rdquo;, sehingga nama merek dan logo tersebut bukanlah milik saya pribadi.\nSaya hanya memberikan latar warna putih pada logo IDCloudHost agar logo tersebut bisa dilihat dalam mode tampilan apa pun (baik dalam mode gelap ataupun terang).\n","date":"2021-06-25T20:18:00+07:00","image":"/nyobain-object-storage-dari-idcloudhost/IDCloudHost_Logo_hu_165074059d7ddb5.jpg","permalink":"/nyobain-object-storage-dari-idcloudhost/","title":"Nyobain Object Storage dari IDCloudHost (IS3)"},{"content":"Pembuka Kita semua tahu bahwa tidak semua Hosting menerapkan unmetered bandwidth atau unlimited bandwidth sehingga diberlakukan batasan kuota bandwidth, jika melebihi batas tersebut maka web/blog menjadi tidak bisa diakses dan disuruh/disarankan membayar biaya tambahan untuk menambahkan batasan tersebut agar web/blog bisa diakses.\nBahkan Hosting untuk Web Statis seperti Netlify, GitHub Pages, Render, dan Surge.sh pun menerapkan batasan kuota ini. Maka mau-gak mau, suka-gak suka, para pemilik web/blog harus menghemat konsumsi bandwidth server daripada web/blog-nya gak bisa diakses hanya karena kehabisan kuota. Belum lagi sama kuota internet pengunjung yang juga terbatas, kalau habis ya harus beli lagi, \u0026lsquo;kan boros jadinya 🙂\nNah, saya berikan solusi bagi yang ingin menghemat konsumsi bandwidth ketika web/blog Anda \u0026lsquo;dihantam\u0026rsquo; oleh pengunjung dan bot selama beberapa kali yang mungkin bisa Anda implementasikan. Tentu saja solusinya tidak cukup dilakukan salah satu saja, melainkan 2 atau sampai 4 solusi harus kamu lakukan demi menghemat konsumsi bandwidth server/hosting.\nSanggahan Perlu Anda pahami bahwa artikel ini hanyalah membahas bagaimana caranya untuk menghemat kuota bandwidth server, bukan cara mengoptimalkan sebuah web/blog ataupun cara menghemat kuota internet pengunjung, karena itu merupakan dua hal yang sangat berbeda.\nNamun dengan ini, Anda juga bisa mengoptimalkan web/blog dan bahkan menghemat kuota internet pengunjung Anda (terutama jika pengunjung tersebut setia terhadap web Anda), atau malah justru sebaliknya.\nSegala risiko yang ada setelah menerapkan salah satu atau lebih dari satu solusi pada web Anda, silakan tanggung sendiri. Serta dengan menerapkan solusi-solusi di bawah ini, maka saya anggap bahwa Anda telah memahami solusi yang saya bahas serta risiko yang Anda terima nantinya.\nJadi, mohon perhatian dan pengertiannya dari pembaca sekalian 🙂\nTerima kasih atas perhatian dan pengertiannya 😊\nSolusi-solusi untuk menghemat bandwidth server Berikut di bawah ini adalah solusi-solusi yang bisa Anda terapkan:\nSolusi ke-1: Lakukan kompresi terhadap berkas-berkas statik Melakukan kompresi terhadap berkas-berkas statik (seperti berkas JS, CSS, Gambar, dll) sebelum digunakan oleh web/blog itu Wajib Hukumnya!\nYa kali, kamu ingin mengunggah dan menyebarkan serta \u0026lsquo;menyajikan\u0026rsquo; berkas gambar yang besarnya beberapa puluhan bahkan ratusan Megabita ke dalam web/blog kamu kepada pengunjung, kalau saya jadi pengunjungnya, saya malah langsung kabur alih-alih mengunjunginya.\nSelain membuang-buang kuota, hal tersebut akan membuat konsumsi sumber daya di perangkat meningkat drastis karena peramban web akan memproses berkas-berkas statiknya.\nSudah banyak sekali perangkat lunak atau situs web yang memiliki fitur untuk mengoptimalkan berkas-berkas statik, salah satunya mengkompresi berkas gambar tanpa harus menurunkan kualitas gambar secara kasat mata manusia, sebut saja situs web seperti TinyJPG atau TinyPNG yang dapat mengkompresi berkas gambar PNG aau JPG, ini bisa Anda lakukan sebelum mengunggah suatu berkas gambar ke dalam web/blog Anda.\nAtau, untuk mengoptimalkan berkas-berkas gambar di komputer/laptop Anda tanpa harus mengunggahnya ke web/blog dulu, Anda bisa gunakan perangkat lunak seperti Caesium*, Imagine, Squosh, FileOptimizer* atau ImageOptim untuk pengguna Apple macOS 10.9+.\n*Catatan: Dua perangkat lunak yang ditandai bintang itu hanya mendukung sistem operasi Windows saja.\nJika Anda menggunakan WordPress.org (Hos Mandiri/Self-hosted), harusnya sudah banyak sekali yang menyediakan sejumlah plugin untuk melakukan kompresi dan optimasi terhadap berkas-berkas statik sebelum akhirnya \u0026lsquo;disajikan\u0026rsquo; kepada pengunjung.\nAtau, jika Anda menggunakan SSG (Static-site Generator), terutama Hugo, maka seharusnya ada fitur \u0026ldquo;Image Processing\u0026rdquo; untuk memproses berkas Gambar dan \u0026ldquo;Hugo Pipes\u0026rdquo; untuk memproses berkas-berkas JS, CSS dan SASS yang bisa diimplementasikan ke dalam Tema.\nSelebihnya masih banyak cara lain yang dapat Anda lakukan untuk mengecilkan ukuran berkas-berkas statik, sebelum akhirnya digunakan untuk produksi.\nSolusi ke-2: Buatlah aset web dapat di-cache dalam waktu lama Peramban Web akan menyimpan sumber daya tertentu, seperti berkas-berkas gambar, JS, CSS, HTML dan berkas statik lainnya disuatu tempat yang disebut dengan Cache setelah situs web/blog selesai dimuat atau dikunjungi oleh pengguna.\nSolusi kali ini adalah membuat aset-aset web/blog kamu harus tersimpan di dalam cache dalam waktu yang lama.\nKenapa? Biar supaya pengunjung tidak perlu lagi memuat ulang aset-aset web/blog dari server setiap kali membaca halaman lainnya. Apa pengaruhnya buat server? Ya pengaruhnya membuat server tidak perlu lagi mengirimkan aset kepada pengunjung, sekligus ini meringankan tugas server juga.\nMaka dari itu, caching itu menjadi syarat mutlak untuk membangun pengalaman pengguna yang baik, karena pengalaman akses yang cepat bukan semata-mata hanya karena servernya berkinerja tinggi atau pun karena berkas-berkasnya sudah teroptimasi dengan baik, tetapi karena setelan cache yang ideal.\nUntuk mengetahui perbedaan jika sumber daya disimpan ke dalam cache peramban web, serta digunakan atau tidaknya, bisa Anda lihat cuplikan berikut:\nNamun, seringkali bahwa aset-aset web/blog tidak tersimpan ke dalam cache dengan benar, bahkan ada yang sengaja tidak menyimpan aset-aset tersebut ke dalam cache, padahal itu adalah aset statik yang tidak diubah setiap hari.\nKayak gimana contohnya? Contohnya saat pengunjung mengunjungi halaman lainnya setelah bersinggah ke halaman pertama, fon-fon eksternal pun harus dimuat agar teks bisa tampil dengan baik, tetapi karena tidak di-cache, maka fon-fon tersebut dimuat dari servernya langsung. Hal seperti ini sebenarnya kurang bagus, karena selain bikin boros kuota server, ini juga bikin boros kuota pengunjung (kalau ada).\nSalah satu cara agar supaya aset-aset web dapat di-cache dalam waktu lama adalah mengatur dan menyetel HTTP Header Cache-Control dengan benar.\nMungkin Anda belum pernah mengenal HTTP Header satu ini. Yap, Cache-Control merupakan sebuah HTTP Header yang berfungsi untuk mendikte perilaku cache yang dilakukan oleh peramban web.\nSaat pengguna mengunjungi situs web-nya kembali, di sinilah HTTP Header Cache-Control itu berperan, header tersebut menetapkan sebuah aturan untuk menentukan apakah peramban web yang digunakan oleh pengguna tersebut akan memuat sumber daya yang diperlukannya melalui cache atau justru malah sebaliknya, serta dapat mengatur/menentukan durasi penyimpanan cache-nya.\nDalam konteks menghemat konsumsi bandwidth baik dari segi server atau klien, mungkin Anda berpikir bahwa membuat peramban web dapat menyimpan sumber dayanya dalam waktu yang sangat lama ke dalam cache (seperti mengatur header Cache-Control-nya menjadi public, max-age=31536000, immutable) itu merupakan solusi yang saling menguntungkan, bukan?\nKalau seperti itu, memang benar, tetapi akibatnya tampilan situs web menjadi tidak berubah sama sekali bahkan dapat merusak penampilan sebuah situs web, atau lebih parahnya konten-konten pada situs web menjadi tidak terlihat diperbarui (alias \u0026ldquo;outdated\u0026quot; atau \u0026ldquo;gak update\u0026rdquo;) bahkan setelah menerbitkan pembaruannya selama beberapa kali.\nHal ini terjadi karena peramban web akan tetap memuatnya melalui cache dan yang dimuat itu bukanlah berkas yang baru, melainkan yang telah disimpan sebelumnya atau yang lama, sehingga sumber dayanya tertahan oleh cache.\nJadi, aturlah header tersebut dengan benar dan lakukan teknik Cache Busting pada berkas-berkas statik sebelum mengatur Cache-Control-nya, serta bedakan mana sumber daya yang harus di-cache dalam waktu yang lama atau tidaknya.\nUntuk cara menyetel HTTP Header (untuk Response Header)-nya, bisa Anda kunjungi referensi berikut:\nHow to modify HTTP headers using .htaccess files (Untuk Pengguna Apache/LiteSpeed Enterprise) How to Set Up Custom Headers - OpenLiteSpeed (Untuk Pengguna OpenLiteSpeed) Adding and using header (HTTP) in nginx - Stack Overflow (Untuk Pengguna NGINX) Custom headers - Netlify Docs (Untuk Pengguna Netlify) HTTP Headers for Static Sites - Render (Untuk Pengguna Render sebagai hosting web statis) Configuration - Vercel (Untuk Pengguna Vercel) Sedangkan untuk mengatur Header Cache-Control dengan benar, beserta dengan teknik Cache Busting-nya, ada referensi yang cukup bagus untuk Anda pelajari, bisa Anda kunjungi melalui tautan berikut:\nCache-Control for Civilians - CSS Wizardy Caching best practices \u0026amp; max-age gotchas - JakeArchibald.com Sebenarnya selain Cache-Control, ada HTTP Header lain untuk urusan cache seperti Last-Modified untuk mencocokan berkas di dalam cache dan di server berdasarkan waktu modifikasi terakhir dan ETag yang berdasarkan hash dari suatu berkas. Sehingga jika berkas di dalam cache pengunjung itu cocok dengan yang ada di server, maka akan menggunakan berkas yang tersimpan di dalam cache, kalau tidak maka peramban web pengunjung akan mengunduh berkas baru dari server.\nKarena kedua itu berdasarkan kecocokan, maka kedua itu tidak bisa kamu atur sendiri secara sembarangan, perlu dukungan webserver untuk itu dan kontrol perilaku cache yang sangat terbatas, bahkan kamu tidak mungkin mengatur perilaku cache seperti pada halnya header Cache-Control.\nContoh: Kamu tidak mungkin bisa meminta peramban web kamu dan yang lain seperti pengunjung kamu untuk men-cache berkas tersebut hanya untuk komputernya saja, tidak untuk proxy server seperti CDN, tidak seperti Cache-Control yang cukup memakai direktif private saja alih-alih menggunakan public, dll.\nUntuk perbedaannya dan praktik terbaiknya, silakan kunjungi referensi berikut:\nBrowser Caching | Practical: ETags and Cache-control (oleh Tejendra Pal Singh di Medium) Intinya, saya sarankan untuk tetap mengatur perilaku cache meskipun servermu mendukung header Last-Modified atau/dan ETag dengan header Cache-Control untuk melengkapinya dan beri setelan yang ideal untuk web Anda.\nSelain di atas, Anda juga bisa memasang dan memakai \u0026ldquo;Service Worker\u0026rdquo; di dalam web/blog Anda agar peramban tersebut dapat mengunduh, lalu memuat aset-aset yang telah tersimpan di dalam penyimpanan lokal sebelumnya tanpa harus terkoneksi dengan internet sama sekali.\nSolusi ke-3: Memuat berkas-berkas statik (atau bahkan web) dari server lain Jika Anda ingin menghemat konsumsi bandwidth server, maka Anda bisa menghoskan berkas-berkas statik lainnya di server yang berbeda. Contohnya?\nAnda mempunyai blog yang disimpan di dalam Server A yang mempunyai kuota bandwidth sebesar 100 GB/Bulan, untuk menyiasati atau mengakalinya, Anda bisa menyimpan berkas-berkas statik lainnya di Server B yang batasan bandwidth-nya sangat besar (sampai dikira tidak terbatas).\nSehingga peramban web milik pengunjung akan memuat berkas-berkas statiknya melalui Server B jika mengunjungi blog Anda daripada Server A dan akan menghemat konsumsi bandwidth pada Server A, karena pada dasarnya Server A tidak digunakan untuk memuat berkas-berkas statik.\nIni adalah salah satu cara yang paling ampuh untuk menghemat konsumsi bandwidth server ketimbang solusi-solusi tersedia lainnya.\nContoh lain? Sesuai contoh di atas, Anda juga dapat menggunakan Google Fonts atau Adobe Fonts sebagai penyedia fon untuk web/blog Anda ketimbang melakukan hos mandiri (bahasa Inggris: Self-host) di server utama Anda.\nAtau, Anda juga bisa memakai layanan CDN untuk publik seperti cdnjs, unpkg, atau jsDelivr untuk memuat pustaka-pustaka web/blog yang ada, seperti jQuery, Bootstrap, Twemoji dan pustaka lainnya ketimbang melakukan hos mandiri.\nBahkan Anda juga dapat menggunakan layanan CDN (Content Delivery Network) pihak ketiga yang dipasang pada web/blog Anda untuk mengakalinya, seperti menggunakan layanan CDN dari Cloudflare yang gratisan misalnya.\nLho, kok bisa? Karena pada dasarnya jika Anda menggunakan CDN pihak ketiga untuk web/blog Anda, maka pengunjung akan memuat web/blog atau berkas-berkas statiknya dari server CDN, meskipun perlu proses \u0026lsquo;penarikan\u0026rsquo; berkas dari server aslinya.\nKira-kira, illustrasinya seperti berikut:\nUntuk layanan CDN yang gratis, Anda bisa gunakan layanan CDN untuk publik yang saya sebut di atas, seperti jsDelivr, cdnjs atau unpkg.\nIntinya, buatlah agar pengunjung memuat berkas statiknya dari server lain selain server utama untuk menghemat bandwidth dari server utama, itu aja. Serta, sekali lagi saya sebutkan bahwa cara ini merupakan salah satu cara yang paling ampuh dalam menghemat konsumsi bandwidth Server.\nSolusi ke-4: Buatlah agar berkas-berkas statik tidak bisa diakses dari luar Jika Anda ingin lebih menghemat konsumsi bandwidth server, maka buatlah berkas-berkas statik tidak bisa diakses dari luar web Anda.\nKenapa? Karena jika Anda membiarkan gambar-gambarnya diakses dari web lain, maka hal ini akan mengonsumsi bandwidth dari server Anda secara terus-menerus dan ini bisa saja merupakan praktik pencurian aset web tanpa izin dari Anda. Praktik tersebut dinamakan Hotlinking.\nJika Anda bertanya bagaimana cara untuk mencegah hal seperti ini, maka jawabannya adalah blokir aksesnya jika berkas tersebut tidak merujuk dari web Anda ketika mengaksesnya. Contoh: Buatlah berkas-berkas yang ada di website-a.com hanya bisa diakses dari domain website-a.com saja, bukan dari domain website-b.com, dsb.\nJika Anda menggunakan CDN dari Cloudflare, maka Anda bisa mengaktifkan fitur Hotlink Protection yang terletak pada bagian Scrap Shield di dalam Dasbor Cloudflare Anda. Atau, jika Anda menggunakan layanan CDN, maka Anda perlu melakukannya melalui panel yang tersedia dari penyedia CDN-nya.\nJika Anda menggunakan layanan shared hosting dan tidak menggunakan CDN sama sekali, maka di dalam kontrol panel yang digunakan oleh pihak hosting (seperti: cPanel, DirectAdmin, dll) harusnya sudah ada fitur proteksi dari praktik hotlinking secara bawaan, Anda dapat gunakan itu jika ada.\nAtau, Anda bisa kunjungi referensi berikut jika ingin menyetelnya secara manual:\nWhat Is Hotlinking? - KeyCDN Support How to Prevent Image Hotlinking in Apache with .htaccess - TecAdmin (Hanya untuk Pengguna Apache/LiteSpeed Enterprise) Solusi ke-5: Gak mau ribet? Tambah kuotanya atau pindah! Iya, saya tahu bahwa ini bukanlah cara menghemat, karena saya kasih solusi bagi Anda yang tidak ingin kuota bandwidth-nya habis, tetapi gak mau ribet dengan melakukan solusi-solusi di atas. Atau, ini akan cocok bagi Anda yang menyerah setelah melakukan solusi-solusi di atas.\nYap, Anda tinggal memikirkan bagaimana caranya menambah kuota bandwidth yang tersedia jika tidak mau ribet. Untuk saat ini pilihannya cuma dua, yakni bayar biayanya atau pindah ke penyedia lain yang kuotanya lebih banyak.\nTidak ada pilihan selain itu dan ini merupakan solusi yang cukup realistis atau masuk akal. Jika Anda ingin gratis, lakukan kedua atau sampai keempat solusi di atas, sedangkan jika Anda tidak mau ribet atau sudah menyerah, tinggal tambahkan saja kuotanya, sesederhana itu bukan?\nPertanyaan dan Jawaban yang (akan) sering ditanya Ini adalah bagian yang berisi tentang pertanyaan yang (akan) sering ditanyakan, beserta jawabannya.\nMungkin Anda perlu membaca pertanyaan dan jawabannya terlebih dahulu sebelum bertanya di kolom komentar sebagai referensi Anda.\nPertanyaan ke-1: Apa itu Cache Busting? Jawab: Cache Busting adalah sebuah teknik agar peramban web dapat memuat berkas yang lebih baru saat mengunjung sebuah situs web/blog setelah adanya perubahan pada berkas tersebut, tanpa harus menunggu selama itu, tapi berkas-berkas tersebut akan tetap di-cache dalam waktu yang sangat lama.\nTeknik ini akan menjawab pertanyaan seperti berikut:\nSebelumnya, saya telah mengatur agar berkas-berkas statik bisa tersimpan di-cache dalam waktu 1 tahun oleh peramban web, tapi masalahnya saya baru saja telah melakukan perubahan pada berkas tersebut.\nJadi, bagaimana agar pengunjung tidak perlu menunggu selama 1 tahun untuk dapat menikmati perubahannya? Masa saya harus nyuruh pengunjung untuk membersihkan Cache atau Clear Cache pada peramban webnya?\nIntinya, melakukan teknik Cache Busting akan menyelesaikan masalah di atas.\nPertanyaan ke-2: Situs web/blog saya terpasang iklan (salah satunya: Google AdSense), apakah hal itu akan membuat boros konsumsi bandwidth server? Jawab: Tidak, karena pada dasarnya Anda tidak menyimpan berkas apa pun ke dalam server Anda, kecuali Anda menyisipkan skrip ke dalam HTML dan itu pun ukurannya sangat kecil.\nSehingga jika skrip tersebut termuat, maka yang dimuat adalah aset/sumber daya yang berasal dari server lain, bukan dari server Anda dan sangat sedikit pengaruhnya bagi server Anda.\nNamun, kalau ditanya \u0026ldquo;Apakah ini akan membuat boros kuota internet pengunjung?\u0026rdquo; maka jawabannya adalah Iya.\nKarena pada dasarnya peramban web pengunjung secara otomatis akan memuat iklan-iklan yang sangat dinamis dalam berbagai format (entah itu dalam bentuk teks, gambar, video, dan lain-lain) saat berkunjung ke situs web/blog Anda dan itu menggunakan koneksi internet dari pengunjung agar bisa termuat, kecuali jika diblokir dari sisi klien/pengunjung.\nPertanyaan ke-3: Apakah tidak ada solusi lain? Jawab: Untuk saat ini tidak ada, solusi-solusi yang saya tulis itu merupakan solusi yang cukup realistis/masuk akal supaya Anda dapat mengimplementasinya dengan baik, sehingga hanya solusi itu yang saya tahu.\nJika Anda memiliki solusi lain, maka Anda bisa memanfaatkannya. Namun, jika Anda memiliki solusi masuk akal lainnya, silakan berikan masukkan dari Anda melalui kolom komentar 🙂\nPertanyaan ke-4: Saya menggunakan CDN dari Cloudflare untuk Web/Blog saya demi menghemat konsumsi bandwidth, maka solusi mana yang saya implementasikan? Jawab: Kamu mengimplementasikan Solusi ke-3.\nLho, kenapa? Karena pada dasarnya kamu telah mengatur bahwa pengunjung situs web/blog kamu akan dilayani oleh Cloudflare, sehingga web kamu akan dimuat menggunakan Server dari Cloudflare ketika dikunjungi, bukan lagi oleh server Anda, meskipun Cloudflare membutuhkan penarikan berkas-berkas/sumber daya yang diperlukan dari server Anda.\nJadi maksudnya adalah jika Anda menggunakan CDN dan melakukan reverse-proxy (seperti menggunakan CDN dari Cloudflare), maka pengunjung tidak lagi mengakses server aslinya, melainkan server CDN-nya, sehingga ini akan bisa menghemat konsumsi bandwidth server.\nPertanyaan ke-5: Apakah menghemat konsumsi bandwidth server sama dengan menghemat kuota internet pengunjung? Jawab: Tidak selalu, bisa iya dan bisa juga tidak, terutama jika Anda memiliki sumber daya eksternal (dari luar server Anda) dan itu tetap dimuat oleh pengunjung saat mengunjungi web/blog Anda.\nKenapa bisa begitu? Karena setiap server memiliki kebijakan yang berbeda-beda, terutama perlakuan Cache pada peramban web, ada server yang mengizinkan agar peramban web dapat menyimpan berkas-berkas/sumber daya ke dalam Cache dalam waktu yang sangat lama, bahkan ada pula yang tidak mengizinkan sama sekali.\nTerlebih, saat mengunjungi web/blog Anda, peramban web akan memuat segala sumber daya yang diperlukannya, baik yang asalnya dari dalam server itu sendiri dan dari luar server yang tentunya memiliki kebijakan yang berbeda-beda.\nJika server luarnya tidak mengizinkan peramban web untuk menyimpan berkas-berkas ke dalam cache, sedangkan server asli mengizinkannya, maka hal ini akan membuat konsumsi bandwidth internet pengunjung akan meningkat dan akan membuat boros kuota internet jika itu terjadi terus-terusan, kecuali jika diblokir dari sisi klien/pengunjung.\nContohnya adalah platform iklan seperti Google AdSense yang terpasang di web/blog (mengacu pada pertanyaan kedua), karena sifatnya yang sangat dinamis dan bisa tampil dalam berbagai format, supaya bisa tampil seperti itu dan bisa ganti iklan, maka tidak mungkin server akan mengizinkan peramban web menyimpan Iklan tersebut ke dalam cache.\nIklan tersebut dimuat dari server lain, sehingga konsumsi bandwidth server utama tidak terpengaruh, tetapi hal tersebut membuat kuota internet pengunjung jadi boros karena membiarkan peramban web memuat iklannya, kecuali jika iklannya diblokir.\nNamun, hal ini akan beda lagi jika kedua server (baik luar ataupun dalam) sama-sama mengizinkan peramban web untuk menyimpan berkas sumber dayanya ke dalam cache dalam waktu yang lama, maka baik kuota internet pengunjung dan konsumsi bandwidth server akan bisa sedikit diperhemat.\nPertanyaan ke-6: Apakah ada perangkat lunak, situs web/solusi lain untuk mengoptimalkan berkas-berkas statik selain yang disebutkan di dalam artikel ini? Jawab: Banyak, tapi cari sendiri di mesin pencari aja, banyak jawabannya di sana.\nKata kunci yang bisa Anda gunakan untuk mesin pencari adalah, seperti: Image Compression, Image Compressor, Image Optimizer, CSS Minify, JS Minify, CSS Minifier, JS Minifier atau kata kunci lainnya yang bisa Anda kembangkan sendiri.\nJika Anda ingin mencari perangkat lunaknya, bisa tambahkan Software di akhir kata kuncinya, seperti Image Compression Software misalnya atau kembangkan saja sendiri biar hasilnya lebih akurat.\nPertanyaan ke-7: Apakah semua solusi yang ada di sini itu mempercepat atau mengoptimalkan sebuah Situs Web/Blog? Jawab: Bisa iya, bisa juga tidak, atau bahkan bisa terjadi sebaliknya. Kecepatan akses dan kecepatan penyelesaian pemuatan pada web/blog itu terjadi karena banyak faktor.\nSedangkan untuk mengoptimalkan sebuah web/blog agar cepat diakses dan dimuat oleh peramban web itu banyak yang harus Anda lakukan selain melakukan solusi-solusi di atas.\nBahkan bisa terjadi sebaliknya, yakni web/blog menjadi lambat ketika diakses, atau malah sampai menjadi tidak tersedia (nge-down) setelah melakukan solusi-solusi di atas.\nJadi, jika Anda ingin menerapkan salah satu atau lebih dari solusi di atas, maka segala risiko harus ditanggung sendiri.\nPertanyaan ke-8: Saya gak mau ribet kayak solusi-solusi di atas dan gak mau bayar juga, terus gimana solusi gratis yang paling mudah dan paling instannya, tentunya bebas ribet? Jawab: Menggunakan CDN dari Cloudflare yang Gratisan bisa cukup membantu untuk kasus seperti itu.\nAtau jika bisa, terapkan solusi ke-3 untuk web/blog Anda, contoh paling mudah memakai Google Fonts atau Adobe Fonts sebagai penyedia fon atau simpan berkas gambar di penyedia hosting untuk gambar, seperti Imgur, Postimages atau ImgBB.\nNamun, kalau kamu masih menganggapnya ribet atau sulit untuk dilakukan, maka solusinya adalah dengan menutup akses pangunjung ke web/blog Anda, entah itu dengan mengosongkan web/blog-nya atau memblokir akses dari pengunjung melalui Firewall atau menghapus/menutup Web/Blog Anda atau lainnya.\nDengan ini, kuota bandwidth akan bisa diperhemat, bahkan kuotanya malah jadi tidak terpakai sama sekali.\nSolusinya gak ribet, instan dan sangat mudah untuk dilakukan bagi semua orang, tanpa perlu mengeluarkan biaya sedikit pun.\nPenutup Ya sudah, artikelnya saya cukupkan dulu saja di sini. Dari artikel ini, Anda belajar bahwa untuk menghemat kuota bandwidth server memang harus ada usaha yang cukup dari yang punya web/blog, kalau gak mau ribet ya solusinya nambah kuota, entah itu bayar atau pindah ke penyedia lain.\nTerima kasih bagi Anda yang telah membaca artikel ini. Gimana? Pusing kan? Yah, saya hanya memberitahukan konsepnya saja, terlebih satu bagian di artikel ini memang \u0026ldquo;Panjang x Lebar\u0026rdquo;, jadi maaf kalau saya tidak bisa memberikan cara implementasinya secara detail.\nSerta, mohon maaf jika artikel ini memiliki kekeliruan dan kesalahan, baik dari ada yang salah ngetik, terlalu panjang, bertele-tele, dll.\nJika adanya kesalahan dan kekeliruan dari saya, atau jika Anda memiliki pertanyaan lainnya/klarifikasi, bisa Anda berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk kedepannya nanti.\nTerima kasih atas perhatiannya 😊\nPenggunaan Gambar dan Atribusi Berkas-berkas gambar (seperti cuplikan layar dan gambar lainnya) yang digunakan di dalam artikel ini, tersedia di dalam repositori blog ini.\nJika Anda ingin menjelajahinya, silakan kunjungi alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2021/05/06-cara-menghemat-konsumsi-bandwidth-server Gambar Illustrasi yang nama berkasnya adalah NCDN_-_CDN.png itu merupakan illustrasi yang dibuat oleh \u0026ldquo;Kanoha\u0026rdquo; bersumber dari Wikimedia Commons dan dilisensikan di bawah \u0026ldquo;CC BY-SA 3.0 Unported\u0026rdquo; oleh sang pembuat.\nSerta, sebuah foto yang nama berkasnya adalah micheile-henderson-SoT4-mZhyhE-unsplash.jpg yang saya gunakan sebagai sampul artikel itu merupakan sebuah foto yang dipotret oleh \u0026ldquo;Micheile Henderson\u0026rdquo; bersumber dari Unsplash dan dilisensikan di bawah \u0026ldquo;Unsplash License\u0026rdquo; oleh sang pembuat.\n","date":"2021-05-06T16:10:30+07:00","image":"/menghemat-konsumsi-bandwidth-server/micheile-henderson-SoT4-mZhyhE-unsplash_hu_712535104b668fcc.webp","permalink":"/menghemat-konsumsi-bandwidth-server/","title":"Cara menghemat Konsumsi Bandwidth Server"},{"content":" tl;dr (Awas, Spoiler!) Intinya, lihat dan baca di bagian \u0026ldquo;Kesimpulan\u0026rdquo;.\nArtikel yang Anda lihat/baca sekarang ini adalah versi fafifu wasweswos nya, alias versi \u0026ldquo;Panjang x Lebar\u0026rdquo; nya, membahas kelebihan dan kekurangan beserta alasan nya yang bisa menjadi pertimbangan Anda untuk menggunakan Cloudflare.\nApa itu Cloudflare? Cloudflare® (atau lengkapnya: Cloudflare, Inc.) adalah sebuah perusahaan Amerika Serikat yang menyediakan jasa-jasa yang diperuntukan bagi pembuat ataupun yang mengelola sebuah Web/Blog, seperti jasa jaringan pengantaran konten/Content Delivery Network (CDN), pencegah serangan DDoS, mengamankan Web/Blog, Analitik, Pengelola Domain dan DNS.\nSelain untuk Pembuat atau Pengelola Web/Blog, Cloudflare juga menyediakan sebuah Layanan DNS Rekursif yang di tujukan untuk semua pengguna, yang bernama 1.1.1.1™ dan bahkan Cloudflare telah menyediakan Aplikasi nya agar semua orang bisa menggunakan nya dengan mudah.\nJadi, sekarang udah jelas kan Cloudflare itu apaan? Banyak sekali Web/Blog yang merekomendasikan untuk menggunakan Layanan DNS, CDN dan Firewall dari Cloudflare untuk mengoptimalkan sebuah Web/Blog, tapi apakah saya perlu untuk menggunakan jasa-jasa/layanan tersebut, mengingat layanan itu Gratis?\nJawaban nya ya \u0026ldquo;entar dulu\u0026rdquo;, abis ini nanti akan saya bahas dulu apa kelebihan dan kekurangan nya, karena jawaban nya akan sangat berhubungan dengan ini.\nKelebihan menggunakan Cloudflare Untuk pembahasan kali ini, saya cuma membahas kelebihan menggunakan Cloudflare sebagai CDN, Pengelola DNS dan Firewall saja mengingat banyak sekali jasa/layanan dari Cloudflare itu, namun ketiga ini yang paling sering digunakan oleh para Blogger atau Pengembang/Pengelola Web dibandingkan lain nya, apalagi Layanan tersebut tersedia versi Gratisan nya.\nKelebihan menggunakan Cloudflare saya jabarkan berikut di bawah ini.\nMembuat Web/Blog menjadi lebih hemat Kuota Bandwidth Kalau kamu menggunakan Hosting yang mana Kuota Bandwidth (Pita lebar) nya terbatas atau cuma dapat sedikit saja, siapa sih yang gak mau menghemat konsumsi Kuota nya? Apalagi jika Web/Blog nya ramai dikunjungi orang dan robot tiap hari?\nDengan menggunakan Layanan CDN nya, maka Anda dapat menghemat konsumsi/penggunaan Bandwidth Server.\nLho, kok bisa? Karena dengan menggunakan CDN pada Web/Blog Anda, maka ketika orang lain mengunjungi Web/Blog Anda, Peramban Web milik Pengunjung tersebut hanya mengunduh berkas-berkas statis dari Server CDN nya alih-alih dari Server Asli/Asal nya (bisa kamu sebut \u0026ldquo;Server Hosting\u0026rdquo; jika Anda menggunakan layanan Hosting).\nKira-kira, Illustrasi nya seperti berikut: Hal inilah yang membuat konsumsi Bandwidth akan menjadi jauh lebih hemat dari biasanya, apalagi jika Anda menyetel Header Cache-Control nya dengan benar, maka Anda akan bisa mengurangi konsumsi Bandwidth nya secara signifikan!\nTerlebih jika sistem pembiayaan untuk paket-paket pada layanan/jasa dari Cloudflare pun tidak menggunakan Sistem Pay-as-you-Go (PAYG) sebagai Sistem Pembiayaan atau tidak perlu membayar tergantung pada penggunaan, melainkan itu merupakan Biaya Flat per bulan saja, bahkan ada Gratisan nya juga.1\nSehingga, ini akan sangat cocok bagi Anda yang memiliki Web/Blog yang kunjungan nya sangat ramai, tapi tidak mau terbebani oleh tagihan yang membludak akibat konsumsi Bandwidth yang sangat besar.\nDNS Otoritatif nya yang sangat cepat, reliabel dan cukup kaya fitur Tahukah Anda, bahwa Layanan DNS Otoritatif dari Cloudflare itu sangatlah cepat dan lumayan reliabel? Menurut data yang ada di Situs Web DNSPerf yang saya ambil pada saat saya menulis artikel ini (Pada Tanggal 15 April 2021), DNS Cloudflare menempati posisi kedua untuk kinerja mentah dengan Uptime sebesar 99,93% selama 30 hari terakhir.\nCatatan: Saya tidak menjamin keakuratan data di atas dalam menilai DNS Otoritatif yang ada, tapi setidaknya ini bisa dijadikan referensi bagi Anda yang ingin mencari DNS Otoritatif yang cocok untuk Web/Blog Anda dan saya sarankan Anda untuk mencarikan data pembanding untuk itu.\nJika Domain Anda terhubung ke DNS Cloudflare dan menggunakan nya sebagai Pengelola DNS dibandingkan dengan Pengelola DNS bawaan, maka Anda bisa mengurangi potensi Downtime atau ketidaktersediaan pada Domain Anda, serta membuat Domain Anda dapat di-resolve lebih cepat oleh pengunjung.\nKenapa bisa gitu? Karena Cloudflare telah di tenagai oleh Server-server di 200 Kota dari 100 Negara di seluruh dunia2 yang mana ini akan saling berkaitan, begitupun juga CDN nya.\nJadi, jika satu server DNS Cloudflare tidak tersedia, maka hanya perlu dirute ulang ke server lain nya dan hal ini memungkinkan untuk mempercepat Resolve DNS dari segi Pengunjung, karena pengunjung mendapatkan server terdekat nya saat me-resolve domain yang terhubung dengan DNS Cloudflare.\nKarena DNS Otoritatif dari Cloudflare merupakan Pengelola DNS Eksternal, sehingga jika Server Hosting Anda mengalami ketidaktersediaan atau Downtime (alias nge-down), maka layanan lain seperti surel eksternal, subdomain yang terhubung ke server lain, dll, tidak akan mengalami hal demikian.\nSelain itu, Pengelola DNS ini memiliki cukup kaya akan fitur. DNSSEC untuk keamanan DNS? Ada! Cloudflare mendukung hal itu3, Anda tinggal tambahkan Pengaturan DNSSEC pada Domain Anda melalui Pengaturan Domain bawaan. Untuk nilai-nilai nya, ikuti dengan yang ada di Cloudflare.\n\u0026ldquo;CNAME Flattening\u0026rdquo;? Ada! Fitur ini malah diaktifkan secara bawaan untuk \u0026lsquo;root\u0026rsquo; nya saja4. Anda juga bisa ekspor dan impor pengaturan DNS Anda dalam format BIND9 sewaktu-waktu jika ingin migrasi5. Apakah saya bisa menikmati itu semua secara gratis? Tentu saja bisa! Anda hanya perlu menghubungkan Domain Anda ke DNS Cloudflare saja dengan mengubah Nameserver nya sesuai dengan petunjuk yang ada.\nBisa menyembunyikan Alamat IP Server Dengan Anda menggunakan CDN dan melakukan reverse-proxy pada Web/Blog utama Anda, maka Anda telah \u0026lsquo;menyembunyikan\u0026rsquo; Alamat IP Server Asli nya, ini sebenarnya berlaku bagi semua CDN termasuk jika Anda menggunakan CDN dari Cloudflare.\nDengan menggunakan CDN dari Cloudflare, maka Anda telah menyembunyikan Alamat IP dari Server Asli Anda dengan reverse-proxy, kecuali jika Anda menggunakan Subdomain yang terpisah untuk CDN nya, dan tentunya ini bisa dilakukan secara gratis.\nIni akan sangat cocok bagi Anda yang tidak ingin \u0026lsquo;memamerkan\u0026rsquo; Alamat IP Server nya di depan umum.\nKompresi terhadap berkas JavaScript, CSS dan HTML Cloudflare memiliki fitur kompresi (minify) terhadap berkas JavaScript, CSS dan HTML jika Anda menggunakan CDN dari Cloudflare untuk mengoptimalkan Web/Blog Anda. Fitur tersebut bernama \u0026ldquo;Auto Minify\u0026rdquo;.\nBiasanya fitur ini dinonaktifkan secara bawaan, jadi Anda perlu mengaktifkan nya sendiri di Dasbor Cloudflare. Fitur \u0026ldquo;Auto Minify\u0026rdquo; dapat ditemukan di bagian \u0026ldquo;Speed\u0026rdquo; (yang gambarnya petir) pada Laman Dasbor Cloudflare. Berikut cuplikan nya:\nSetelah mengaktifkan ataupun mematikan nya, maka Anda perlu Purge Cache CDN Cloudflare nya terlebih dahulu, barulah opsinya bisa diterapkan sebagaimana mestinya.\nSSL Gratis dan Sertifikat nya mendukung Peramban Web yang lebih tua Jika Hosting yang Anda gunakan tidak menyediakan SSL sama sekali, maka Anda bisa gunakan CDN dari Cloudflare agar Web/Blog Anda bisa diakses dengan Protokol HTTPS secara gratis, masa berlaku akan diperbarui secara otomatis oleh mereka.\nAkar (atau Root) dari Sertifikat SSL yang digunakan nya pun telah didukung oleh Peramban Web (Web Browser) dari Perangkat yang lebih tua, selama Peramban Web tersebut mendukung SNI (singkatan dari \u0026ldquo;Server Name Indication\u0026rdquo;) yang merupakan fitur dari protokol TLS.\nFitur tersebut dinamakan \u0026ldquo;Universal SSL\u0026rdquo;. Biasanya fitur \u0026ldquo;Universal SSL\u0026rdquo; telah diaktifkan secara bawaan jika Anda menggunakan CDN dari Cloudflare, tapi Anda bisa mengaturnya di bagian \u0026ldquo;SSL\u0026rdquo; (yang gambarnya gembok) pada Laman Dasbor Cloudflare.\nJika Anda merasa tidak perlu menggunakan SSL dari Cloudflare, maka caranya ada dua, yakni: Nonaktifkan fitur \u0026ldquo;Universal SSL\u0026rdquo; atau jangan gunakan CDN dari Cloudflare.\nFirewall dan Perlindungan dari Serangan DDoS Jika Anda menggunakan CDN dari Cloudflare, maka Anda telah meminimalisir serangan DDoS di Web/Blog Anda. Proteksi ini bekerja pada lapisan ke-3, 4 dan 7 dalam model OSI, serta Proteksi ini tidak dikenakan biaya sama sekali alias gratis1.\nSelain itu, Cloudflare memiliki Firewall yang siap melindungi Web/Blog Anda dari serangan dari luar, termasuk DDoS dan tentu saja Anda memiliki Firewall bawaan yang bisa Anda atur kapan saja6.\nKekurangan menggunakan Cloudflare (terutama untuk pengguna Gratisan) Tadi saya sudah menyebutkan kelebihan untuk menggunakan Cloudflare, terutama untuk layanan yang sering digunakan oleh para Blogger atau Pengembang/Pengelola Situs Web, yakni CDN, Pengelola DNS dan Firewall nya.\nSekarang saya bahas kekurangan nya, saya utamakan untuk pengguna Gratisan karena saya yakin bahwa mayoritas pengguna Cloudflare lebih memilih Paket \u0026ldquo;Gratis\u0026rdquo; daripada milih yang berbayar, kalaupun mampu bayar palingan cuma mentok di Paket \u0026ldquo;Pro\u0026rdquo; saja yang biaya nya cuma $20/bulan. (Jangan tersinggung yah, saya juga pake yang Gratisan juga kok, hehe 😀)\nSaya tidak mempunyai data yang pasti, karena saya cuma menebak yang berdasarkan dari rute yang saya dapatkan ketika saya mengunjungi sebuah Web/Blog Anda yang menggunakan Cloudflare (lebih lanjutnya akan saya bahas setelah ini), tapi saya yakin bahwa Anda belum tentu sanggup untuk membayar uang sebesar $200 setiap bulan nya hanya untuk menyewa Paket \u0026ldquo;Business\u0026rdquo; (Bisnis), apalagi Paket \u0026ldquo;Enterprise\u0026rdquo; (Perusahaan).\nOk, tanpa basa-basi lagi, saya akan bahas kekurangan menggunakan Cloudflare (terutama untuk pengguna Gratisan) berikut di bawah ini.\nRute CDN nya seringkali kacau Anda mungkin berekspektasi bahwa CDN harusnya melayani pengunjungnya dekat dari Koneksi Internet yang digunakan oleh pengunjung, siapa yang tidak setuju? Tapi, Anda harus menerima kenyataan bahwa Rute yang didapatkan oleh pengunjung saat mengunjungi Web/Blog Anda yang menggunakan Cloudflare dengan paket selain \u0026ldquo;Enterprise\u0026rdquo; (apalagi Gratisan) tidak sesuai dengan ekspektasi pengunjung atau tidak mendapatkan lokasi yang dekat dengan mereka.\nSeringkali pengunjung akan mendapatkan rute yang bahkan sangat jauh dari mereka, contoh: Koneksi Internet nya dari Indonesia (dengan asumsi tanpa menggunakan Proksi/VPN), ketika mengunjungi Web/Blog yang menggunakan Cloudflare Gratisan, maka Lalu Lintas akan dilarikan ke Server Los Angeles, Jepang, atau Server Acak lain nya.\nSebagai imbas nya, tidak sedikit pula pengunjung yang merasa lambat ketika mengakses nya, bahkan sampai tidak bisa diakses sama sekali.\nContoh kasus nya adalah ketika mengakses Web/Blog yang menggunakan Cloudflare Gratisan dan Paket \u0026ldquo;Pro\u0026rdquo; dari ISP Telkom misalnya, karena rute yang mereka dapatkan itu sangat jauh dari koneksi nya, sehingga banyak orang yang mengeluhkan akses ke sebuah Web/Blog7 8 9 10, bahkan sampai-sampai membuat sebuah utas di Forum Komunitas nya juga.\nSudah rute CDN nya kacau gara-gara ISP nya, terus Koneksi Internasional nya malah buruk, sehingga pantas saja jika orang-orang protes seperti itu sejak menggunakan Cloudflare sebagai CDN, terutama dari ISP Telkom/Telkomsel.\nUntuk menguji koneksi Internet ke jaringan Cloudflare dari ISP Anda, salah satunya Anda bisa kunjungi Situs Web \u0026ldquo;Cloudflare Test\u0026rdquo;.\nKetika Anda mengunjungi nya, tunggu saja sampai semua teks nya tampil dengan baik. Saya uji ini menggunakan Telkomsel, jadi jika Anda menggunakan Koneksi dari Telkomsel (saya uji ini di Kota Cirebon), maka kira-kira hasilnya sebagai berikut:\nJika ini diuji menggunakan ISP Telkom seperti IndiHome, berdasarkan pengalaman pribadi saya saat menggunakan IndiHome di Kota Cirebon (tapi belum sempat saya ambil Cuplikan nya), maka hasilnya mungkin akan sangat mirip dengan di atas.\nCatatan dan Sanggahan mengenai Cuplikan di atas Cuplikan di atas itu merupakan hasil krop gambar, silahkan klik di sini jika Anda ingin melihat cuplikan asli nya.\nTapi, saya tidak menjamin keakuratan cuplikan di atas tentang hasil pengujian jangkauan pusat data Cloudflare, karena saya uji ini menggunakan Koneksi dari Telkomsel (Operator: by.U) di Kota Cirebon dan pemiripan/persamaan hasil pengujian saat menggunakan ISP dari Telkom (seperti IndiHome) itu hanya berdasarkan pengalaman pribadi saat menggunakan IndiHome di Kota Cirebon, mungkin di Kota/Kabupaten atau/dan menggunakan Operator/ISP lain hasilnya akan beda.\nTapi, setidaknya ini bisa dijadikan pertimbangan bagi Anda untuk memutuskan apakah CDN Cloudflare layak atau tidak bagi Anda sebagai pemilik/pengembang Web/Blog atau/dan pertimbangan untuk mencari ISP lain untuk pengguna biasa/pengunjung yang bukan pemilik/pengembang Web/Blog, walaupun tidak 100% akurat.\nBerdasarkan cuplikan di atas, maka hasil nya bisa disimpulkan sebagai berikut:\nRute CDN yang didapatkan saat mengunjungi kebanyakan Web/Blog yang menggunakan Cloudflare paket Gratis dari Koneksi Telkom atau Telkomsel itu sangatlah kacau dan acak, kadang ke Server Amerika Serikat, Jepang atau jarang-jarang mendapatkan rute ke Singapura. Berlangganan paket \u0026ldquo;Pro\u0026rdquo; tidak cukup membantu, namun terkadang ada beberapa situs web yang mendapatkan rute ke Server Hong Kong (HKG) dan paket ini jelas lebih baik daripada yang Gratisan. Pengguna paket \u0026ldquo;Business\u0026rdquo; biasanya akan mendapatkan rute ke Hong Kong (HKG) dan ada beberapa yang dapat Singapura (SIN), ada 1 Situs Web yang mendapatkan rute ke Negara Bagian Michigan di Amerika Serikat (DTW). Untuk Web/Blog yang menggunakan Paket \u0026ldquo;Enterprise\u0026rdquo; mayoritas akan mendapatkan rute ke Singapura (SIN). Cloudflare sendiri membedakan Prioritas Lalu Lintas Jaringan nya berdasarkan paket-paket yang ada, paket \u0026ldquo;Enterprise\u0026rdquo; adalah paket yang paling diprioritaskan11 12. Menurut saya, hal ini mereka lakukan karena biaya Bandwidth yang mereka bayarkan tergolong mahal untuk melayani banyak orang, sedangkan pengguna Cloudflare sendiri kebanyakan merupakan Pengguna Gratisan dan akan terus bertambah banyak.\nSehingga, pada akhirnya mereka mengarahkan lalu lintas pengunjung yang ingin mengunjungi Web/Blog yang menggunakan Cloudflare dengan paket selain \u0026ldquo;Business\u0026rdquo;/\u0026ldquo;Enterprise\u0026rdquo; ke Server yang paling murah, yakni yang paling jauh dari Pengunjung.\nUntuk mengatasi hal ini, dari segi ISP harus melakukan Direct-peering dengan Cloudflare13, tapi beberapa ISP Rumahan (berdasarkan dengan yang saya alami) seperti nya belum melakukan nya secara maksimal atau bahkan ada yang enggan untuk melakukan nya, sehingga koneksi dari ISP tertentu ke jaringan Cloudflare kurang begitu bagus, entah karena alasan apa.\nJika Anda mengetahui sesuatu atau bahkan jika Anda merupakan perwakilan dari suatu ISP (terutama terget pasaran nya adalah Pengguna Rumahan), mungkin bisa memberikan klarifikasi di kolom komentar 🙂\nKembali lagi ke hasil pengujian, kenapa saya selalu menyebutkan Telkomsel dan Telkom? Karena kedua itu yang paling menguasai jangkauan di seluruh Indonesia, bisa jadi hal ini yang membuat kedua ISP tersebut menjadi paling banyak pengguna nya.\nJadi, jika saya ingin menggunakan CDN dari Cloudflare, sedangkan kebanyakan pengunjung nya menggunakan Telkomsel, IndiHome dan Koneksi dari Jaringan Telkom lain nya, apa yang harus saya lakukan? Yah, seminimal-minimal nya Anda perlu berlangganan paket \u0026ldquo;Business\u0026rdquo;, atau berlangganan Paket \u0026ldquo;Enterprise\u0026rdquo; sekalian agar mendapatkan prioritas jaringan yang terbaik.\nProteksi DDoS Lapisan ke-7 dan CDN hanya bekerja untuk Protokol HTTP(S) saja Jika Anda ingin memproteksi Server Gim, FTP, SSH, RDP, RTMP, dan Server dengan Protokol selain HTTP(S) dari serangan DDoS, atau Anda ingin mengurangi latensi saat mengakses server Anda dengan Protokol selain HTTP(S), atau ingin mengakselerasi pengalaman memainkan gim secara daring dengan memanfaatkan CDN nya, maka Anda tidak bisa melakukan itu dengan layanan \u0026lsquo;yang ada\u0026rsquo;.\nKarena Proteksi DDoS dan CDN yang ada hanya bekerja untuk Protokol HTTP(S) saja, tidak untuk Protokol lain nya, alias hanya untuk Webserver saja. Jika Anda ingin menggunakan CDN untuk Server selain Webserver, maka Anda perlu menggunakan Cloudflare Spectrum untuk itu.\nLalu, apakah fitur tersebut bisa saya peroleh secara gratis? Oh, tentu saja tidak! Untuk menggunakan nya, minimal Anda harus berlangganan Paket \u0026ldquo;Pro\u0026rdquo; terlebih dahulu dan yang bisa diproteksi/digunakan palingan cuma sebatas Server Minecraft dan SSH dengan jatah Kuota Bandwidth sebesar 5 GB/bulan saja.\nAtau, jadilah pelanggan paket \u0026ldquo;Business\u0026rdquo; jika Anda ingin menggunakan CDN dan memproteksi Server RDP nya juga, serta diberikan jatah Bandwidth sebesar 10 GB/bulan untuk masing-masing Server.\nLalu, bagaimana jika saya ingin menggunakan CDN dan memproteksi Server selain itu, seperti Server Gim Kustom (contoh: Server SA:MP, MTA-SA, FiveM, atau Server Gim Kustom lainnya), Server Basis Data, FTP(S), RTMP, Server Perbankan, dll? Yah, Anda perlu berlangganan paket \u0026ldquo;Enterprise\u0026rdquo; nya kalau begitu.\nTidak bisa menggunakan Nameserver Kustom Jika Anda ingin menggunakan Nameserver Kustom di Pengelola DNS Cloudflare, contoh: ns1.domainkamu.com, ns2.domainkamu.com, dst, alih-alih cuma menggunakan xxxx1.ns.cloudflare.com dan xxxx2.ns.cloudflare.com sebagai Nameserver.\nHal itu bisa Anda lakukan, tapi tidak secara Gratis, minimal Anda perlu berlangganan paket \u0026ldquo;Business\u0026rdquo; untuk menggunakan fitur itu. Yap, Anda gak salah baca, minimal \u0026ldquo;Business\u0026rdquo; bukan paket \u0026ldquo;Pro\u0026rdquo;.\nMahal? Bagi yang butuh cuma Nameserver Kustom, mungkin iya. Tapi untuk kebanyakan kasus, seperti nya Anda belum tentu butuh fitur tersebut, kalaupun kamu butuh yah jangan gunakan Cloudflare sebagai pengelola DNS kamu 🙂\nPengunjung bisa jadi \u0026lsquo;kabur\u0026rsquo; jika Firewall nya tidak diatur Apakah Anda pernah mengalami hal dibawah ini saat mengakses Web/Blog yang menggunakan Cloudflare: Atau, bahkan ini: Jika Anda pernah mengalami nya, maka bukan hanya Anda saja yang pernah mengalami nya, tapi bisa saja pengunjung Web/Blog Anda mengalami hal yang serupa saat mengunjungi Web/Blog Anda yang menggunakan CDN dari Cloudflare. Tapi jika Anda jawab \u0026ldquo;tidak\u0026rdquo; pun juga belum tentu itu berlaku ke semua orang, termasuk pengunjung Web/Blog Anda, bisa jadi mereka mengalami hal-hal di atas juga.\nPenyebabnya macam-macam, salah satu yang paling sering adalah Alamat IP yang digunakan saat mengunjungi Web/Blog itu memiliki reputasi yang buruk alias \u0026ldquo;kotor\u0026rdquo;. Alamat IP \u0026ldquo;kotor\u0026rdquo; ini disebabkan oleh banyak hal, seperti aktivitas Phishing, Spamming, Menyebarkan Malware, Fraud, dsb, dengan menggunakan Alamat IP tersebut.\nAlamat IP yang \u0026ldquo;kotor\u0026rdquo; bukan berarti perbuatan pengunjung nya \u0026ldquo;kotor\u0026rdquo; juga, karena Alamat IP tersebut bisa digunakan oleh banyak orang, terutama saat orang berselancar dengan Internet dan Alamat IP yang digunakan tersebut akan diganti secara otomatis dalam beberapa menit hingga beberapa jam.\nJika Anda tahu Alamat IP Dinamis (Dynamic IP Address) itu apa, maka itulah sistem pembagian Alamat IP dari kebanyakan ISP Rumahan yang berlaku saat ini (apalagi untuk Seluler). Masalah seperti ini akan sering terjadi jika Web/Blog Anda dikunjungi oleh ISP yang memiliki Alamat IP dengan jumlah yang tidak banyak.\nKembali lagi ketopik yang sebenarnya, menggunakan CDN dari Cloudflare maka artinya kamu telah Menggunakan Firewall nya, ini yang membuat peran Firewall dari Server Asli/Asal (bisa kamu sebut \u0026ldquo;Server Hosting\u0026rdquo; jika Anda menggunakan layanan Hosting) terhadap Web/Blog kamu menjadi sedikit tidak berguna.\nSerta, jika pengunjung terus-terusan mengalami hal di atas, bukan nya menjadi tidak mungkin kalau pengunjung akan malas mengunjungi Web/Blog Anda, apalagi jika sampai tetap diblokir juga setelah beberapa kali mengaksesnya, atau jika Alamat IP dari Cloudflare diblokir oleh Firewall dari Server Asli/Asal.\nJadi, jika Anda tidak ingin kehilangan pengunjung hanya karena pengalaman di atas, maka aturlah Firewall dari Cloudflare nya dengan benar dan pastikan kalau Server Asli/Asal tidak memblokir Alamat IP dari Cloudflare.\nAtau, jika Hosting yang Anda gunakan itu menyediakan Proteksi terhadap DDoS secara gratis, maka sudah seharusnya Anda tidak perlu lagi menggunakan Proteksi DDoS atau Layanan Firewall dan CDN dari Cloudflare untuk itu, cukup percayakan saja kepada pihak Hosting dan lakukan pencadangan (backup) secara berkala ke luar Server Asal (entah data nya disimpan ke PC, ke Penyimpanan Awan, dll).\nLagian, Web/Blog kamu belum tentu selalu menjadi target dari serangan DDoS juga, kan? Masalah melindungi Web/Blog dari serangan lain, seperti Deface maka Anda bisa melakukan nya sendiri, tidak perlu sampai menggunakan CDN dari Cloudflare untuk itu.\nKesimpulan Setelah semua ini, apakah saya masih perlu menggunakan nya? Maka jawaban nya adalah Anda tidak disarankan menggunakan Layanan CDN Gratisan dari Cloudflare untuk Web/Blog Anda dengan dalih untuk mempercepat dan mengamankan suatu Web/Blog.\nKarena rute CDN nya yang seringkali ngaco terutama jika dikunjungi menggunakan koneksi dari Telkom (salah satunya: IndiHome)/Telkomsel karena Koneksi Internasional nya buruk, maka bukan nya mempercepat malah memperlambat bahkan menghalangi orang lain mengaksesnya. Hal tersebut tidak berlaku jika Anda berlangganan Paket \u0026ldquo;Enterprise\u0026rdquo; nya.\nSaya yakin bahwa masalah tersebut bukan cuma untuk 2 ISP itu saja, itupun belum sama resiko kehilangan pengunjung karena harus menyelesaikan CAPTCHA atau bahkan diblokir karena dikunjungi menggunakan Alamat IP yang \u0026ldquo;kotor\u0026rdquo; jika tidak diatur Firewall nya dengan baik, ini akan sering terjadi di ISP yang memiliki jumlah Alamat IP yang sedikit.\nBelum juga sama koneksi dari Server Hosting ke Cloudflare nya, kalo koneksi nya buruk atau bahkan Alamat IP Cloudflare nya sampai diblokir oleh Firewall Server nya, bisa-bisa Web/Blog nya malah dianggap nge-down, padahal tidak sama sekali.\nJika Anda ingin menggunakan Cloudflare sebagai CDN dengan alasan apapun, maka jangan terlalu berharap terutama pada kecepatan. Saya sendiri lebih menyarankan Anda untuk menggunakan nya sebagai Pengelola DNS untuk Domain Anda, dan itu masih sangat layak digunakan tanpa perlu berlangganan apapun alias secara Gratis, karena Server DNS nya sangat cepat dan reliabel untuk versi gratis nya.\nPertanyaan dan Jawaban yang (akan) sering ditanya Ini adalah bagian yang berisi tentang Pertanyaan yang (akan) sering ditanyakan, beserta Jawaban nya.\nMungkin Anda perlu membaca pertanyaan dan jawaban nya terlebih dahulu sebelum bertanya di kolom komentar sebagai referensi Anda.\nPertanyaan ke-1: Pengunjung saya kebanyakan tidak menggunakan ISP Telkomsel/Telkom, apakah disarankan menggunakan CDN dari Cloudflare yang gratisan? Jawab: Tetap saja tidak terlalu disarankan, saya masih menyarankan Anda untuk menggunakan pengelola DNS nya daripada CDN nya jika Anda ingin Gratisan.\nPaling utama nya tetap saja Rute CDN nya, walaupun kata kamu bagus koneksi nya, tapi itu tidak menjamin bahwa koneksi ke Jaringan Cloudflare akan baik juga kedepan dan lagipula tidak ada jaminan bahwa rute CDN yang didapat akan selalu konsisten dan akan selalu mendapatkan pusat data yang terbaik untuk pengunjung Anda, apalagi jika Anda adalah pengguna Gratisan.\nPertanyaan ke-2: Apakah ada cara lain untuk menentukan rute CDN Cloudflare selain mengunjungi Situs Web cloudflare-test.judge.sh? Lalu, bagaimana Anda menebak paket Cloudflare yang digunakan oleh pemilik Web/Blog tanpa mengunjungi Situs Web tersebut? Jawab: Ada, caranya Anda tinggal tambahkan /cdn-cgi/trace setelah mengetikkan Alamat Domain/Nama Hos (Hostname) saat Anda ingin mengunjungi sebuah Web/Blog di Peramban Web Anda, contoh formatnya menjadi seperti ini: https://contoh.domain.com -\u0026gt; https://contoh.domain.com/cdn-cgi/trace\nNB: Anda tinggal ganti saja contoh.domain.com nya menjadi Alamat Domain/Nama Hos untuk Web Anda.\nItu merupakan sebuah alat yang disediakan oleh Cloudflare untuk membantu pemecahan masalah saat Web/Blog menggunakan CDN dari Cloudflare, salah satu contohnya adalah masalah lambatnya web/blog ketika diakses, informasi-informasi yang ditampilkan nya cukup membantu untuk usaha penyelesaian masalah.\nCuplikan dibawah ini merupakan hasil dari penggunaan /cdn-cgi/trace untuk nama hos cloudflare-test.franqois.id yang menggunakan Cloudflare Gratisan:\nSeperti yang Anda lihat bahwa saya diarahkan ke Server/Pusat data yang ada di Singapura (SIN), dilihat dari colo nya yang bernilai SIN, padahal lokasi nya ada di Indonesia (loc=ID) dan Cloudflare mempunyai pusat data nya di Jakarta14.\nNah, dari sini lah saya biasanya menebak Paket Cloudflare apa yang Anda gunakan untuk Web/Blog Anda, kalau rutenya tidak sesuai dengan ekspektasi, maka saya tebak kalau kemungkinan terbesarnya Anda menggunakan CDN Cloudflare Gratisan atau bisa jadi pengguna Paket \u0026ldquo;Pro\u0026rdquo;, jika sebaliknya maka bisa dipastikan kemungkinan terbesarnya menggunakan paket \u0026ldquo;Enterprise\u0026rdquo;, meskipun ada kemungkinan yang menggunakan Paket \u0026ldquo;Business\u0026rdquo; juga.\nOh iya, saya tidak menggunakan koneksi dari ISP Telkomsel/Telkom (seperti: IndiHome) untuk melakukan pengujian di atas, melainkan saya menggunakan Transvision Hi-Speed yang nanti akan saya ceritakan pengalaman nya.\nPertanyaan ke-3: Apa maksud dari 3 Huruf yang tampil di Situs Web cloudflare-test.judge.sh atau di /cdn-cgi/trace? Seperti SIN atau colo=SIN? Jawab: 3 Huruf itu adalah Kode IATA (singkatan dari: International Air Transport Association atau bahasa Indonesia nya: Asosiasi Pengangkutan Udara Internasional), kebanyakan bandar udara (baik domestik ataupun internasional) memiliki kode ini sebagai Identifikasi.\nMisalnya: SIN yang tampil pada hasil pengujian di pertanyaan ke-2 itu merupakan kode IATA untuk Bandar Udara Internasional Changi Singapura.\nJadi, Cloudflare menggunakan kode IATA sebagai nama letak pusat data nya.\nPertanyaan ke-4: Saya ingin menghemat konsumsi Bandwidth, tapi saya tidak ingin menggunakan CDN dari Cloudflare. Bagaimana caranya? Jawab: Jawaban nya ada di artikel saya yang berjudul \u0026ldquo;Cara menghemat Konsumsi Bandwidth Server\u0026rdquo;.\nSilahkan Anda terapkan solusi-solusi yang bisa Anda terapkan, seperti: Mengatur Header Cache-Control, Mengecilkan Ukuran berkas-berkas statik, Memuat berkas-berkas statik dari Server lain, dll.\nJika Anda menggunakan CDN lain selain Cloudflare juga bisa saja.\nPertanyaan ke-5: Apakah ada referensi Layanan CDN lain selain Cloudflare? Jawab: Ada, banyak malah.\nJika Anda ingin Layanan CDN yang gratis, Anda bisa pertimbangkan jsDelivr atau Statically, namun Anda tidak bisa mengontrol penggunaan CDN nya, karena pada dasarnya itu merupakan Layanan CDN untuk Umum, sehingga sebelum menggunakan nya, harap baca dokumentasinya dulu biar tidak menyalahgunakan nya.\nMeskipun begitu, Layanan CDN seperti Statically mampu menghantarkan berkas-berkas gambar, JS, dan CSS yang tersimpan di dalam Web/Blog kamu, bukan hanya di dalam sebuah Repository saja. Bahkan Statically memiliki Plugin WordPress nya secara resmi yang berguna untuk meng-integrasikan Statically dengan Web/Blog yang menggunakan WordPress (Hos-mandiri).\nSedangkan jika Anda ingin Layanan CDN yang murah, namun dengan kualitas yang tidak kalah dengan yang mahal yang tentunya memiliki penggunaan yang mudah, mungkin Anda bisa pertimbangkan Bunny CDN*, Anda bisa coba terlebih dahulu selama 14 Hari tanpa pengurangan fitur apapun sebelum membayar nya.\n*Catatan mengenai tautan di atas Tautan BunnyCDN di atas merupakan tautan afiliasi, jika Anda mendaftar dan membayar sebuah layanan melalui tautan tersebut, maka Anda telah memberikan dukungan terhadap saya agar saya lebih bersemangat dalam menulis artikel, karena menulis itu menguras tenaga, pikiran dan waktu.\nTapi tenang saja, Anda tidak akan terkena biaya tambahan apapun karena afiliasi ini, saya jamin 100%.\nSelain BunnyCDN, mungkin Anda bisa mencoba Layanan CDN dari Arc.io, selain mendapatkan layanan CDN yang berbasis Peer-to-Peer (P2P) nya, Anda bisa mendapatkan uang juga.\nAtau, jika Anda ingin Layanan CDN yang kelas dunia, namun Anda tidak ingin menggunakan Cloudflare Enterprise, bisa gunakan Layanan CDN dari Akamai atau 5centscdn untuk lebih \u0026lsquo;murah\u0026rsquo; nya.\nSekadar Informasi saja bahwa mayoritas ISP di Indonesia (termasuk Telkomsel/Telkom) memiliki hubungan/relasi yang baik dengan Akamai dan bahkan ada beberapa diantaranya memiliki Server Cache nya sendiri sehingga akses nya akan jauh lebih cepat oleh Pengguna ISP nya, sehingga ini patut dipertimbangkan.\nLayanan CDN dari Hyperscaler Raksasa seperti Google Cloud CDN, AWS CloudFront/Global Accelerator, Alibaba Cloud CDN atau Microsoft Azure CDN** mungkin bisa Anda pertimbangkan juga, mengingat mayoritas dari mereka memiliki pusat data di Indonesia (khususnya di Jakarta) dengan biaya yang bisa Anda hitung sendiri dan masing-masing ada \u0026ldquo;Tingkat Gratis\u0026rdquo; nya juga, walau gak semua.\n**Catatan: Microsoft Azure CDN memiliki 3 Penyedia CDN yang (mungkin) bisa Anda pilih sendiri, yakni Akamai, Verizon EdgeCast atau CDN dari Microsoft itu sendiri. Saya bilang \u0026ldquo;mungkin\u0026rdquo; karena saya belum pernah pakai saja.\nSaya tidak bisa menyebutkan selain itu, jadi saya kira cukupkan sampai sini saja untuk layanan CDN nya.\nPertanyaan ke-6: Apa itu \u0026ldquo;Server Asli\u0026rdquo; atau \u0026ldquo;Server Asal\u0026rdquo;? Jawab: \u0026ldquo;Server Asli\u0026rdquo; atau \u0026ldquo;Server Asal\u0026rdquo; itu merujuk pada Server yang Anda gunakan untuk menghoskan Situs Web/Blog Anda, entah itu di Server Hosting (jika Anda menggunakan layanan Shared Hosting dan layanan Hosting lainnya), Server VPS, Server Khusus (Dedicated Server), Server Kolokasi (Colocation Server), Server Penyimpanan (Storage Server), dll.\n\u0026ldquo;Server Asli\u0026rdquo; atau \u0026ldquo;Server Asal\u0026rdquo; juga merupakan Bahasa Indonesia dari \u0026ldquo;Origin Server\u0026rdquo;. Kenapa disebut seperti itu oleh Penyedia CDN adalah karena cara kerja CDN itu sendiri yang berperan sebagai \u0026lsquo;penengah\u0026rsquo;.\nMaksudnya adalah saat Situs Web/Blog yang menggunakan CDN itu dikunjungi oleh pengunjung, maka Server CDN (yang biasa disebut sebagai \u0026ldquo;PoP\u0026rdquo; atau Point of Presence) akan \u0026ldquo;menarik\u0026rdquo; sumberdaya yang dibutuhkan dari Server Situs Web/Blog nya agar sumberdaya tersebut didistribusikan kedalam Server CDN, kemudian dikirim ke pengunjung.\nNah, setelah dikunjungi untuk kedua kali atau seterusnya, maka sumberdaya yang diperlukan akan sepenuhnya dimuat dari Server CDN/PoP yang ada. Kira-kira, seperti itulah alasan nya.\nPertanyaan ke-7: Apakah ini sepenuhnya salah ISP? Jawab: Tidak selalu dan tidak sepenuhnya salah juga, pihak Cloudflare dan pengguna nya juga gak bisa lepas dari ini.\nSeperti yang saya bahas sebelumnya, bahwa Cloudflare juga membedakan Prioritas Jaringan berdasarkan paket-paket yang digunakan nya, artinya secara \u0026ldquo;otomatis\u0026rdquo; mereka juga \u0026lsquo;sengaja\u0026rsquo; mengarahkan pengunjung Situs Web/Blog yang menggunakan Cloudflare Gratisan ke Server/Pusat data \u0026ldquo;termurah\u0026rdquo;.\nSedangkan, pengguna CDN Cloudflare Gratisan kemungkinan akan terus bertambah sampai waktu yang belum ditentukan dengan alasan yang berbeda-beda, belum lagi ramainya pengunjung pada satu atau banyak Situs Web/Blog yang menggunakan CDN Cloudflare Gratisan yang masing-masing menghabiskan puluhan sampai ribuan GB setiap hari/setiap waktu yang bisa menjadi penyebab semua ini.\nJadi, siapa yang pantas disalahkan? Apakah pihak ISP, Cloudflare, Pengguna CDN Cloudflare yang Gratisan lain nya atau malah Anda sendiri atau malah semuanya? Silahkan Anda nilai saja sendiri.\nPenutup Ya sudah, sepertinya pembahas di artikel ini saya cukupkan sampai sini saja. Ngomong-ngomong, saya tulis artikel ini dimulai dari tanggal 06 April 2021 dan Artikel ini terbit saat di bulan Ramadhan tahun ini, tidak terasa juga yah 🙂\nTerima kasih bagi Anda yang telah membaca artikel ini. Mohon maaf jika artikel ini memiliki kekeliruan dan kesalahan, baik dari ada yang salah ngetik, terlalu panjang, bertele-tele, dll.\nSerta saya juga tidak bermaksud untuk menyinggung siapapun di sini, saya cuma bermaksud untuk membahas tentang Kelebihan dan Kekurangan dari Ketiga Layanan Cloudflare yang bisa digunakan untuk Web/Blog Anda. Saya juga berharap agar pembaca bisa mempertimbangkan keputusan nya mengenai penggunaan layanan dari Cloudflare untuk Web/Blog nya setelah membaca artikel ini.\nJika adanya kesalahan dan kekeliruan dari saya, atau jika Anda memiliki pertanyaan lain nya/klarifikasi, bisa Anda berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk kedepan nya nanti.\nTerima kasih atas perhatian nya dan Selamat menunaikan Ibadah Puasa Ramadhan 1442H bagi umat Muslim yang menjalankan nya 🙏 😊\nPEMBARUAN Jum\u0026rsquo;at, 28 Mei 2021: Sekarang bulan Ramadhan sudah berakhir dan memasukki bulan Syawal sejak Artikel ini diperbarui. Selamat Hari Raya Idul Fitri 1442H, Mohon maaf lahir dan batin dan maaf juga kalau saya sangat telat mengucapkan nya 🙏\nPenggunaan Gambar dan Atribusi Berkas-berkas Gambar (seperti Cuplikan layar dan Gambar lain nya) yang digunakan di dalam artikel ini, disediakan di dalam Repository Blog ini.\nJika Anda ingin menjelajahi nya, silahkan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2021/04/23-apa-itu-cloudflare-dan-perlukah Gambar Illustrasi yang nama berkasnya adalah NCDN_-_CDN.png itu merupakan Illustrasi yang dibuat oleh \u0026ldquo;Kanoha\u0026rdquo; bersumber dari Wikimedia Commons dan dilisensikan di bawah \u0026ldquo;CC BY-SA 3.0 Unported\u0026rdquo; oleh sang pembuat.\nLogo Cloudflare (yang saya gunakan sebagai sampul artikel ini) merupakan Merek Dagang/Pakaian Dagang terdaftar dari Cloudflare, Inc.\nJadi, logo-logo tersebut tetap milik mereka yang memiliki merek/pakaian dagang. Jika Anda ingin mengunduh dan menggunakan logo-logo tersebut, silahkan kunjungi Laman Logo Cloudflare.\nCloudflare, \u0026ldquo;Our Plans | Pricing\u0026rdquo;, https://www.cloudflare.com/plans/ (diakses pada tanggal 19 April 2021, pukul 01:46 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nCloudflare, \u0026ldquo;Data Center Map | CDN PoP Locations Map\u0026rdquo;, https://www.cloudflare.com/network/ (diakses pada tanggal 19 April 2021, pukul 01:53 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nCloudflare, \u0026ldquo;DNSSEC Protection | Provision and manage DNSSEC with Cloudflare\u0026rdquo;, https://www.cloudflare.com/dns/dnssec/ (diakses pada tanggal 19 April 2021, pukul 01:56 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nMatthew Prince (The Cloudflare Blog), \u0026ldquo;Introducing CNAME Flattening: RFC-Compliant CNAMEs at a Domain\u0026rsquo;s Root\u0026rdquo;, https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/ (diakses pada tanggal 19 April 2021, pukul 01:58 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nCloudflare Help Center, \u0026ldquo;Importing and exporting DNS records\u0026rdquo;, https://support.cloudflare.com/hc/en-us/articles/200168856-Importing-and-exporting-DNS-records (diakses pada tanggal 19 April 2021, pukul 02:01 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nCloudflare, \u0026ldquo;Cloudflare WAF | Web Application Firewall\u0026rdquo;, https://www.cloudflare.com/waf/ (diakses pada tanggal 19 April 2021, pukul 02:11 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nSyeilendra Pramuditya, \u0026ldquo;Koneksi Internet Telkom (IndiHome/Telkomsel) Tidak Bisa Akses CloudFlare?\u0026rdquo;, https://syeilendrapramuditya.wordpress.com/2020/04/29/koneksi-internet-telkom-indihome-telkomsel-tidak-bisa-akses-cloudflare/ (diakses pada tanggal 11 April 2021, pukul 23:42 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nHarsh Kansagara (Twitter: @theharshin), https://twitter.com/theharshin/status/1278606869691424768 (diakses pada tanggal 11 April 2021, pukul 23:50 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nDiskusi Web Hosting, \u0026ldquo;Masalah Telkomsel/Telkom ?\u0026rdquo;, https://www.diskusiwebhosting.com/threads/masalah-telkomsel-telkom.34190/ (diakses pada tanggal 11 April 2021, pukul 23:44 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nBiruDaun Web Developer, \u0026ldquo;Cloudflare? It’s time we moved on.\u0026rdquo;, https://www.indonesiadigitalmarketing.id/id/cloudflare-its-time-we-moved-on/ (diakses pada tanggal 19 April 2021, pukul 06:02 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n\u0026ldquo;United States Securities and Exchange Commission\u0026rdquo; dan \u0026ldquo;Cloudflare, Inc.\u0026rdquo;, Halaman 79 dari Dokumen \u0026ldquo;FORM S-1 REGISTRATION STATEMENT\u0026rdquo;, https://www.sec.gov/Archives/edgar/data/1477333/000119312519222176/d735023ds1.htm (diakses pada tanggal 14 April 2021, pukul 22:27 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nHunter Ray (GitHub: judge2020), \u0026ldquo;Explanation\u0026rdquo;, https://github.com/judge2020/cloudflare-connectivity-test/wiki/Explanation (diakses pada tanggal 14 April 2021, pukul 23:45 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nDom J. H. (Cloudflare Community), \u0026ldquo;Peering - Why don’t I reach the closest datacenter to me?\u0026rdquo;, https://community.cloudflare.com/t/peering-why-dont-i-reach-the-closest-datacenter-to-me/76479 (diakses pada tanggal 19 April 2021, pukul 03:38 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nChris Chua (The Cloudflare Blog), \u0026ldquo;Good Morning, Jakarta!\u0026rdquo;, https://blog.cloudflare.com/selamat-pagi-jakarta-customers/ (diakses pada tanggal 19 April 2021, pukul 17:26 WIB)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2021-04-23T00:31:39+07:00","image":"/apa-itu-cloudflare-dan-perlukah/CF_logo_stacked_blktype_hu_dffaba1eefa95c2e.webp","permalink":"/apa-itu-cloudflare-dan-perlukah/","title":"Apa itu Cloudflare? Perlukah untuk menggunakan nya?"},{"content":"Alasan Migrasi dari Pelican ke Hugo Pelican (bukan Burung \u0026lsquo;Pelican\u0026rsquo;) merupakan salah satu Static-site Generator (atau saya singkat \u0026ldquo;SSG\u0026rdquo;) berbasis Python yang cukup populer di kalangan pengguna Python, saya adalah salah satu pengguna sebelumnya.\nAwalnya saya sendiri juga menggunakan nya daripada SSG lain seperti Hugo karena saat itu saya sedang belajar Bahasa Pemrograman Python.\nSetelah beberapa waktu saya menggunakan nya, saya malah jadi gak posting-posting selama hampir 2 tahun karena saya menghabiskan waktu nya untuk memahami SSG tersebut agar Blog saya berjalan dengan fitur yang sesuai dengan kebutuhan saya, setelah lama mencari, akhirnya saya malah pindah hati ke Hugo + Mengganti Tema nya.\nKenapa saya lakukan itu? Alasan nya bisa Anda lihat di bawah ini.\nSaat Instalasi Saat Instalasi, Pelican memerlukan untuk meng-instal Python dan beberapa modul nya terlebih dahulu agar bisa dieksekusi.\nJadi mau tidak mau dan suka tidak suka, saya harus menggunakan fitur \u0026ldquo;Virtual Environment\u0026rdquo; (Lingkungan Virtual) yang ada pada Python agar tidak terjadi konflik antar modul yang terinstall, serta supaya hanya modul yang diperlukan saja yang diinstal.\nTapi tentu saja ini akan sulit untuk mengatur modul-modul nya, sehingga ini kurang bisa untuk mengatasi masalah \u0026ldquo;Ini bekerja di mesin saya, kok\u0026rdquo;.\nAkhirnya saya manfaatkan \u0026ldquo;Poetry\u0026rdquo; sebagai Pengelola Modul agar bisa mengelola modul-modulnya dengan lebih mudah, dan bahkan bisa dengan mudah meng-install modul Python yang diperlukan di Komputer lain.\nSemua hal di atas tentu saja sangat merepotkan buat saya, sudah banyak langkah (Belum lagi Install Python dan \u0026ldquo;Poetry\u0026rdquo; nya sendiri), makan waktu dan tenaga pula.\nSedangkan Hugo? Semua hal di atas tidak pernah terjadi dan saya gak ada kendala ataupun keluhan sama sekali. Artinya, saya gak perlu Install Modul/Ketergantungan apapun hanya untuk menggunakan nya, bahkan termasuk Bahasa Pemrograman Go sekalipun.\nKenapa? Karena Hugo sendiri telah menyediakan Berkas Biner yang telah dihimpun (atau di-compile) sebelumnya. Sudah gitu, Hugo telah menyediakan berkas biner untuk beberapa Sistem Operasi dan beberapa Platform yang berbeda pula (Lintas Platform/Cross-platform).\nLalu apa artinya itu? Ini Artinya Anda hanya perlu mempunyai 1 Berkas Biner Hugo (bisa dengan mengunduhnya) untuk Sistem Operasi yang Anda gunakan, lalu tinggal Anda eksekusikan saja.\nMau Hugo nya bisa dieksekusi di manapun? Anda tinggal copas/pindahkan saja berkas tersebut ke dalam direktori yang sudah termasuk ke dalam Variabel PATH. Di Sistem Operasi GNU/Linux (apapun Distribusinya), Anda bisa meletakannya ke dalam direktori /usr/local/bin.\nSemua ini bisa Anda lakukan tanpa harus Install Modul/Ketergantungan apapun terlebih dahulu, alias tinggal langsung pakai saja dan tentu saja tanpa harus Install melalui Pengelola Paket (Package Manager), meskipun itu bisa dilakukan.\nKecepatan Komputer yang saya gunakan masih menggunakan Harddisk sebagai Penyimpanan Utama (belum menggunakan SSD, kecuali Laptop, karena belum sanggup beli).\nMaka kecepatan dalam membuat Blog Statis adalah hal yang paling terasa perbedaan nya. Di Pelican, dalam membuat Blog Statis, maka diperlukan beberapa detik untuk menyelesaikan nya, kadang 2-8 detik atau 1-5 detik jika adanya perubahan pada suatu berkas, bahkan sampai puluhan detik paling lambat nya, terutama jika itu dilakukan di Sistem Operasi Windows.\nSedangkan di Hugo? Paling Lambat sekitar 1-6 detik an saja atau sekitar beberapa milidetik jika adanya perubahan, dan itupun dalam posisi dinonaktifkan \u0026ldquo;Fast Render\u0026rdquo; nya, baik di GNU/Linux ataupun di Windows juga sama saja kecepatan nya.\nItu bisa saja banyak faktor dan relatif juga, mungkin banyaknya modul atau/dan konfigurasi itu yang membuatnya lama, tapi modul-modul tersebut saya perlukan juga agar blog nya berjalan sesuai kebutuhan saya.\nPada akhirnya, ini cuma masalah selera aja sih, hehe 😀\nModifikasi Tema Di Pelican, jika saya ingin memodifikasi tema nya, maka saya sampai harus membuat Repo Git khusus yang berisikan Tema yang saya gunakan sekarang, lalu tinggal saya modifikasi sesuka saya.\nMemang ini merupakan hal yang mudah, tapi hal ini sangat merepotkan saya, terlebih kalo tema tersebut ada pembaruan penting buat blog saya dari Hulu (Upstream), sehingga mau tidak mau saya harus memperbarui nya secara manual, itu malesin banget.\nAwalnya saya ingin memanfaatkan perintah git untuk memperbarui nya, tapi karena terlalu banyak berkas yang di modifikasi, akhirnya malah menimbulkan konflik, sehingga ini menjadi kurang efisien. Mungkin karena saya kurang jago dalam menggunakan git ini kali yah, hehe 😀\nDan menurut saya, 1 Repo terpisah hanya untuk Modifikasi Tema ini memang gak banget.\nBisa saja temanya saya letakkan di dalam Kode Sumber Blog saya, namun ujung-ujungnya yah sama saja + Ukuran Repo Git nya malah jadi \u0026ldquo;buncit\u0026rdquo; nantinya gara-gara tema.\nSedangkan di Hugo, saya cuma perlu merubah berkas-berkas seperlunya dengan memanfaatkan folder-folder yang ada di Kode Sumber Blog nya, seperti: layouts (Untuk Tata letak Tema), data (Untuk Data pada Tema/Blog) dan i18n (Untuk Terjemahan pada Tema) untuk memodifikasi tema tanpa harus membuat Repository baru lagi atau gak perlu \u0026rsquo;ngubek-ngubek\u0026rsquo; berkas dari tema aslinya secara keseluruhan, mirip seperti konsep \u0026ldquo;WordPress Child Themes\u0026rdquo;.\nCaranya mudah, Anda tinggal copas berkas yang ingin Anda rubah ke dalam Kode Sumber Blog/Situs Web kamu, lalu tinggal modifikasi sesuka hati Anda.\nPastikan lokasi/direktori berkas di Kode Sumber Blog/Situs Web nya mengikuti direktori berkas pada Tema nya.\nContoh: Jika Anda ingin merubah isi berkas article.html yang terletak di dalam direktori themes/(NAMA_TEMA)/layouts/partials/article, maka Anda perlu meletakkannya ke dalam direktori layouts/partials/article pada Kode Sumber Blog/Situs Web nya juga.\nDan berkat ini, saya hanya perlu manfaatkan Git Submodules saja untuk meng-install temanya.\nFitur Bawaan Di Pelican, fitur bawaannya kurang begitu lengkap untuk kebutuhan saya, untuk menambahkan suatu fitur saja, saya harus menambahkan sejumlah Plugin yang menurut saya itu cukup rumit.\nBahkan agar bisa membuat artikel dengan lebih dari satu kategori saja saya harus memasang sebuah Plugin, yang mana ini akan membuat kecepatan untuk menghasilkan Blog Statis menjadi berkurang. Belum lagi rata-rata Plugin yang ada kebanyakan malah tidak diperbarui/tak \u0026rsquo;terawat\u0026rsquo;.\nSedangkan di Hugo, fitur-fitur bawaan yang ada di Hugo terbilang cukup lengkap bagi saya, bahkan Hugo sendiri telah menyediakan sejumlah Template Internal \u0026ldquo;Google Analytics\u0026rdquo;, \u0026ldquo;Disqus\u0026rdquo;, dll agar kemudian bisa di aplikasikan oleh pembuat Tema jika berkenan.\nDan dengan memanfaatkan fitur Shortcodes saat membuat berkas Markdown, kita bisa menyisipkan Tag/Kode HTML yang kita butuhkan, bahkan ketika fitur tersebut tidak ada di Tema sekalipun.\nSeperti fitur \u0026ldquo;Daftar Isi\u0026rdquo; yang tidak semua Tema punya, termasuk Tema yang saya gunakan ini yang sampai sekarang belum ada fiturnya.\nPEMBARUAN, 03 November 2021: Sekarang tema ini memiliki fitur Daftar Isi sejak versinya yang ke v2.4.0.\nOptimalisasi Blog/Web Catatan: Bagian ini masih berhubungan dengan Bagian \u0026ldquo;Fitur Bawaan\u0026rdquo;.\nSudah menjadi rahasia umum memang bahwa Optimalisasi Blog/Web menjadi aspek yang sangatlah penting, karena tidak semua orang memiliki koneksi Internet yang cepat dan stabil, bahkan jika sudah menggunakan Layanan CDN (Content Delivery Network) atau ADN (Application Delivery Network) sekalipun.\nSehingga memadatkan berkas Skrip, HTML (atau disebut: minify) dan mengoptimalkan Gambar yang di muat itu sudah menjadi kewajiban bagi pemilik/pemelihara Blog/Web.\nDi Pelican, untuk bisa mengoptimalkan Skrip, HTML dan Gambar saja harus menggunakan Plugin dan meng-install beberapa modul yang diperlukan, sehingga hal ini mengorbankan kecepatan dalam menghasilkan/me-render Blog Statis itu sendiri.\nSedangkan di Hugo, masalah di atas tidak terjadi, di Hugo juga tersedia fitur optimasi yang cukup lengkap (Kecuali konversi gambar ke format WebP, AVIF dan JXL) yang tentu nya itu merupakan fitur bawaan, tinggal pembuat/pemodifikasi Tema nya saja yang mau mengoptimalkan nya atau tidak.\nPEMBARUAN, 03 November 2021: Hugo sekarang mendukung pemrosesan gambar WebP, termasuk konversi gambar ke format WebP sejak versi 0.83.0\nUntuk alasan nya, saya cukupkan disini saja, sebenarnya masih ada lagi alasan kenapa saya malah bermigrasi ke Hugo, cuma gak mau saya bahas aja, kepanjangan nanti nya, artikel segini aja udah panjang :face_with_tongue:\nSetelah saya membahas Alasan nya, saya ingin menekankan bahwa membahas alasan Migrasi ke Hugo bukan berarti saya menjelekkan SSG sebelumnya, yakni Pelican. Saya cuma murni ingin membagikan pengalaman saya saja selama menggunakan nya, semua juga memiliki kelebihan dan kekurangan nya masing-masing tergantung kebutuhan pengguna nya saja, kalo untuk kasus saya yah Pelican ini kurang bisa memenuhi kebutuhan saya akan hal itu.\nBagaimana Migrasi nya? Untuk migrasinya sendiri cukup mudah, saya hanya perlu migrasi artikel-artikel dan beberapa laman saja.\nSaya lakukan itu secara manual serta saya perlu untuk mengedit beberapa teks dan beberapa tautan agar mereka bisa tampil dengan layak.\nUntuk gambarnya sendiri, seperti yang Anda lihat, sekarang saya tidak menggunakan Repo dari luar lagi, tapi sebagai gantinya saya meletakkan berkas gambarnya ke dalam direktori masing-masing Artikelnya secara bersamaan dengan berkas Markdown nya.\nUntungnya saat ini artikelnya masih sedikit, sehingga saya gak terlalu capek melakukannya.\nKonfigurasi dan Plugin tidak mungkin saya migrasikan kesini, begitupun dengan temanya, sehingga pada akhirnya saya ganti tema juga.\nRencana Blog Kedepan Penggunaan SSG dan Arsip Blog lama Karena saya sudah lebih puas menggunakan Hugo daripada SSG sebelumnya, maka sudah pasti saya tidak akan beralih lagi ke SSG sebelumnya.\nDan mungkin juga saya akan membuat Arsip untuk Blog dengan SSG sebelum nya, biar kalian nanti nya tahu seperti apa blog saya sebelumnya, itupun jika situasi dan kondisi nya memungkinkan.\nUntuk saat ini, Arsip nya bisa Anda lihat di sini.\nDi bawah ini adalah cuplikan layar mengenai penampilan dari Blog Statis lama saya:\nHosting Untuk sekarang ini, saya menggunakan Netlify sebagai Hos nya dan tentu saja ini versi gratis nya yang (sepertinya) cuma terdiri dari 6 PoP (Point of Presence).\nJumlah seperti ini tentu saja sangatlah sedikit, tapi memang ini masih jauh lebih baik ketimbang saya meng-hos-kan nya di Layanan Web Hosting kebanyakan.\nPada awal tahun ini, bunny.net (sebelumnya BunnyCDN) berencana ingin memperkenalkan sebuah Produk Penyimpanan berbasiskan S3 nya, berdasarkan cuitan di bawah ini:\nWe\u0026#39;ve heard you about Edge Storage S3 compatibility. It\u0026#39;s definitely coming as soon as the bunnies finish smashing the keyboard! 🐇\n\u0026mdash; bunny.net 🐰 (@BunnyCDN) November 29, 2020 Jika itu benar-benar terjadi, maka saya akan berencana untuk pindah Hosting ke bunny.net dengan memanfaatkan Penyimpanan S3 nya + CDN nya selama Saldo saya masih banyak, daripada saya harus tinggal lama di Netlify.\nPEMBARUAN Kamis, 22 Maret 2021: Sekarang saya telah menggunakan Bunny CDN untuk Hosting nya, meskipun mereka masih menggunakan protokol FTP, terlalu lama rasanya jika saya menunggu dan pindah Hosting ini dari awal bulan ini. Tapi, pada akhirnya saya bisa menemukan cara untuk men-deploy Blog nya tanpa harus menggunakan JavaScript/NodeJS.\nPEMBARUAN Rabu, 07 Juli 2021: Sekarang ini saya sudah menggunakan Storj DCS (Decentralized Cloud Storage) sebagai Hosting, jadi saya gak terlalu perlu menunggu fitur dari Bunny.net tentang Object Storage nya.\nCI/CD (Contnuous Integration/Continuous Delivery) Hingga saat ini, saya masih menggunakan layanan CI/CD (Contnuous Integration/Continuous Delivery) bawaan dari Netlify nya. Ini peran nya untuk menghasilkan Blog Statis dari Kode Sumber yang ada saat saya melakukan git push.\nSebelumnya saya gunakan \u0026ldquo;GitHub Actions\u0026rdquo; untuk layanan CI/CD nya, namun karena proses pembuatan nya yang begitu ruwet (sampai harus melibatkan NodeJS segala untuk Deploy ke Netlify), maka gak saya gunakan lagi untuk saat ini.\nJika Produk Penyimpanan S3 dari Bunny.net benar-benar di perkenalkan pada awal tahun ini, maka saya akan kembali gunakan \u0026ldquo;GitHub Actions\u0026rdquo; untuk layanan CI/CD nya.\nPEMBARUAN Kamis, 22 Maret 2021: Karena saya telah menggunakan Bunny CDN untuk Hosting nya, maka saya menggunakan GitHub Actions untuk layanan CI/CD nya.\nPEMBARUAN Rabu, 07 Juli 2021: Saya sudah menggunakan Storj DCS sebagai hosting, dan masih tetap menggunakan GitHub Actions sebagai CI/CD, hanya saja sekarang menjadi lebih mudah saja.\nArtikel Blog Seperti yang Anda lihat, bahwa sekarang Iklan dan Analitik di blog ini sudah tidak ada sama sekali.\nKenapa? Sederhana, karena itu memperlambat akses blog serta mengurangi kenyamanan pengunjung karena Iklan dan Analitik yang terpasang. Belum lagi masalah Privasi yang ada pada Layanan tersebut (walaupun bisa saja diblokir menggunakan Adblocker sih).\nLalu, bagaimana nanti saya mendapatkan Uang? Karena Iklan tidak ada, maka sebagai ganti nya saya akan membuat \u0026ldquo;Artikel Berbayar\u0026rdquo;.\nYa, Anda gak salah lihat ataupun baca, \u0026ldquo;Artikel Berbayar\u0026rdquo;. Dimana Anda perlu membayar atau berlangganan dengan biaya tertentu agar Anda bisa membaca nya. Tentu saja, tidak semua Artikel di sini berbayar dan hanya Artikel tertentu saja yang saya buat berbayar.\nSaya akan gunakan Platform Trakteer untuk melakukan hal itu, jika Anda ingin membaca Artikel Berbayar nya nanti, Anda hanya perlu mentraktir saya disini.\nSistem Komentar Untuk saat ini saya masih menggunakan Disqus sebagai Sistem Komentar nya, namun Disqus disini juga memiliki sebuah masalah.\nSelain masalah tentang banyaknya aset Web yang dimuat atau dengan kata lain \u0026ldquo;terlalu buncit\u0026rdquo; bagi kebanyakan orang (meskipun sudah menggunakan fitur \u0026ldquo;IntersectionObserver\u0026rdquo; sebagai Lazy-load nya sih), Disqus juga memiliki masalah pada Privasi Pengguna nya, sehingga saya berencana ingin memigrasikan Sistem Komentar di Blog ini.\nRencana nya saya ingin menggunakan Remark42 atau Staticman sebagai Sistem Komentar nya, tapi saya sendiri bingung untuk mempertimbangkan nya.\n\u0026ldquo;Remark42\u0026rdquo; memang memiliki fitur yang lumayan lengkap sebagai Sistem Komentar yang minimalis, bahkan Anda bisa menggunakan Akun dari Layanan lain untuk berkomentar atau bahkan berkomentar sebagai Anonim. Tapi sayangnya saya harus punya VPS minimalnya, sedangkan saya sendiri belum sanggup menyewanya karena belum punya duit.\nSedangkan \u0026ldquo;Staticman\u0026rdquo; meskipun Gratis, komentar yang ditampilkan nya bersifat statis, mendukung Markdown, serta ada fitur Anti-spam nya juga. Tapi sayang nya fiturnya tidak selengkap Remark42, seperti tidak adanya Login menggunakan Akun lain, Edit dan Hapus Komentar dari segi pengomentar, serta kurangnya dukungan dari tema nya juga karena implementasi nya sangatlah kompleks dan sulit, hal ini terjadi karena komentar yang ditampilkan nya bersifat statis semua.\nAtau, mungkin saya migrasi ke Comments dari Telegram atau Utterances yang berbasis GitHub Issues aja kali yah? Kalau Anda punya saran mengenai Sistem Komentar lain nya, bisa Anda sarankan itu di dalam kolom komentar atau bisa Hubungi Saya.\nPerbaikan, Peningkatan dan Penambahan Fitur Hingga saat ini, fitur di Blog ini masih jauh dari kata \u0026lsquo;sempurna\u0026rsquo; yang selalu saja merasa kurang atau terjadi Kutu (Bug)/Kesalahan dalam Koding.\nUntuk saat ini, terjadi kesalahan pada bagian \u0026ldquo;Konten Terkait\u0026rdquo; yang terletak di setelah Akhir Artikel/Laman, yang gambar nya tidak menggunakan CDN dari Statically yang saya setel di dalam berkas Konfigurasi, padahal di Tema nya sudah saya setel juga.\nPEMBARUAN Rabu, 10 Maret 2021: Saat ini, kutu tersebut sudah \u0026lsquo;dimusnahkan\u0026rsquo; (alias sudah diperbaiki) berdasarkan Commit 5ee86d2 di GitHub, sehingga gambar-gambar tersebut telah menggunakan CDN dari Statically.\nPenampilan Spoiler di dalam Artikel juga yang lebar nya tidak mengikuti huruf-huruf nya, alias kelebaran.\nEDIT dari Rabu, 10 Maret 2021: Ehh salah deh, bukan \u0026lsquo;kelebaran\u0026rsquo;, melainkan saat diklik Spoiler nya, malah ada garis seperti Border yang kerap mengganggu kenyamanan. Seperti pada gambar berikut:\nIni rencana nya akan saya perbaiki, tapi gak tau kapan waktu nya 🙁\nPEMBARUAN Jum\u0026rsquo;at, 12 Maret 2021: Masalah di atas sepertinya sudah diselesaikan berdasarkan dari Commit f596ffe di GitHub.\nDengan selesainya masalah-masalah di atas, bukan berarti saya tidak berniat untuk menambahkan fitur ataupun memperbarui tema, saya akan berusaha untuk menambahkan fitur di blog ini jika saya ingin, tapi itu tidak tahu kapan 🙁\nPenutup Ya sudah, sepertinya pembahasan di artikel ini saya cukupkan sampai sini saja dulu, kalau misalnya saya berniat ingin merubah rencana nya, maka akan saya perbarui lagi artikel ini.\nDi artikel ini saya cuma membahas kenapa saya Migrasi ke Hugo, Bagaimana Migrasi nya, lalu apa rencana kedepan nya, gak ada yang lebih juga.\nWalaupun begitu, terima kasih bagi Anda yang telah membaca artikel ini yang saat ini belum ada gambar nya sama sekali.\nPEMBARUAN Rabu, 10 Maret 2021: Sekarang artikel ini sudah ada gambar nya, walaupun sedikit, tapi saya usahakan untuk menambahkan gambar di artikel ini agar lebih menarik lagi.\nMohon maaf, jika artikel ini memiliki kekeliruan dan kesalahan, baik dari ada yang salah ngetik, terlalu panjang, bertele-tele, dll. Dan, saya juga tidak bermaksud untuk menyinggung siapapun disini, saya cuma mau mengungkapkan pengalaman saya saja, serta rencana kedepan nya.\nSeperti yang sudah saya bilang sebelumnya. bahwa membahas alasan Migrasi ke Hugo bukan berarti saya menjelekkan SSG sebelumnya, yakni Pelican. Semua SSG mempunyai kelebihan dan kekurangan nya masing-masing, tergantung kebutuhan nya seperti apa, kalo untuk kasus saya yah Pelican ini kurang bisa memenuhi kebutuhan saya akan hal itu.\nJika adanya kesalahan dan kekeliruan, atau kalo Anda memiliki pertanyaan lain nya, bisa Anda berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk kedepan nya nanti.\nTerima kasih atas perhatian nya 😊\n","date":"2021-03-08T00:31:39+07:00","permalink":"/migrasi-ke-hugo-dan-rencana-kedepannya/","title":"Migrasi Blog ke Hugo, Alasan dan Rencana Kedepan nya"},{"content":"Pembuka LibreOffice merupakan sebuah Perangkat Lunak Paket Perkantoran yang merupakan Perangkat Lunak Bebas/FLOSS (Free/Libre Open Source Software) dan juga bisa di peroleh secara gratis. Biasanya Perangkat Lunak ini bisa menjadi alternatif, bahkan menggantikan Microsoft Office itu sendiri. Perangkat Lunak ini di kembangkan oleh sebuah organisasi nirlaba, yakni: The Document Foundation (TDF) dan sejumlah kontributor lain nya.\nPerangkat Lunak ini cukup populer, terutama di kalangan pengguna GNU/Linux. Salah satu alasannya adalah karena Distribusi GNU/Linux yang mereka gunakan itu biasanya sudah ter-install LibreOffice secara bawaan (default). Ubuntu, Varian (Seperti: Xubuntu, Lubuntu, Kubuntu, Ubuntu MATE, dll) dan Turunan nya (seperti Mint, Pop_OS!, dll) merupakan salah satu contoh nya.\nNamun sayangnya, banyak sekali dari mereka yang mengeluhkan sebuah masalah yang klasik, yang mana itu seharusnya tidak perlu di keluhkan/di permasalahkan, apa saja masalah nya? Mungkin bisa Anda lanjut simak artikel ini.\nSanggahan Tapi sebelum itu, ada yang ingin saya sampaikan bahwa Artikel ini akan membahas hal-hal yang sangatlah mendasar untuk menggunakan LibreOffice. Jadi, artikel ini tidak akan membahas penggunaan LibreOffice lebih lanjut.\nPerlu saya ingatkan juga, bahwa kemungkinan Artikel ini akan menyinggung salah satu Produk dari Microsoft dan format nya, saya tidak bermaksud dan tidak ada perasaan untuk membenci terhadap Microsoft dan segala produk-produk nya, serta saya juga bukanlah seorang yang meng-Anti kan nya.\nTapi yang saya bahas ini merupakan penjelasan dan kenyataan nya saja, yang berdasarkan dari pengalaman seseorang/saya, dan referensi-referensi yang telah saya ambil dari beberapa situs web, baik dari luar Situs Web Microsoft, bahkan dari Situs Microsoft itu sendiri.\nI. Masalah Kompatibilitas saat di buka dengan Microsoft Office (begitupun juga sebaliknya) Ini adalah masalah paling klasik yang paling sering di bicarakan oleh kebanyakan pengguna GNU/Linux di Indonesia, berdasarkan dari banyaknya komunitas GNU/Linux di dunia maya (terutama di Indonesia).\nHal ini terjadi ketika pengguna menyelesaikan pembuatan Dokumen (entah itu sekedar Dokumen hasil Pengolah Kata (Word Processor), Lembar Kerja (Spreadsheet), Presentasi (Presentation), dll), setelah itu ia simpan dokumen nya menggunakan Format OOXML (Office Open XML Format), ini artinya mereka menyimpan nya dengan ekstensi DOCX atau DOC, XLSX atau XLS, PPTX atau PPT, dan Ekstensi dengan format OOXML lain nya.\nKetika mereka ingin membuka Dokumen nya dengan Microsoft Office, tentunya dengan ekspektasi bahwa dokumen tersebut harusnya bisa di \u0026lsquo;render\u0026rsquo; dengan baik, yang artinya, dokumen tersebut harusnya tampil dengan tampilan yang \u0026lsquo;seharusnya\u0026rsquo;. Tapi ternyata, dokumen yang di tampilkan malah berantakan, dan tentu saja itu jauh (bahkan \u0026lsquo;sangat jauh\u0026rsquo;) dari ekspektasi si pengguna tersebut.\nMasalah di atas merupakan salah satu contoh dari Masalah Kompatibilitas saat dokumen di buka dengan Microsoft Office, dan ini bisa terjadi sebaliknya (Dokumen di buat dengan Microsoft Office, dan di buka dengan LibreOffice). Masih ada sebenarnya yang mirip dengan ini, cuma lebih baik saya bahas satu ini saja.\nKenapa hal itu bisa terjadi? Alasan nya sederhana, karena LibreOffice sendiri memfokuskan penggunaan format ODF (OpenDocument Format) daripada OOXML (Office Open XML) sebagai format Dokumen bawaan dan format asli (native) nya.\nJadi, masalah seperti ini sebenarnya tidak perlu di keluhkan/di permasalahkan, bahkan sama sekali.\nKenapa mereka memfokuskan format ODF sebagai format bawaan nya? Dan, kenapa mereka tidak memfokuskan format OOXML saja? Bukan nya OOXML ini termasuk \u0026ldquo;Open Format\u0026rdquo;? Karena Format OOXML itu bersifat tidak konsisten, hal ini terjadi karena spesifikasi dari OOXML itu sendiri dan juga Implementasi nya di Microsoft Office itu seringkali berbeda.\nPerlu Anda ketahui, bahwa di dalam Format OOXML itu di pecah menjadi 3 versi (atau sub-standar), diantara nya adalah:\nECMA-376 (atau di sebut versi/sub-standar \u0026ldquo;ECMA\u0026rdquo;) ISO/IEC 29500 Transitional (atau di sebut versi/sub-standar \u0026ldquo;Transitional\u0026rdquo;) ISO/IEC 29500 Strict (atau di sebut versi/sub-standar \u0026ldquo;Strict\u0026rdquo;) Catatan bagi yang ingin melihat/membaca Spesifikasi nya Jika Anda ingin melihat/membaca spesifikasi Format OOXML versi ECMA nya, silahkan kunjungi halaman web resmi nya\nSedangkan, jika Anda ingin melihat/membaca Spesifikasi dari Format OOXML versi \u0026lsquo;Transitional\u0026rsquo; dan\u0026rsquo;Strict\u0026rsquo; nya, silahkan kunjungi halaman web dari situs web Pemerintah Amerika Serikat, yakni \u0026ldquo;Library of Congress\u0026rdquo; yang menyediakanspesifikasi OOXML nya disana. Mungkin disana kurang lengkap dan belum ada edisi terbaru, dan ini mungkin saja ada spesifikasi yang belum di publikasi kan disana.\nBerdasarkan dari Laman Wikipedia nya, bahwa Microsoft Office hanya mendukung baca/tulis untuk dokumen yang di buat dengan Versi \u0026lsquo;Transitional\u0026rsquo; saja, dan dokumen yang di buat dengan Versi \u0026lsquo;Strict\u0026rsquo; hanya bisa di baca pada Microsoft Office 2010, serta bisa baca/tulis pada Microsoft Office 2013 dan di atasnya, itupun bukan sebagai \u0026lsquo;bawaan\u0026rsquo;.\nSelain itu, dokumen dengan versi ECMA hanya bisa di baca saja di Microsoft Office 2010, entah apa yang terjadi dengan versi di atas nya.\nNamun, yang menjadi masalahnya adalah, sejak Microsoft Office itu adalah Perangkat Lunak Berpemilik (Proprietary Software), apakah format di dalam Microsoft Office itu \u0026lsquo;sepenuhnya\u0026rsquo; benar-benar mematuhi/mengikuti 3 versi dari standar di atas yang beredar di Internet untuk Implementasi nya? Atau, justru Microsoft Office membuat \u0026ldquo;Standar nya sendiri\u0026rdquo; di dalam Implementasi nya?\nJadi, mungkin saja ketika Anda menyimpan dokumen dari Microsoft Office (terutama dengan ekstensi yang berformat OOXML), maka Anda menyimpan dokumen nya bukan sebagai \u0026ldquo;Office Open XML\u0026rdquo; yang selama ini \u0026ldquo;di iklankan\u0026rdquo; sebagai \u0026ldquo;Format Terbuka\u0026rdquo;.\nSelain itu, format ini memiliki beberapa masalah ketika di implementasikan oleh Perangkat Lunak Perkantoran selain Microsoft Office.\nSehingga, ini akan membuat Pengembang Perangkat Lunak Bebas/FLOSS seperti LibreOffice, bahkan Perangkat Lunak lain nya seperti WPS Office, Softmaker FreeOffice, dan lain nya akan mengalami kesulitan untuk memenuhi standar dari Format OOXML itu sendiri.\nMasalah-masalah nya seperti:\nMemerlukan pengaitan ke teknologi atau fitur khusus yang di kendalikan atau/dan hanya bisa di gunakan secara eksklusif oleh Vendor tertentu.\nJumlah Halaman dari Dokumen Spesifikasi nya sendiri nya mencapai ±6000 halaman, yang bahkan itu melebihi POSIX/SUSv3 yang (katanya) cuma sampai ±3700 halaman saja. Dan, itupun untuk versi ECMA nya, belum \u0026lsquo;Transitional\u0026rsquo; dan \u0026lsquo;Strict\u0026rsquo; nya. Sehingga, hal itu akan menyulitkan Pengembang Perangkat Lunak lain nya untuk meng-implementasikan format tersebut.\nAda beberapa bagian di dalam Format OOXML itu sendiri telah terbebani oleh Paten Perangkat Lunak, sehingga hal itu akan membuat Pengembang Perangkat Lunak perkantoran lain nya menjadi tidak mungkin untuk menyempurnakan dukungan/implementasi format OOXML nya.\nDan, masalah lain nya.\nMasalah-masalah di atas bukan hanya mempengaruhi pengembang Perangkat Lunak saja, tapi itu akan mempengaruhi pengguna nya secara keseluruhan, terutama jika pengguna tersebut membuka atau membuat dokumen ber-format OOXML dengan Perangkat Lunak Perkantoran selain Microsoft Office.\nSehingga Perangkat Lunak Perkantoran yang paling bisa meng-implementasikan nya dan yang paling mengikuti/memenuhi standar dalam Format OOXML adalah Microsoft Office itu sendiri.\nSelain alasan di atas, Alasan mereka hanya fokus (bahkan mempromosikan) format ODF adalah karena mereka percaya bahwa tidak ada standar/format dokumen lain yang menawarkan tingkat netralitas terhadap vendor dengan tepat. Dan, mereka juga percaya bahwa format tersebut akan bermanfaat untuk semua orang kedepan nya.\nIni artinya, mereka percaya bahwa ODF merupakan format yang paling \u0026rsquo;netral\u0026rsquo; saat ini, bila di bandingkan dengan format OOXML.\nLagian di Indonesia, Format ODF ini sudah memasuki ketentuan Standar Nasional Indonesia (SNI) pada tahun 2010 dengan Nomor SNI ISO/IEC 26300:2011* melalui surat keputusan dengan Nomor 41/KEP/BSN/4/2011* dari Kepala BSN (Badan Standardisasi Nasional) pada waktu itu. Sampai sekarang, Standar ini masih berlaku di Indonesia.\n*Catatan: Akses tautan tersebut melalui protokol HTTP bukan HTTPS, dan nonaktifkan terlebih dahulu Ekstensi \u0026ldquo;HTTPS Everywhere\u0026rdquo; pada Peramban Web kamu, kalo ada. Jika kamu mengakses nya dengan protokol HTTPS, maka yang kamu dapatkan hanyalah laman Login nya saja/User Portal. Aneh memang situs web pemerintah satu ini.\nBahkan format ini telah di akui oleh Pemerintah kita melalui Kemenkominfo (Kementerian Komunikasi dan Informatika) (Atau, Anda bisa unduh versi lain nya) dan Kemenkumham (Kementerian Hukum dan Hak Asasi Manusia) pada Tahun 2013 yang lalu.\nSelain itu, menurut artikelnya, pihak Kemenkominfo telah menggunakan Perangkat-Perangkat Lunak tersebut di dalam lingkungan nya untuk menunjang keperluan mereka, termasuk LibreOffice dan Format ODF nya. (Ngomong-ngomong, Artikel itu di terbitkan sejak tahun 2014 yang lalu. Entah apa yang terjadi sekarang, apakah mereka masih menggunakan nya? Semoga saja masih menggunakan nya)\nJadi, jika OOXML di nyatakan sebagai \u0026ldquo;Open Format\u0026rdquo;, apakah artinya OOXML ini termasuk Standar yang bebas? Seperti nya belum tentu juga.\nApakah itu merupakan suatu hal yang wajar jika tampilan atau bahkan dokumen nya menjadi kacau saat dokumen OOXML di buat atau/dan di buka dengan Perangkat Lunak selain Microsoft Office? Wajar, bahkan normal jika itu terjadi, kecuali jika Anda cuma tahu Microsoft Office atau/dan Ekstensi berformat OOXML nya saja.\nDan, apakah masalah seperti ini perlu di keluhkan? Kalau menurut saya, tidak perlu, bahkan sama sekali. Lagian juga, LibreOffice ini di buat untuk membantu Anda bekerja dengan dokumen di dalam komputer Anda tanpa harus mengorbankan 4 kebebasan utama dalam perangkat lunak, bukan cuma untuk memenuhi Standar dari Microsoft Office saja*.\n*Catatan: \u0026ldquo;bukan untuk memenuhi Standar dari Microsoft Office\u0026rdquo; bukan berarti bahwa mereka sama sekali tidak mendukung/meng-implementasikan Format OOXML, yah 🙂\nBagaimana kalau dokumen nya tidak menjadi kacau, atau tampilan nya sangat baik, bahkan \u0026ldquo;sempurna\u0026rdquo;? Yah, itu artinya kamu sedang \u0026ldquo;beruntung\u0026rdquo; atau mungkin saja ada faktor lain nya yang membuat dokumen tidak tampil berantakan, seperti dokumen nya tidak terlalu kompleks misalnya 🙂\nMau Referensi lain nya? Silahkan klik salah satu tautan berikut:\nSalah satu artikel yang di tulis oleh Kang Ade Malsasa Akbar (dalam Bahasa Inggris): \u0026ldquo;Support Open Document Format | Dreambox\u0026rdquo;\nMS-OOXML - Overview | Free Software Foundation Europe (FSFE)\nWhat\u0026rsquo;s in a label? ODF vs. OOXML and Open Standards | Open Source Initiative\nWe Can Put an End to Word Attachments - GNU Project\nReject proprietary formats! Pledge to use OpenDocument! — Free Software Foundation\nWhy you should not use Microsoft Office! | TLFR.io\nLalu, apa solusi nya? Solusinya mudah, tinggalkan dan jangan pernah gunakan format OOXML untuk membuat dokumen Anda, apalagi jika Anda sedang menggunakan LibreOffice.\nLalu bagaimana caranya? Caranya adalah, ketika Anda sudah selesai membuat Dokumen nya, simpanlah dokumen tersebut sebagai Ekstensi yang berformat ODF (OpenDocument Format), seperti .ODT (untuk LibreOffice Writer), .ODS untuk (LibreOffice Calc), dan .ODP (untuk LibreOffice Impress), daripada ekstensi yang berformat OOXML seperti .DOC, .DOCX, .XLS, .XLSX, .PPT, .PPTX dan ekstensi dengan format OOXML lain nya.\nTerakhir, jangan pernah mengharapkan/meng-ekspektasikan kalau LibreOffice bisa membuka dokumen dengan format OOXML sebaik Microsoft Office.\nKarena pada dasarnya LibreOffice dan Microsoft Office adalah dua Perangkat Lunak yang berbeda, meski sama-sama Perangkat Lunak Perkantoran.\nBagaimana jika saya berada di Rental Komputer/Warung Internet, atau di komputer lain yang rata-rata menggunakan Windows suatu saat nanti? LibreOffice mendukung Sistem Operasi Windows, jadi ia bisa di install di dalam Sistem Operasi Windows. Jika tidak mungkin bisa di install (Entah itu karena terkendala izin Administrator sampai tidak ada waktu atau terlalu repot), LibreOffice juga telah menyediakan versi Portabel nya agar LibreOffice bisa di jalankan secara langsung di dalam USB tanpa izin terlebih dahulu ke Administrator.\nIni akan sangat membantu Anda yang sedang menggunakan Komputer lain, yang mana Anda tidak dapat menggunakan Izin Administrator atau bagi Anda yang tidak ingin repot-repot atau membuang-buang waktu serta tenaga untuk meng-install LibreOffice di Komputer lain, seperti di Warnet, Rental Komputer, Komputer Lab Sekolah/Kampus, Komputer Kantor, dll nya.\nUntuk meng-unduh nya, silahkan Anda kunjungi Halaman Web Resmi nya, meng-ingat ini sangat penting bagi Anda yang sering menggunakan komputer lain nya.\nBagaimana jika saya membuka berkas OOXML di LibreOffice? Seperti yang sudah saya bilang sebelumnya, bahwa lebih baik Anda tidak terlalu berharap untuk bisa membuka berkas yang berformat OOXML di LibreOffice sebaik Microsoft Office. Namun Anda bisa saja membuka nya, hanya saja hasilnya nanti tidak sebaik Microsoft Office, karena fitur-fitur yang ada/digunakan pada dokumen tersebut belum tentu dapat di \u0026lsquo;render\u0026rsquo; dengan baik oleh LibreOffice, karena masalah format OOXML itu sendiri.\nMeskipun artikel ini menyinggung Microsoft Office dan Format OOXML nya, bukan berarti saya melarang Anda untuk menggunakan kedua nya.\nAnda bisa menggunakan Microsoft Office untuk membuka berkas berformat OOXML, atau jika Anda tidak mempunyai Microsoft Office nya (Entah itu sengaja gak di install atau gak bisa di Install karena sebab lain), Anda bisa menggunakan Perangkat Lunak Perkantoran lain nya selain Microsoft Office yang di tujukan untuk memenuhi standar Microsoft Office, seperti WPS Office, Softmaker FreeOffice, dll.\nAtau jika hal tersebut tidak memungkinkan, maka sebaiknya Anda minta saja kepada pengirimnya untuk mengirimkan ulang berkas sebagai Format PDF jika Anda hanya ingin membacanya saja, atau dengan Format Teks Polos/ODF (Sesuai kebutuhan) jika Anda ingin mengubah nya juga. Jadi, sesuaikan saja dengan kebutuhan.\nBagaimana jika saya mengirimkan berkas kepada orang lain, entah itu teman, dosen, HRD, dll nya suatu saat nanti? Tergantung, apakah mereka hanya ingin membaca dokumenmu saja atau ingin mengubah nya juga atau cuma sekedar mengulas/meninjau ulang (review) dokumen mu saja? Biasanya (apalagi dosen atau HRD), mereka akan butuh dokumen kamu hanya untuk di baca saja, karena pada dasar nya, mereka tidak terlalu perlu untuk mengubah dokumen kamu. (Contoh kasus: Jika kamu mengirimkan CV atau Resume kepada HRD untuk melamar pekerjaan, Tugas Kuliah ke Dosen berupa dokumen, dll).\nKalau mereka hanya ingin membacanya saja, ekspor berkas tersebut ketika Anda sudah selesai mengetik/membuat dokumen nya sebagai Format PDF dan kirimkan saja hasil nya.\nTapi kalau mereka ingin mengubah dokumen mu, maka kalau bisa, kirimkan berkas tersebut kepada mereka dan sarankan kepada mereka dengan baik-baik untuk meng-install LibreOffice jika kamu merasa dekat dengan mereka.\nAtau kalau mereka menginginkan format selain PDF hanya karena ia tidak bisa membuka nya dengan baik, jika kamu dekat dengan mereka, coba kamu bantu untuk memperbaiki nya atau sarankan kepada mereka untuk menggunakan Peramban Web (Web Browser) untuk membuka PDF.\nSedangkan jika kebutuhan nya hanya mengulas/meninjau ulang dokumen nya saja (entah itu dengan menyoroti teks nya, memberikan komentar, dll), kamu hanya perlu mengirimkan berkas PDF saja, biasanya Aplikasi Peninjau PDF (Kecuali Peramban Web) bisa melakukan nya jika hanya menyoroti teks atau mengulas dokumen saja.\nII. Tampilan nya membuat LibreOffice sulit untuk di gunakan Tidak bisa di pungkiri lagi, bahwa secara bawaan, LibreOffice memiliki penampilan yang agak kurang familiar dan penggunaan nya yang memang rumit. Sehingga orang-orang merasa \u0026lsquo;pusing\u0026rsquo; dan sulit untuk menggunakan Perangkat Lunak satu ini.\nSalah satu penyebabnya adalah bahwa kebanyakan orang telah terbiasa dengan Penampilan \u0026ldquo;Ribbon\u0026rdquo; yang ada di Microsoft Office sejak versi 2007, begitupun juga versi di atasnya, sampai sekarang.\nTampilan LibreOffice standar kira-kira seperti ini (saya menggunakan Windows 10):\nMungkin saja tampilan seperti itu memang terasa familiar bagi Anda yang sudah pernah menggunakan Microsoft Office 2003 sebelumnya. Tapi yang menjadi masalah nya adalah bahwa kebanyakan orang sudah duluan familiar dengan penampilan \u0026ldquo;Ribbon\u0026rdquo; dan mengingatnya, kalaupun sebelumnya ada yang sudah pernah menggunakan Microsoft Office 2003, bukan berarti mereka familiar akan tampilan nya, serta tidak semua orang menggunakan nya.\nNamun sejak LibreOffice versi 6.2 dirilis, Anda dapat menikmati penampilan \u0026ldquo;Ribbon\u0026rdquo; di LibreOffice dengan mengubah Setelan tampilan nya. Dulu sebelum versi 6.2, memang sempat ada fitur seperti ini, hanya saja itu masih beta/eksperimental dan masih memerlukan Berkas JAR Eksternal (dari luar).\nSekarang Anda sudah bisa menikmati nya tanpa harus memuat Berkas JAR Eksternal lagi.\nLalu, bagaimana caranya? Caranya mudah, yaitu:\nPastikan LibreOffice versi 6.2 atau di atasnya sudah terinstall di dalam Komputer Anda.\nPastikan juga kalau Aplikasi LibreOffice dan salah satu varian nya sudah di buka (Untuk varian nya bisa apa saja, seperti: LibreOffice Writer, Spreadsheet, Impress atau lain nya)\nKlik pada Menu \u0026ldquo;View\u0026rdquo; -\u0026gt; Lalu, klik pada \u0026ldquo;User interface\u0026rdquo; -\u0026gt; Terakhir, kamu klik \u0026ldquo;Tabbed\u0026rdquo; untuk mengaktifkan fitur \u0026ldquo;Ribbon\u0026rdquo;\nDibawah ini merupakan satu Cuplikan Layar yang akan mempermudah kamu atau memperjelas cara di atas:\nMudah, bukan?\nKira-kira, untuk tampilan nya akan seperti di bawah ini jika sudah di aktifkan \u0026ldquo;Tabbed UI\u0026rdquo; nya:\nSaya masih kesulitan untuk menggunakan nya, bagaimana caranya agar saya tidak merasa kesulitan? Solusi nya yah belajarlah untuk menggunakan LibreOffice secara mandiri sampai terbiasa.\nLalu, bagaimana cara nya agar kita bisa mempelajari nya? Banyak sekali cara mempelajari penggunaan LibreOffice, tapi hal yang terpenting dalam belajar adalah pelan-pelan dan tidak usah terlalu terburu-buru, dan usahakan untuk bersikap tenang.\nSalah satu cara yang bisa Anda lakukan untuk mempelajari nya adalah dengan berikut ini:\nCara 1: Buatlah Dokumen yang sama dengan Dokumen yang di kerjakan dengan Microsoft Office tl;dr Buatlah \u0026lsquo;versi ODF\u0026rsquo; dari Dokumen yang pernah Anda buat sebelumnya dengan Microsoft Office itu dengan Perangkat Lunak Perkantoran FLOSS seperti LibreOffice.\nPernahkah Anda membuat dokumen dengan Microsoft Office? Pernahkah Anda membuatnya dengan format yang kompleks, minimal seperti dalam bentuk Proposal, Laporan, Dokumentasi, Makalah, Jurnal atau bahkan sampai Skripsi misal nya?\nKalau pernah, mungkin saat nya Anda membuat dokumen yang sama dengan dokumen yang Anda buat menggunakan Microsoft Office sebelumnya itu dengan LibreOffice, agar supaya Anda bisa mempelajari nya. Lalu, bagaimana caranya?\nBukalah dokumen yang pernah Anda buat dengan Microsoft Office itu dengan Microsoft Office, lalu buatlah dokumen baru dengan LibreOffice. Ya, ini artinya Microsoft Office dan LibreOffice akan di buka secara bersamaan, cuma beda peran nya.\nSetelah Anda membuka LibreOffice nya, buatlah dokumen baru itu menjadi sama persis dengan yang ada di Microsoft Office.\nJadi, yang jelas nya adalah, Dokumen yang di buka dengan Microsoft Office itu peran nya cuma di baca/di lihat saja, sedangkan LibreOffice itu membuat dokumen nya yang sama persis dengan Dokumen yang di buat dengan Microsoft Office.\nAtau, yang lebih jelas nya adalah, Anda buat \u0026ldquo;versi ODF\u0026rdquo; dari dokumen yang Anda buat dengan Microsoft Office itu.\nHal ini akan melatih Anda untuk mempelajari bagaimana cara menggunakan LibreOffice, dan fitur-fitur yang ada serta menguasai nya, dan ini juga akan melatih kemandirian Anda. Lakukanlah itu sampai kamu terbiasa untuk menggunakan nya, sesering mungkin.\nJika Anda sudah selesai membuatnya, jangan lupa, simpanlah dokumen tersebut dengan format ODF, bukan format OOXML.\nCara 2: Sering-sering Googling untuk menguasai Fitur-fitur pada LibreOffice Ini mungkin berhubungan dengan cara pertama. Meskipun begitu, mungkin saja Anda masih bingung dalam menggunakan fitur-fitur pada LibreOffice saat membuat dokumen nya, yah setidak nya anggap saja begitu.\nJika Anda merasa bingung, hal yang pertama kali yang harus Anda lakukan adalah sering-seringlah Googling terlebih dahulu untuk menguasai Fitur-fitur LibreOffice beserta cara menggunakan nya. Kalau bisa, gunakan Bahasa Inggris untuk kata kunci nya supaya hasilnya lebih lengkap, atau bisa dengan Bahasa Indonesia kalau kamu ingin hasilnya lebih \u0026ldquo;akurat\u0026rdquo;.\nHal ini harus di lakukan terutama sebelum Anda bertanya kepada seseorang melalui apapun juga di Internet, termasuk melalui Forum/Grup yang ada di Internet.\nJadi, sebelum bertanya kepada seseorang di Internet, ada baiknya untuk Googling terlebih dahulu untuk penguasaan Fitur nya.\nCara 3: Baca, Pelajari dan Pahami Panduan nya Anda bisa mempelajari Panduan yang tersedia jika suatu saat Anda bingung bagaimana caranya menggunakan sebuah fitur yang ada.\nCukup Anda tekan tombol F1 untuk membaca panduan nya, nanti setelah Anda menekan nya, maka secara otomatis LibreOffice akan mengeksekusi Peramban Web (Web Browser) bawaan di Sistem Operasi yang Anda gunakan.\nPanduan tersebut memang berbahasa Inggris, namun Anda bisa menggunakan Bahasa Indonesia nya, jika Anda mengunduh \u0026ldquo;Helppack\u0026rdquo; nya.\nAnda bisa mencari materi-materi yang ada di situ kalau mau. Tapi, panduan disitu kurang lengkap untuk menjelaskan nya, panduan tersebut hanyalah sebatas menjelaskan penggunaan fitur-fitur nya saja.\nNamun Alhamdulillah, bapak Sokibi telah membuat sebuah buku dengan judul \u0026ldquo;Menulis Buku dengan LibreOffice\u0026rdquo; yang tentu nya di buat dengan Bahasa Indonesia, yang dapat membantu Anda untuk menguasai fitur-fitur yang ada pada LibreOffice (terutama LibreOffice Writer). Buku Digital tersebut bisa Anda unduh secara gratis dengan mengunjungi salah satu artikel di blog nya.\nSayangnya, buku tersebut hanya membahas LibreOffice Writer saja, tidak membahas lain nya.\nAtau, mungkin Anda dapat mengunduh salah satu Buku Digital dari Komunitas \u0026ldquo;Belajar LibreOffice Indonesia\u0026rdquo; yang tersedia dari Halaman Web Resmi nyaatau membeli buku fisik nya. Tapi, sayangnya juga, kedua buku tersebut hanya membahas tentang penggunaan LibreOffice Writer dan Calc saja, tidak membahas lain nya.\nWalaupun begitu, setidaknya ini lumayan membantu Anda untuk mempelajari LibreOffice, daripada tidak sama sekali.\nCara 4: Bertanya kepada seseorang/orang lain Jika Anda sudah mempelajari cara menggunakan LibreOffice dan fitur-fitur nya dengan cara di atas, namun Anda mengalami kesulitan saat menggunakan nya (Contoh: Masalah yang di alami itu tidak di temukan solusi nya di Internet, dll)\nAnda bisa bertanya kepada seseorang atau orang lain, baik itu melalui Forum, Grup atau Komunitas yang berada di dunia maya atau dunia nyata. Di Indonesia, ada salah satu komunitas (yang juga mempunyai Grup Telegram), yang mana itu di tujukan untuk mempelajari LibreOffice, sesuai dengan namanya, yakni \u0026ldquo;Belajar LibreOffice Indonesia\u0026rdquo; (atau di singkat dengan \u0026ldquo;BLOI\u0026rdquo;)\nSebelum bertanya (apalagi di dunia maya), tolong pahami bahwa tidak semua orang dapat membantu Anda/menjawab pertanyaan Anda, karena waktu yang mereka miliki, situasi dan kondisi dari setiap orang itu sangatlah berbeda daripada Anda. Atau, mungkin saja ada yang tidak mampu untuk menjawab pertanyaan Anda/mengatasi masalah yang Anda alami.\nTerlebih lagi, mereka membantu Anda itu secara gratis/tanpa bayaran, yang artinya, mereka lakukan itu secara sukarela.\nJadi, tolonglah untuk berempati pada orang lain dan hargailah situasi dan kondisi mereka dengan bersabar, dan jangan memaksakan orang lain untuk menjawab/mengatasi masalah kamu mentang-mentang komunikasi yang kamu lakukan itu tanpa tatap muka.\nSerta, jangan merasa paling \u0026lsquo;berhak\u0026rsquo; untuk mendapatkan jawaban, kecuali kalau kamu membayarnya.\nUntuk lebih lanjut, Anda juga dapat membaca tulisan yang bagus sekali, dan cocok untuk Anda yang ingin bertanya. Tulisan tersebut membahas tentang \u0026ldquo;Cara bertanya yang baik\u0026rdquo; yang di tulis oleh Bapak Harry Sufehmi.\nApakah masalah seperti ini pantas untuk di keluhkan? Anda yang membaca artikel ini, terutama dari awal artikel juga pasti hafal bukan jawaban nya? Yap, menurut saya, itu masih tidak perlu di keluhkan.\nTapi mungkin saja Anda berpikir bahwa mempelajari LibreOffice itu seperti 2 kali kerja, karena Anda telah mempelajari Microsoft Office sebelumnya (yang mungkin) sejak lama, tapi sekarang malah di tambah dengan mempelajari LibreOffice yang akan membuang waktu dan tenaga mu. Apa benar begitu, bukan?\nIya, memang seperti itu, dan itu merupakan suatu hal yang wajar, karena seperti yang saya bilang sebelumnya, bahwa LibreOffice itu di buat untuk membantu kalian membuat dokumen tanpa harus mengorbankan 4 kebebasan utama dalam perangkat lunak, bukan untuk memenuhi Standar dari Microsoft Office.\nWalaupun itu semua cukup berat bagi Anda, bukan berarti menjadi tidak mungkin, kan? Tapi setidak nya, LibreOffice ini termasuk Perangkat Lunak Bebas, yang mana Anda bisa bebas untuk mendistribusikan, memodifikasi, mempelajari dan menggunakan nya untuk keperluan apapun, termasuk komersial sekalipun, tidak seperti Microsoft Office yang bukan Perangkat Lunak Bebas.\nJadi, jika Anda menggunakan LibreOffice, maka Anda juga harus mempelajari nya, mau-tidak mau 🙂\nPenutup Jika Anda ingin menggunakan LibreOffice, maka Anda harus bisa menggunakan nya dengan \u0026ldquo;Benar\u0026rdquo;. Jangan pernah berharap untuk menggunakan Format OOXML di dalam LibreOffice.\nJadi, mau-tidak mau, Anda harus belajar lagi untuk menggunakan LibreOffice. Namun, keputusan mengenai kamu mau belajar atau tidak nya, itu semua kembali pada diri Anda, saya tidak bisa memaksa kamu untuk melakukan nya, tidak seperti salah satu anggota di salah satu Grup Facebook yang menjadi \u0026ldquo;sales\u0026rdquo; dadakan dengan embel-embel \u0026ldquo;Share Ilmu\u0026rdquo; yang jawaban nya seringkali gak nyambung saat di tanya.\nTapi setidak nya, LibreOffice dan Format Asli nya, yakni ODF (OpenDocument Format) itu merupakan Perangkat Lunak dan Format Bebas, tidak seperti Microsoft Office dan Format OOXML nya.\nSaya membuat artikel seperti ini karena saya sendiri melihat kalau kebanyakan anggota Komunitas/Grup, terutama di Grup Pengguna GNU/Linux, menganggap LibreOffice itu bermasalah, sehingga tidak di sarankan oleh mereka. Tapi kenyataan nya, kebanyakan dari mereka yang menganggap seperti itu karena Masalah Kompatibilitas terhadap Format OOXML itu sendiri yang seharusnya tidak perlu di permasalahkan.\nJadi, mereka berpikir bahwa Format OOXML adalah satu-satu nya format berbasis XML yang mempresentasikan berbagai dokumen perkantoran di dunia ini (seperti Dokumen Lembar Kerja, Pengolah Kata, Presentasi, dan lain nya), tidak ada format yang lain selain dia.\nSehingga, orang lain (terutama \u0026ldquo;Pemula\u0026rdquo;) menjadi seperti tidak ada harapan untuk mengurusi dokumen tersebut (seperti membuat/mengubah/memodifikasi nya), apalagi di dalam Sistem Operasi yang berbeda, seperti GNU/Linux misalnya.\nSaya kira, pembahasan nya sudah cukup sampai disini saja. Mohon maaf jika adanya kesalahan pada artikel ini, atau jika kamu mempunyai pertanyaan, kritik dan saran, komentar, pendapat/opini kamu atau masukkan lain nya, silahkan kamu berkomentar atau kamu bisa berdiskusi dengan saya melalui kolom komentar yang tersedia atau bisa kamu Hubungi Saya jika kamu lebih suka lewat \u0026ldquo;Jalur Pribadi\u0026rdquo;.\nTerima kasih atas perhatian nya 😊\nPenggunaan Gambar dan Atribusi Berkas-berkas Gambar (seperti Cuplikan layar dan Gambar lain nya) yang di gunakan di dalam artikel ini, disediakan di dalam Repository Blog ini.\nJika Anda ingin menjelajahi nya, silahkan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2019/12/19-masalah-klasik-pengguna-libreoffice Logo LibreOffice (yang saya gunakan sebagai sampul artikel ini) di buat oleh \u0026lsquo;The Document Foundation\u0026rsquo; dan (mungkin) kontributor nya, serta di lisensikan dengan sebagai berikut:\nCreative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0).\nGNU Lesser General Public License versi 3 atau lebih baru (LGPL 3+).\nMozilla Public License versi 1.1 (MPL 1.1).\nLogo tersebut juga merupakan Merek Dagang/Pakaian Dagang terdaftar dari \u0026lsquo;The Document Foundation\u0026rsquo;. Jadi, logo-logo tersebut tetap milik mereka yang memiliki merek/pakaian dagang. Jika Anda ingin menggunakan logo-logo tersebut, silahkan kunjungi Panduan mengenai Penggunaan Logo/Branding LibreOffice.\nJika Anda ingin meng-unduh lebih banyak, silahkan Anda kunjungi halaman web resmi nya.\n","date":"2019-12-19T21:42:00+07:00","image":"/masalah-klasik-pengguna-libreoffice/LibreOffice-External-Logo_hu_fa83ddd69d1c263d.png","permalink":"/masalah-klasik-pengguna-libreoffice/","title":"Masalah Klasik (Calon) Pengguna LibreOffice dan Cara mengatasi nya"},{"content":"Pembuka Banyak sekali pengguna GNU/Linux yang ingin menguji Aplikasi Web yang telah di buatnya, seperti seseorang yang ingin menguji Aplikasi Web yang di buat nya dengan bahasa pemrograman PHP dengan meng-install Webserver seperti Apache2 serta Bahasa Pemrograman Web seperti PHP juga turut di Install, agar Aplikasi Web tersebut bisa di uji.\nNamun, masih ada yang bingung tentang bagaimana cara meng-install Aplikasi yang di perlukan tersebut.\nDan, sayangnya, banyak sekali praktik yang salah mengenai ini, contoh nya, masih ada pengguna yang meng-install nya dengan XAMPP, yang akan mengakibatkan Apache2, PHP dan MariaDB/MySQL tidak terinstall sama sekali ke dalam Sistem Operasi.\nAtau, bahkan yang lebih parahnya adalah ada yang menggunakan \u0026lsquo;chmod 777\u0026rsquo; pada “Document Root” nya (seperti /var/www/html/) yang akan menimbulkan celah keamanan yang fatal, salah kepemilikan Document Root yang mengakibatkan tidak bisa membuat/mengedit atau menghapus berkas/folder di dalam Document Root, menginstall phpMyAdmin melalui Repo, dsb.\nLalu, bagaimana caranya agar kita bisa meng-install Web Stack ke dalam sistem operasi dengan \u0026ldquo;benar\u0026rdquo;? Anda bisa baca tutorial nya di dalam artikel ini, tapi sebelumnya Anda harus membaca Sanggahan Tambahan nya terlebih dahulu agar Anda bisa paham.\nSanggahan Cara ini bukanlah cara cepat untuk meng-install LAMP Stack ke dalam Sistem Anda, ini adalah cara yang ‘fleksibel’ untuk meng-install LAMP Stack. Jadi, tutorial ini tidaklah cocok bagi Anda yang ingin serba instan. Jadi, Artikel ini akan membahasnya dengan “Panjang x Lebar”, dan saya harap Anda kuat baca dan pemahamnya, hehe 😀\nDengan “Panjang x Lebar” nya pembahasan ini, saya harapkan bahwa Anda bisa mempelajari apa yang kamu lakukan nanti nya, baik itu sebelum melakukan nya sampai sesudah melakukan nya. Artikel ini tidak pernah saya tujukan untuk pengguna Server (meski bisa), melainkan untuk Web Developer/Programmer yang ingin menggunakan/meng-install LAMP Stack.\nKarena di tujukan untuk Web Developer/Programmer, maka bahasan tentang Keamanan dan Optimasi disini harusnya akan sangat berbeda jika di bandingkan dengan pengguna Server. Jadi, bagi Web Developer/Programmer, Anggap saja pembahasan keamanan dan optimasi disini sebagai bonus, dan di harapkan agar Anda bisa mengatur keamanan dan optimasi nya sendiri untuk kedepan nya.\nArtikel ini memang membahas tentang “cara install yang benar”, bukan berarti Artikel ini sepenuhnya benar. “Benar” disini maksudnya adalah melakukan sesuatu dengan praktek yang lebih baik atau/dan \u0026ldquo;lebih benar\u0026rdquo; daripada yang Anda praktekkan sebelumnya, bukan bermaksud pada “sepenuhnya benar”.\nJadi, mohon perhatian dan pengertian nya dari pembaca sekalian 🙂\nTerima kasih atas perhatian dan pengertian nya 😊\nI. Sebelum Install Sebelum Anda meng-install LAMP Stack, sebaiknya Anda Perbarui (Update) terlebih dahulu Repo Anda dan semua Perangkat Lunak yang terpasang terlebih dahulu, dengan menggunakan perintah berikut:\n$ sudo -- sh -c \u0026#39;apt update; apt full-upgrade\u0026#39; Bisa kamu gunakan Aplikasi yang berbasis GUI kalau kamu lebih suka GUI di bandingkan dengan menggunakan Terminal yang berbasis CLI. Sedangkan, kalau kamu menggunakan Mint, maka kamu bisa gunakan “Update Manager”.\nII. Install Apache2 Cara Install Instalasi nya memang sangat mudah, buka Terminal Emulator pada sistem Ubuntu (dan Turunan nya) Anda, lalu eksekusi perintah berikut ini untuk meng-install \u0026lsquo;Apache2\u0026rsquo;:\n$ sudo apt install -y apache2 apache2-utils Setelah Instalasi 1. Memeriksa Status Apache2, dan mengaktifkan nya setelah Sistem Operasi selesai Booting Setelah instalasi Apache2, sebaiknya Anda periksa/pastikan terlebih dahulu jika Apache2 ini sudah berjalan dengan baik ke dalam Sistem menggunakan perintah berikut:\n$ systemctl status apache2 Jika Apache2 berjalan dengan baik, harus nya ada Active: active (running) dan Loaded: loaded seperti berikut di bawah ini:\n● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Thu 2019-10-17 22:21:30 WIB; 1h 0min ago Process: 1535 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 1741 (apache2) Tasks: 6 (limit: 4447) CGroup: /system.slice/apache2.service ├─1741 /usr/sbin/apache2 -k start ├─1742 /usr/sbin/apache2 -k start ├─1743 /usr/sbin/apache2 -k start ├─1744 /usr/sbin/apache2 -k start ├─1745 /usr/sbin/apache2 -k start └─1746 /usr/sbin/apache2 -k start Atau, seperti pada cuplikan layar berikut ini:\nJika status Apache2 tidak seperti di atas, maka bisa di pastikan bahwa Apache2 tidak berjalan dengan baik. Untuk menjalankan nya, eksekusi perintah berikut:\n$ sudo systemctl start apache2 Kalau Anda ingin Apache2 nya dapat di jalankan saat Startup atau Sistem setelah Booting nanti, maka Anda perlu eksekusi perintah berikut:\n$ sudo systemctl enable apache2 2. Mengecek versi Apache2 Coba kamu cek versi Apache2 yang kamu gunakan, dengan perintah berikut:\n$ apache2 -v Dan, outputnya (di saya) sebagai berikut:\nServer version: Apache/2.4.29 (Ubuntu) Server built: 2019-04-03T13:22:37 3. Mengubah Pemilik “Document Root” Secara default, “Document Root” (atau bisa kamu sebut “Web Root”) dimiliki oleh user root.\nJadi, kamu sebagai pengguna biasa tidak akan bisa melakukan aktivitas ‘penulisan’ (seperti membuat, mengubah dan menghapus berkas/folder) di dalam nya, kecuali jika menggunakan sudo atau kamu membuka Aplikasi Manipulasi Berkas/Folder (Seperti Pengelola Berkas, Editor Teks, dll) sebagai root.\nKalo kamu mau bisa melakukan nya, maka kamu harus mengubah kepemilikan nya terlebih dahulu menjadi milik kamu, dengan perintah berikut:\n$ sudo chown nama_pengguna_kamu:www-data /var/www/html/ -R Silahkan ganti nama_pengguna_kamu dengan Nama Pengguna (Username) yang kamu gunakan pada Sistem Ubuntu (dan Turunan nya) yang Anda gunakan saat ini.\nAtau, kalo mau cepet, bisa gunakan perintah berikut:\n$ sudo chown ${USER}:www-data /var/www/html/ -R 4. (Opsional) Merubah perizinan pada “Document Root” Bagi Anda yang terlanjur menggunakan chmod 777. Untuk keamanan dan kalo perlu, Anda harus ganti Perizinan pada \u0026ldquo;Document Root\u0026rdquo; menjadi 755 untuk Folder atau 644 untuk berkas-berkas di dalam nya, dengan meng-eksekusi perintah berikut:\n$ sudo chmod 755 /var/www/html Perintah di atas di eksekusi hanya untuk satu Folder saja, jika Anda ingin semua Folder dan Sub-folder di dalam nya (bukan berkas-berkas nya), Anda bisa eksekusi perintah berikut:\n$ sudo find /var/www/html -type d -exec chmod 755 {} \\; Kedua perintah di atas (seperti: chmod 755) memang sebaik nya di eksekusi untuk Folder saja, sedangkan untuk berkas-berkas nya bisa Anda ketik perintah berikut:\n$ sudo chmod -R 644 /var/www/html/*.php Perintah di atas merupakan contoh untuk mengubah perizinan untuk semua berkas yang berekstensi .php di dalam nya. Jika Anda ingin mengubah perizinan untuk ekstensi berkas lain nya, silahkan ganti *.php diatas dengan ekstensi lain, seperti *.jpg jika Anda ingin mengubah perizinan untuk semua berkas dengan Ekstensi .jpg.\nSedangkan, jika Anda ingin mengubah perizinan untuk semua Berkas (bukan Folder) dengan semua Ekstensi nya yang berada di dalam Folder/Lokasi /var/www/html menjadi 644, Anda bisa eksekusi perintah berikut:\n$ sudo find /var/www/html -type f -exec chmod 644 {} \\; (Opsional) Jika Aplikasi Web Anda memiliki fitur \u0026lsquo;Unggah\u0026rsquo; (Upload), dan ingin Aplikasi Web tersebut bisa menggunakan fitur itu dengan baik. Ubahlah Perizinan pada Folder Lokasi yang akan di jadikan tempat penyimpanan berkas yang telah di unggah melalui Aplikasi Web menjadi 775 untuk Folder atau 664 untuk berkas-berkas nya, dengan perintah berikut:\n$ sudo find /path/to/uploaded/file -type d -exec chmod 775 {} \\; $ sudo find /path/to/uploaded/file -type f -exec chmod 665 {} \\; Ganti /path/to/uploaded/file menjadi lokasi tempat menyimpan berkas yang telah di Unggah.\n5. Menguji Web Server dengan membukanya lewat Web Browser Setelah itu, buka Peramban Web (Web Browser) Anda, lalu masukkan Alamat URL nya dengan localhost atau 127.0.0.1. Lalu, harusnya tampilan akan seperti di bawah ini jika bekerja dengan baik:\nJika tampilan nya muncul “It works!” seperti di atas, maka seharusnya Apache2 sudah siap di gunakan!\n6. Menambahkan User ke dalam Grup www-data Oh, iya, jika user lain atau Anda ingin di masukkan ke dalam grup www-data, maka eksekusi perintah berikut:\n$ sudo adduser nama_pengguna_kamu www-data Silakan ganti nama_pengguna_kamu dengan Nama Pengguna (Username) yang kamu gunakan pada Sistem Ubuntu (dan Turunan nya) yang Anda gunakan saat ini. Atau, Nama Pengguna lain nya yang ada di dalam sistem kamu. Setelah itu, coba kamu log out, lalu login lagi.\nAtau, kalo mau cepet, gunakan perintah berikut:\n$ sudo adduser ${USER} www-data 7. Mengaktifkan .htaccess di dalam Apache2 Web Server Apache2 secara bawaan tidak memproses berkas .htaccess. Sehingga, berkas tersebut tidak akan bisa di gunakan pada \u0026ldquo;Web Server\u0026rdquo;, sampai Anda bisa mengaktifkan nya.\nAgar Web Server Apache2 dapat memproses berkas .htaccess, maka ubahlah berkas /etc/apache2/apache2.conf dengan editor teks/kode favorit kamu sebagai root. Mungkin, bisa kamu ikuti caranya berikut:\nKalo kamu mau menggunakan nano yang berbasis CLI, bisa kamu gunakan perintah berikut:\n$ sudo nano /etc/apache2/apache2.conf Tapi, kalo kamu mau menggunakan editor teks yang berbasis GUI, bisa kamu buka editor teks tersebut sebagai root dengan perintah berikut:\nUntuk pengguna DE Cinnamon atau Pengguna Mint dengan DE apapun (X-Apps [Text] Editor):\n$ xed admin:///etc/apache2/apache2.conf Untuk Pengguna DE GNOME (gedit):\n$ gedit admin:///etc/apache2/apache2.conf Untuk Pengguna KDE Plasma 5 (dengan editor teks ‘KWrite’):\n$ pkexec env DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true kwrite /etc/apache2/apache2.conf Untuk Pengguna KDE Plasma 5 (dengan editor teks ‘Kate’):\n$ pkexec env DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true kate /etc/apache2/apache2.conf Untuk Pengguna DE LXDE (Leafpad)*:\n$ sudo su # leafpad /etc/apache2/apache2.conf Untuk Pengguna DE XFCE (Mousepad)*:\n$ sudo su # mousepad /etc/apache2/apache2.conf *Catatan: Kedua DE tersebut belum pernah saya gunakan, jadi apabila perintah di atas salah, maka mohon beri saran dari Anda agar bisa saya ubah perintah di atas. Tapi, khusus DE XFCE memang saya sedang menggunakan nya, yang distronya adalah Mint (di dalam VirtualBox), itupun menggunakan \u0026lsquo;X-Apps [Text] Editor\u0026rsquo; (xed) sebagai editor bawaan nya. Jika kamu mau menambahkan, yah, silahkan saja.\nSetelah itu, kamu carikan sebuah teks \u0026lt;Directory /var/www/\u0026gt; yang ada di dalam berkas tersebut dengan memanfaatkan fitur dari Editor Teks/Kode yang Anda gunakan sekarang. Untuk mencari nya, tekan CTRL + F, atau CTRL + W jika Anda menggunakan nano sebagai editor nya, lalu masukkan teks.\nKemudian, kalo ketemu, akan ada barisan kode seperti di bawah ini:\n\u0026lt;Directory /var/www/\u0026gt; Options Indexes FollowSymLinks AllowOverride None Require all granted \u0026lt;/Directory\u0026gt; Ada yang salah dengan kode di atas? Ya, Direktif AllowOverride nya bernilai None. Kalo Anda ingin mengaktifkan .htaccess, maka Anda harus merubah nilai dari Direktif AllowOverride ini menjadi All.\nJika sudah di rubah, maka akan menjadi seperti berikut:\n\u0026lt;Directory /var/www/\u0026gt; Options Indexes FollowSymLinks AllowOverride All Require all granted \u0026lt;/Directory\u0026gt; Kalau kamu sudah selesai, simpan berkas nya. Jika Anda menggunakan Teks Editor berbasis GUI, Anda bisa simpan berkas tersebut dengan menekan CTRL + S. Sedangkan, kalau Anda menggunakan nano, maka Anda perlu tekan CTRL + O terlebih dahulu, lalu tekan Enter.\nSetelah di simpan, restart Apache2 nya dengan perintah berikut:\n$ sudo systemctl restart apache2 Sekarang, tinggal kita install MariaDB nya terlebih dahulu, sebelum install PHP.\nIII. Install MariaDB Menambahkan Repo (Opsional) Anda memang bisa saja meng-install nya secara langsung, dan melewati langkah ini. Namun, versi MariaDB yang Anda dapatkan nanti adalah versi lama nya.\nJika Anda ingin menggunakan MariaDB dengan versi terbaru, maka Anda wajib menambahkan Repo nya. Cara menambahkan Repo nya terbilang cukup mudah, Anda tinggal klik disini untuk menuju langsung ke cara konfigurasi nya. Anda tinggal pilih Distribusi mana yang Anda gunakan saat ini, setelah itu Anda pilih versi MariaDB nya dan Mirror nya.\n1. Menambahkan Repositori MariaDB Setelah Anda memilih Mirror nya, maka Anda akan diberi petunjuk cara menambahkan Repositori nya dari Pihak ke-3. Atau, kalau kamu gak mau repot-repot ke sana, mungkin kamu bisa ikuti cara di bawah ini:\nUntuk Pengguna Distribusi Ubuntu 18.04 dan Turunan nya (termasuk Mint 19, dan tidak mendukung arsitektur i386):\n$ sudo apt install software-properties-common # Untuk pengguna Mint 19 atau di atasnya sepertinya sudah tidak perlu meng-install ini lagi, karena sudah di gantikan dengan \u0026#39;mintinstall\u0026#39;. $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 $ sudo add-apt-repository \u0026#39;deb [arch=amd64,arm64,ppc64el] https://mirror.b-cdn.net/pub/mirror/mariadb/repo/10.4/ubuntu bionic main\u0026#39; Catatan: Cara di atas sudah tidak berlaku untuk pengguna Ubuntu 18.04 dan Semua Turunan nya dengan Arsitektur 32-bit, jadi hanya berlaku untuk 64-bit saja. Mungkin, MariaDB sendiri telah menghapus dukungan nya untuk Arsitektur i386 sejak Ubuntu sendiri sudah tidak lagi menyediakan berkas ISO untuk Arsitektur i386 atau x86 (32-bit).\nUntuk Pengguna Distribusi Ubuntu 16.04 dan Turunan nya (termasuk Mint 18):\n$ sudo apt install software-properties-common $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 $ sudo add-apt-repository \u0026#39;deb [arch=amd64,i386,ppc64el] https://mirror.b-cdn.net/pub/mirror/mariadb/repo/10.4/ubuntu xenial main\u0026#39; 2. Memperbarui Repositori setelah menambahkan nya Setelah kamu menambahkan Repo tersebut, pastikan Repo sudah ter-update dengan perintah berikut:\n$ sudo apt update Nah, setelah kita menambahkan Repo nya, sekarang kita menginstall nya.\nCara Install Cara meng-install MariaDB memang mudah, Anda cukup eksekusi perintah berikut ini untuk meng-install nya:\n$ sudo apt install mariadb-client mariadb-server Setelah Instalasi 1. Memeriksa Status MariaDB, dan mengaktifkan nya setelah Sistem Operasi selesai Booting Setelah instalasi MariaDB, sebaiknya Anda periksa/pastikan terlebih dahulu jika MariaDB ini sudah berjalan dengan baik ke dalam Sistem menggunakan perintah berikut:\n$ systemctl status mariadb Jika MariaDB berjalan dengan baik, maka hasil output nya nanti harusnya ada Active: active (running) dan Loaded: loaded seperti berikut di bawah ini:\n● mariadb.service - MariaDB 10.3.18 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Sat 2019-10-19 09:19:53 WIB; 1h 16min ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 1699 (mysqld) Status: \u0026#34;Taking your SQL requests now...\u0026#34; Tasks: 30 (limit: 4448) CGroup: /system.slice/mariadb.service └─1699 /usr/sbin/mysqld Atau, seperti pada cuplikan layar berikut:\nJika status MariaDB tidak seperti di atas, maka bisa di pastikan bahwa MariaDB tidak berjalan dengan baik. Untuk menjalankan nya, eksekusi perintah berikut:\n$ sudo systemctl start mariadb Kalau Anda ingin MariaDB nya dapat di jalankan saat Startup atau setelah booting Sistem selesai, maka Anda perlu eksekusi perintah berikut:\n$ sudo systemctl enable mariadb 2. Konfigurasi MariaDB dan akun root nya Sekarang, kita konfigurasi kan MariaDB nya supaya aman.\nKetik perintah sudo mysql_secure_installation untuk melakukan konfigurasi. Lalu, jika di tanya “Enter current password for root” kamu tekan Enter saja, setelah itu, masukkan Kata Sandi untuk Akun Root MariaDB yang ingin di buat, seperti cuplikan layar berikut:\nCatatan: Jika Anda menginstall MariaDB 10.4 atau di atasnya, dan Anda di tanya “Switch to unix_socket authentication [Y/n]”, Anda tinggal ketik atau jawab saja “n” (tanpa kutip). Lalu, tekan Enter. Hal ini agar Anda tidak mengaktifkan unix_socket sebagai metode autentikasi pada akun root di MariaDB.\nSetelah Anda menentukan Kata Sandi baru untuk Akun root pada MariaDB, Anda tinggal tekan Tombol Enter saja, sampai selesai dan muncul tulisan “Thanks for using MariaDB!”. Berikut Cuplikan nya:\n3. Metode Autentikasi di MariaDB Secara bawaan, Akun root di dalam MariaDB pada pemaketan Ubuntu (dan Turunan nya) menggunakan metode unix_socket. Sehingga, hal ini mengakibatkan Anda harus menggunakan perintah sudo jika Anda ingin login sebagai akun root di dalam MariaDB, dan tentu hal ini tidak bisa di lakukan oleh Pengguna dengan Hak Akses biasa.\nJadi, untuk mengakses MariaDB dengan tujuan mengontrol Basis Data (Database) SQL yang ada di dalam nya melalui Terminal dan menggunakan akun root dengan mode unix_socket, bisa Anda gunakan perintah berikut:\n$ sudo mysql -u root Atau:\n$ sudo mariadb -u root Catatan: Jika Anda eksekusi perintah di atas, maka berarti Anda tidak perlu untuk memasukkan Kata Sandi untuk Akun root pada MariaDB lagi. Ini bukan berarti akun root tidak ada Kata Sandi nya, yah. Tapi, Anda masih perlu memasukkan kata sandi ketika Anda telah eksekusi perintah sudo, seperti biasanya, kecuali jika Anda sudah pernah menggunakan perintah sudo sebelumnya.\nTapi, unix_socket juga bisa di non-aktifkan secara bawaan jika Anda menggunakan MariaDB 10.4 atau di atasnya, saat Anda jawab “n” tadi. Sehingga, perintah di atas seharusnya tidak di gunakan.\nKeuntungan menggunakan metode tersebut adalah bahwa Anda bisa saja tidak perlu memasukkan Kata Sandi lagi untuk login ke MariaDB sebagai root ketika Anda sudah mengeksekusi nya dengan perintah di atas, karena metode tersebut langsung terhubung dengan Sistem Anda.\nTapi, kekurangan nya adalah untuk mengaksesnya harus menggunakan sudo terlebih dahulu untuk memasukki ke MariaDB, terutama jika login menggunakan akun root.\nBiasanya, sebagian orang login ke MySQL/MariaDB tanpa harus menggunakan perintah sudo, tapi ini kenapa malah harus? Terlebih, kita tidak bisa login dengan akun root dengan menggunakan phpMyAdmin. Lha, kenapa? Karena phpMyAdmin pada dasarnya kan merupakan Aplikasi Web, dan tidak selalu terhubung dengan sistem.\n4. Menggantikan metode Autentikasi dari unix_socket menjadi mysql_native_password Karena kita nanti meng-install phpMyAdmin secara manual, atau jika kita terlanjur mengaktifkan unix_socket, maka kita harus/wajib merubah metode dari unix_socket menjadi mysql_native_password terlebih dahulu, dengan cara: Login ke MariaDB sebagai root dengan menggunakan cara di atas -\u0026gt; Lalu, eksekusi perintah di bawah ini:\n\u0026gt; UPDATE mysql.user SET plugin = \u0026#39;mysql_native_password\u0026#39; WHERE user = \u0026#39;root\u0026#39; AND plugin = \u0026#39;unix_socket\u0026#39;; \u0026gt; FLUSH PRIVILEGES; \u0026gt; exit Adakah solusi lain nya? Ada, bisa kamu klik pada salah satu tautan (link) berikut:\nConnect to mysql server without sudo - Stackoverflow\ncan\u0026rsquo;t login as mysql user root from normal user account in ubuntu 16.04 - Ask Ubuntu\nMau lebih banyak lagi? Silahkan kamu Googling saja sendiri, banyak di sana juga.\nNah, instalasi MariaDB ini telah sepenuhnya selesai, sekarang kita meng-install PHP versi 7.3 di dalam Sistem Ubuntu (dan Turunan nya, seperti Mint) Anda.\nIV. Install PHP7 Cara Install Sekarang Anda akan meng-install PHP 7.3, namun pertama-tama tambahkan terlebih dahulu Repositori PPA dari Ondřej Surý agar dapat meng-install PHP versi terbaru di dalam Sistem Ubuntu dan Turunan nya, dengan perintah berikut:\n$ sudo -- sh -c \u0026#39;LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php; apt update\u0026#39; Lalu, eksekusi perintah berikut jika Anda ingin meng-install PHP 7.3 dengan hampir semua ekstensi: (Ini yang saya gunakan)\n$ sudo apt install php7.3 libapache2-mod-php7.3 php7.3-fpm php7.3-common php7.3-dom php7.3-fileinfo php7.3-gd php7.3-geoip php7.3-gmagick php7.3-gnupg php7.3-http php7.3-igbinary php7.3-igbinary php7.3-json php7.3-mbstring php7.3-memcached php7.3-mysqli php7.3-mysqlnd php7.3-oauth php7.3-odbc php7.3-opcache php7.3-pdo php7.3-phar php7.3-propro php7.3-raphf php7.3-redis php7.3-ssh2 php7.3-tidy php7.3-uuid php7.3-xdebug php7.3-xmlreader php7.3-xmlrpc php7.3-xmlwriter php7.3-xsl php7.3-yaml php7.3-curl php7.3-zip Atau, di bawah ini akan meng-install PHP 7.3 dengan Ekstensi yang seperlu nya saja:\n$ sudo apt install php7.3 libapache2-mod-php7.3 libpcre2-8-0 php-common php-yaml php7.3 php7.3-cli php7.3-common php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-readline Setelah Instalasi 1. Mengaktifkan PHP 7.3 pada Apache2 Setelah meng-installnya, uji terlebih dahulu PHP nya ke dalam Webserver. Sebelum itu, aktifkan terlebih dahulu mod PHP 7.3 nya lewat Apache2, lalu mulai ulang (restart) Apache2 mu, dengan perintah berikut:\n$ sudo a2enmod php7.3 $ sudo systemctl restart apache2 Setelah itu, cek terlebih dahulu versi PHP nya sekaligus memastikan bahwa PHP sudah benar-benar terinstall ke dalam sistem, dengan perintah berikut:\n$ php --version Jika bisa di eksekusi dan jika PHP sudah benar-benar ter-install ke dalam Sistem, maka seharusnya hasil outputnya seperti ini:\n$ php --version PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:06:48) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.6-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 2. Menguji PHP dengan membuat PHP Info Nah, untuk mengetes nya ke dalam Web Server, buatlah sebuah berkas bernama info.php di dalam \u0026ldquo;Document Root\u0026rdquo;. Tapi, di tutorial ini, saya akan membuatnya lewat nano ketimbang menggunakan berbasis GUI, kalau Anda ingin lewat GUI, yah itu tidak masalah.\nBuatlah berkas tersebut via nano dengan perintah:\n$ nano /var/www/html/info.php Ingat, perintah tersebut di lakukan tanpa menggunakan sudo!\nSalin dan tempelkan (Copy dan Paste kan) barisan kode berikut ini ke dalam berkas info.php melalui nano atau editor teks favorit Anda:\n\u0026lt;?php phpinfo(); ?\u0026gt; Lalu, simpan berkas tersebut, kalau Anda menggunakan nano, maka Anda perlu tekan CTRL + O terlebih dahulu, lalu tekan Enter.\nSetelah itu, coba buka web browser Anda, lalu masukkan URL nya. Karena berkas yang kita buat tadi lokasi nya di /var/www/html, maka artinya masukkan URL localhost/info.php atau 127.0.0.1/info.php kedalam Peramban (Browser) mu, lalu tekan Enter. Hasilnya akan menjadi seperti ini:\nLihatlah pada Server API nya, yang masih menggunakan Apache2 Handler. Tidak masalah sebenarnya, cuma kita tadi sudah meng-install php7.3-fpm nya, yang seharusnya itu bukan Apache2 Handler lagi. Selain itu, mungkin ada beberapa alasan (seperti Kinerja dari PHP nya, dll) agar kita harus mengaktifkan PHP-FPM ini.\n3. (Opsional) Mengaktifkan dan Menggunakan Intepreter FPM pada PHP 7.3 daripada Apache2 Handler Maka dari itu, kita bisa menggantikan nya menjadi PHP-FPM, dengan perintah berikut:\n$ sudo -- sh -c \u0026#39;a2dismod php7.3; a2enmod proxy_fcgi setenvif; a2enconf php7.3-fpm; systemctl restart apache2\u0026#39; Setelah itu, coba kamu segarkan (refresh) berkas info.php yang telah kamu akses lewat Peramban Web tadi, dan harusnya akan menjadi seperti ini:\n4. (Opsional) Menguji Galat Sintaks PHP (PHP Syntax Error) Sekarang, coba kamu buat sebuah berkas PHP, apapun itu, yang menimbulkan galat/kesalahan (error) (bebas kode nya apa saja, asal menimbulkan kesalahan sintaks), lalu bukalah berkas PHP tersebut melalui peramban web, harusnya muncul galat/peringatan di layar.\nKira-kira apa yang terjadi? Ya, galat nya tidak tampil di layar sama sekali, padahal pada XAMPP, biasanya tampil galat nya kalau ada kesalahan sintaks pada PHP.\n5. (Opsional) Melakukan Konfigurasi agar PHP bisa menampilkan pesan Galat (Error) secara langsung Selanjutnya, kita akan melakukan konfigurasi pada PHP nya, agar Galat (Error) tersebut bisa tampil di layar. Maka dari itu, kita perlu membuka terlebih dahulu berkas konfigurasi nya, kira-kira kamu paham dimana letaknya? Ya, kalo Anda melihat Loaded Configuration file tadi, itulah letak berkas konfigurasi nya, yakni: /etc/php/7.3/fpm/php.ini\nNah, kita buka berkas tersebut dengan editor teks favorit kamu, tapi pastikan kamu membuka nya sebagai root, agar berkas tersebut bisa di edit. Berikut caranya:\nKalo kamu mau menggunakan nano yang berbasis CLI, bisa kamu gunakan perintah berikut:\n$ sudo nano /etc/php/7.3/fpm/php.ini Tapi, kalo kamu mau menggunakan editor teks yang berbasis GUI, bisa kamu buka editor teks tersebut sebagai root dengan perintah berikut:\nUntuk pengguna DE Cinnamon atau Pengguna Mint dengan DE apapun (X-Apps [Text] Editor):\n$ xed admin:///etc/php/7.3/fpm/php.ini Untuk Pengguna DE GNOME (gedit):\n$ gedit admin:///etc/php/7.3/fpm/php.ini Untuk Pengguna KDE Plasma 5 (dengan editor teks ‘KWrite’):\n$ pkexec env DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true kwrite /etc/php/7.3/fpm/php.ini Untuk Pengguna KDE Plasma 5 (dengan editor teks ‘Kate’):\n$ pkexec env DISPLAY=${DISPLAY} XAUTHORITY=${XAUTHORITY} KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true kate /etc/php/7.3/fpm/php.ini Untuk Pengguna DE LXDE (Leafpad)*:\n$ sudo su # leafpad /etc/php/7.3/fpm/php.ini Untuk Pengguna DE XFCE (Mousepad)*:\n$ sudo su # mousepad /etc/php/7.3/fpm/php.ini *Catatan: Kedua DE tersebut belum pernah saya gunakan, jadi apabila perintah di atas salah, maka mohon beri saran dari Anda agar bisa saya ubah perintah di atas. Tapi, khusus DE XFCE memang saya sedang menggunakan nya, namun distronya adalah Mint (di dalam VirtualBox), yang mana ia menggunakan \u0026ldquo;X-Apps [Text] Editor\u0026rdquo; (xed) sebagai editor bawaan nya untuk semua DE nya. Jika kamu mau menambahkan, yah, silahkan saja.\nSetelah Anda membuka editor teks nya, coba Anda cari baris yang memiliki opsi display_errors dan display_startup_errors. Biasanya, kedua opsi tersebut terdapat di baris ke-479 dan baris ke-490.\nKalo kamu menggunakan editor yang berbasis GUI, kamu bisa menggunakan fitur seperti “Jump to Line”, “Go to Line”, atau apalah, yang penting bisa melompat ke baris tujuan.\nSedangkan, jika kamu menggunakan nano, editor teks berbasis CLI, kamu bisa menekan tombol CTRL + _ (Underscore/Garis Bawah) di nano, bukan CTRL + - (Strip). Bagaimana cara menekan nya? Mudah saja, sembari Anda sedang menekan CTRL, Anda harus tahu bagaimana caranya kamu memasukkan tanda garis bawah ke dalam layar dari Keyboard.\nKalo saya perlu menekan tombol Shift + - untuk menghasilkan Tanda Garis Bawah. Jadi, untuk mencari/melompat ke baris tujuan di nano, maka saya harus menekan CTRL + Shift + - untuk menghasilkan CTRL + _, sampai sini paham?\nSetelah Anda lompat ke baris tujuan, dan benar bahwa kedua opsi tersebut berada di baris itu, maka ubahlah nilai nya yang semula nya Off menjadi On. Seperti pada Cuplikan Layar berikut:\nSetelah itu, simpan berkas nya. Jika Anda menggunakan Teks Editor berbasis GUI, Anda bisa simpan berkas tersebut dengan menekan CTRL + S. Sedangkan, kalau Anda menggunakan nano, maka Anda perlu tekan CTRL + O terlebih dahulu, lalu tekan Enter.\nSetelah Anda menyimpan nya, coba mulai ulang terlebih dahulu Apache2 dan PHP 7.3 nya dengan perintah berikut:\n$ sudo systemctl restart apache2 \u0026#34;php7.3*\u0026#34; Sekarang, coba Anda buka berkas (dengan kode yang bebas) yang telah Anda buat tadi, coba apa yang terjadi? Tampilkan galat nya? Yah, pesan galat nya kira-kira tampil seperti pada Cuplikan di bawah ini:\nError pada PHP yang tampil di Browser\u0026gt;\nJika Anda telah selesai sepenuhnya berurusan dengan PHP Info, atau berkas info.php tidak terpakai lagi, maka untuk keamanan, sebaiknya berkas info.php itu di hapus. Untuk menghapus nya, bisa Anda gunakan perintah berikut:\n$ rm /var/www/html/info.php Sekalian, jangan lupa hapus berkas yang Anda buat tadi kalo mau. Nah, sekarang instalasi PHP sudah selesai, terakhir, kita akan meng-install phpMyAdmin.\nV. Install phpMyAdmin Cara Install Terakhir, kita meng-install phpMyAdmin untuk mengelola Database SQL kita. Tapi, perlu yang Anda ketahui, bahwa phpMyAdmin ini sebenarnya adalah sebuah Aplikasi Web, yang harusnya tidak perlu kamu meng-install nya dengan Repositori.\nLalu, kenapa kita tidak meng-install nya lewat Repositori saja?\nAlasan saya mengapa lebih memilih metode manual daripada menggunakan Repository, yaitu sebagai berikut:\nMendukung hampir semua Sistem Operasi, selama bisa meng-install Web Server dan PHP.\nKonfigurasi lebih mudah, karena struktur/alur konfigurasi nya yang tidak berubah daripada kita meng-installnya dari Repo. Jadi, cara konfigurasi nya akan menyesuaikan dengan Dokumentasi phpMyAdmin nya, sehingga hal itu akan mempermudah kamu untuk melakukan konfigurasi pada phpMyAdmin nantinya.\nLangsung menggunakan versi terbaru dari phpMyAdmin nya saat di install nanti. Anda juga bisa meng-upgrade (update versi) atau men-downgrade nya kalo mau 🙂\nSangat Fleksibel, bila di bandingkan dengan meng-install nya dengan Repo.\nLalu, bagaimana cara kita meng-installnya? Mudah saja, kamu tinggal ikuti perintah berikut: (Copas nya satu-per-satu, yah)\n$ PHPMYADMIN_VERSION=$(curl -s https://api.github.com/repos/phpmyadmin/phpmyadmin/releases/latest | grep \u0026#34;\\\u0026#34;name\\\u0026#34;\u0026#34; | head -1 | cut -d \\\u0026#34; -f 4); export PHPMYADMIN_VERSION; echo \u0026#34;${PHPMYADMIN_VERSION}\u0026#34; $ wget \u0026#34;https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz\u0026#34; $ tar -xvJf \u0026#34;phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz\u0026#34; -C /var/www/html/; cd \u0026#34;$_\u0026#34; || return $ mv \u0026#34;phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages\u0026#34;/ phpmyadmin/; sudo chown ${USER}:www-data -R phpmyadmin/; cd \u0026#34;$_\u0026#34; || return $ mv config.sample.inc.php config.inc.php; mkdir tmp; sudo chown www-data:www-data tmp; sudo chmod 700 tmp Setelah Instalasi 1. Menguji phpMyAdmin Setelah instalasi phpMyAdmin, memang nanti kita akan meng-konfigurasikan phpMyAdmin nya. Tapi, sebelum itu, kita harus memastikan terlebih dahulu kalau phpMyAdmin bisa di buka dengan baik lewat Peramban Web (Web Browser).\nUntuk melakukan nya, buka Web Browser Anda, lalu masukkan URL: http://localhost/phpmyadmin pada Peramban Web Anda, lalu tekan Enter.\nJika Anda sudah berhasil membuka nya, maka harusnya tampilan nya menjadi seperti Cuplikan berikut:\n2. Menyisipkan nilai dari opsi blowfish_secret di dalam berkas Konfigurasi phpMyAdmin Setelah itu, kita akan melakukan konfigurasi terhadap phpMyAdmin. Untuk melakukan konfigurasi, bukalah berkas config.inc.php pada phpMyAdmin dengan editor teks/kode favorit Anda.\nDi dalam konfigurasi nya nanti, maka kita akan menyisipkan nilai dari Opsi blowfish_secret. Kenapa opsi tersebut wajib di isi? Dengan mengisi opsi tersebut, ini artinya Anda telah mengamankan Akun MariaDB Anda dengan meng-enkripsi Cookie menggunakan Algoritma AES, agar tidak di intip oleh orang luar.\nCatatan : Alasan kenapa di sebut “Blowfish”, padahal sekarang tidak menggunakan nya, karena phpMyAdmin sendiri pernah dulunya menggunakan “Blowfish” sebagai Algoritma Enkripsi nya.\nJadi artinya, opsi blowfish_secret ini hanya berperan sebagai Kunci (Key) nya saja dalam Enkripsi, yang tidak boleh di beritahukan ke siapapun, kecuali kamu sendiri. Sedangkan kalo kamu tidak mengisinya, maka sama saja dengan tidak mengamankan akun MariaDB kamu dengan meng-enkripsi Kuki (Cookie) nya.\nBagaimana cara menyisipkan nya? Coba kamu cari barisan kode atau teks $cfg['blowfish_secret'] dengan menggunakan fitur “Find” atau menekan tombol CTRL + F.\nDan, Anda akan menemukan nya dengan seperti berikut:\n$cfg[\u0026#39;blowfish_secret\u0026#39;] = \u0026#39;\u0026#39;; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ Yah, terlihat kosong kan? Kalo gitu, maka Anda harus mengisinya terlebih dahulu. Anda bisa mengisinya dengan karakter apapun. Ya, Apapun, selama tidak lebih dari 32 karakter.\nKalo kamu mau karakter yang acak, bisa Anda dapatkan dengan memanfaatkan Penghasil Kata Sandi (Password Generator) atau Penghasil Karakter Acak (Random Character Generator), baik yang beredar di Internet ataupun di dalam Aplikasi Pengelola Kata Sandi yang Anda install. Kalo mau, Googling aja sendiri deh, banyak disana juga :)\nAtau, kalo kamu mau nya langsung hasilnya, bisa kamu klik disini.\nLalu, contohnya akan menjadi seperti ini:\n$cfg[\u0026#39;blowfish_secret\u0026#39;] = \u0026#39;^uz\u0026amp;5vD+F-CNjafr@@x4M3CMAB^v+LL$\u0026#39;; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ Setelah itu, simpan berkasnya terlebih dahulu, dan jangan di tutup (di close).\n3. Login phpMyAdmin Lalu, buka phpMyAdmin nya lewat Browser, dan lakukan login dengan menggunakan akun MariaDB Anda, kali ini, saya gunakan akun root.\nKalau sudah selesai mengisi Username dan Password nya, maka Anda perlu klik pada Button “Go”.\nJika Anda berhasil login, harusnya Anda akan di arahkan ke Halaman \u0026ldquo;Database Management\u0026rdquo; nya atau ke halaman utamanya.\nDi halaman utamanya, coba Anda gulirkan (scroll) Mouse Anda ke bawah. Harusnya tidak muncul Pesan Galat (Error), palingan cuma pesan peringatan. Jika Anda tidak menemukan nya, maka berarti phpMyAdmin mu aman, dan kamu tinggal langsung membuat Basis Data (Database) ‘phpmyadmin’ nya saja (Baca pembahasan: \u0026ldquo;5. Membuat Basis Data (Database) bernama ‘phpmyadmin’\u0026rdquo;).\nSedangkan, jika Anda menemukan nya, maka Pesan Galat nya kurang lebih seperti berikut di bawah ini:\n4. (Opsional) Melakukan Konfigurasi pada phpMyAdmin tambahan (terutama untuk mengatasi masalah tersebut) Maka dari itu, kita lakukan lagi konfigurasi nya, pastikan berkas config.inc.php tadi masih/sudah di buka menggunakan editor teks/kode favorit Anda. Setelah itu, cari teks /* Server parameters */ di dalam Editor, bisa kamu tekan tombol CTRL + F untuk mencari teks nya.\nNah, kode di bawah /* Server parameters */ beberapanya ada yang harus di ubah dan di tambahkan, yang semula nya berikut di bawah ini:\n/* Server parameters */ $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;host\u0026#39;] = \u0026#39;localhost\u0026#39;; $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;compress\u0026#39;] = false; $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;AllowNoPassword\u0026#39;] = false; Menjadi seperti di bawah ini:\n/* Server parameters */ $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;host\u0026#39;] = \u0026#39;localhost\u0026#39;; # \u0026#39;Host\u0026#39; untuk mengakses phpMyAdmin $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;compress\u0026#39;] = false; $cfg[\u0026#39;Servers\u0026#39;][$i][\u0026#39;AllowNoPassword\u0026#39;] = true; # Meng-izinkan phpMyAdmin untuk login SQL tanpa menggunakan Kata Sandi (Password) $cfg[\u0026#39;TempDir\u0026#39;] = \u0026#39;/tmp\u0026#39;; # Mengubah Lokasi untuk menampun berkas Sementara dari phpMyAdmin Apa saja yang di ubah? Saya mengubah nilai dari opsi AllowNoPassword menjadi true, hal ini agar kamu dapat menggunakan akun MariaDB yang kata sandi nya kosong, alias tanpa kata sandi sama sekali.\nDan, saya menambahkan $cfg['TempDir'] = '/tmp';, variabel tersebut berguna untuk menentukan lokasi dari Folder yang menyimpan berkas dan Folder dengan Sementara (Temporary Folder).\nCatatan : Jika Anda tidak mengalami Galat (Error) pada phpMyAdmin karena Tembolok (Cache), maka Anda bisa menonaktifkan Opsi TempDir tersebut dengan menjadikan nya sebagai komentar.\nKarena variabel nya di set dengan /tmp, maka phpMyAdmin akan menyimpan berkas tembolok nya di dalam folder /tmp, harusnya Anda sangat mengenali folder tersebut jika Anda menggunakan Sistem Operasi GNU/Linux. Hal ini dilakukan agar phpMyAdmin dapat menyimpan berkas tembolok nya dan mengatasi Galat tersebut.\nSimpan berkas tersebut, lalu coba kamu buka dan login lagi phpMyAdmin nya, kali ini, Anda harus menggunakan akun root, karena Anda akan melakukan suatu hal lagi.\nSetelah Anda berhasil login dan di alihkan ke halaman utama. Harusnya, galat tersebut sudah hilang/tidak muncul lagi.\n5. Membuat Basis Data (Database) bernama ‘phpmyadmin’ Kenapa harus membuat Basis Data \u0026lsquo;phpmyadmin\u0026rsquo; dan apa gunanya? Gunanya agar phpMyAdmin dapat menyimpan semua Informasi yang di hasilkan dari phpMyAdmin itu sendiri, seperti: Setelan nya (Bahasa pada phpMyAdmin, dll), Riwayat Kueri yang pernah kamu lakukan nya, Markah (Bookmark), dll ke dalam basis data tersebut, yang nanti nya akan di gunakan oleh phpMyAdmin itu sendiri.\nKarena itu, kita wajib membuat nya, agar phpMyAdmin dapat di gunakan dengan sangat baik. Lalu, bagaimana caranya?\nCaranya, kamu harus login ke phpMyAdmin dengan menggunakan akun root kamu terlebih dahulu, setelah nya nanti akan di alihkan ke Halaman Utama, lalu saat kamu di Halaman Utama nya, kamu Scroll lagi ke bawah.\nSetelah kamu scroll ke bawah, nanti akan ada pesan:\nThe phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated.\nDan, kamu klik pada tautan (link) yang berteks “Find out why”.\nSeperti pada cuplikan berikut:\nLalu, klik pada tautan “Create”, untuk membuat Database ‘phpmyadmin’ seperti pada Cuplikan Layar berikut:\nJika Anda sudah berhasil membuat basis data nya, maka harusnya status nya dalam “OK” semua, seperti Cuplikan Layar berikut:\nSelain itu, di sebelah kiri nanti, akan ada basis data yang bernama phpmyadmin yang barusan di buat tadi. Ketika Anda ke halaman utamanya, dan Anda scroll ke bawah lagi, harusnya sudah tidak muncul Pesan Peringatan ataupun Pesan Galat lagi, karena sudah kita konfigurasikan sebelumnya.\nSetelah itu, ada satu hal lagi yang harus di selesaikan. Lha, apa lagi itu? Yaitu\u0026hellip;\u0026hellip;\n6. (Opsional) Mengamankan phpMyAdmin Lha, apa lagi ini? Tenang, ini opsional, kok, kalo gak mau di lakuin, yah, tidak apa-apa. Tapi, mengamankan phpMyAdmin ini sangatlah penting.\nMemang nya kenapa? Lha, phpMyAdmin ini kan Aplikasi untuk mengelola Basis Data (Database) MySQL/MariaDB kamu, yang suatu saat akan di gunakan untuk menghubungkan Web ke Basis Data.\nKalo sampai-sampai di akses oleh orang lain (di dalam jaringan yang sama), maka orang tersebut kemungkinan akan berusaha untuk membobol data Anda dengan melakukan serangan, seperti Brute-force, dll.\nNah, serangan tersebut akan sangat berbahaya jika Kata Sandi untuk akun root yang kamu gunakan itu sangat mudah di tebak, apalagi kalo sampe gak ada Kata Sandi nya.\nKalopun Kata Sandi yang kamu gunakan itu rumit atau ‘kuat’, tapi tidak ada salahnya juga kan untuk meminimalisir serangan dari luar?\nCara mengamankan phpMyAdmin ini ada dua, yang satu adalah Memblokir segala akses dari luar dan satunya adalah memberikan Autentikasi. Berikut di bawah ini adalah cara-cara nya (Pilih salah satu).\nA. Memblokir segala akses dari ‘luar’ atau dari komputer/perangkat lain nya Metode ini akan memblokir segala akses dari komputer/perangkat lain, jadi perangkat lain tidak akan bisa mengakses phpMyAdmin Anda, kecuali jika berada di akses dengan localhost atau 127.0.0.1.\nCara nya cukup sederhana, Anda tinggal membuat berkas .htaccess di dalam folder phpMyAdmin nya. Tapi, sebelum itu, Anda harus mengaktifkan .htaccess nya terlebih dahulu (Baca juga pembahasan: “7. Mengaktifkan .htaccess di dalam Apache2” untuk mengaktifkan .htaccess).\nSetelah Anda mengaktifkan nya, Anda bisa membuat dan meng-edit berkas .htaccess dengan nano, berikut perintah nya:\n$ nano /var/www/html/phpmyadmin/.htaccess Setelah Anda berhasil membuka nya, tambahkan dengan menyalinkan (copy) barisan kode, kemudian menempelkan nya (paste) (Alias, copas) dengan menekan tombol CTRL + Shift + V pada Keyboard, berikut di bawah ini ke dalam editor nano:\norder deny,allow deny from all allow from 127.0.0.1 Saya akan jelaskan Direktif nya satu-per-satu di bawah ini:\norder - Direktif ini menentukan direktif mana yang akan di evaluasi/eksekusi, Deny atau Allow. Saya mengisinya dengan deny,allow agar Direktif Deny di eksekusi terlebih dahulu. Tapi, jika ada kondisi yang “tidak cocok”, maka Direktif Allow yang akan di eksekusi.\ndeny - Direktif ini berguna untuk memblokir pengunjung yang berasal dari IP, Domain dan Host tertentu. Karena saya mengisi nya dengan deny from all, maka ini akan memblokir semua pengunjung (harusnya ini termasuk dari kita sendiri).\nallow - Direktif ini berguna untuk mengizinkan pengunjung yang berasal dari IP, Domain dan Host tertentu. Bisa di bilang, kalo DIrektif ini merupakan pengecualian setelah Direktif deny from all di eksekusi. Saya mengaturnya dengan allow from 127.0.0.1 agar bisa di akses lewat localhost.\nJika Anda sudah selesai, simpan berkas tersebut. Setelah itu, cobalah untuk mengakses phpMyAdmin di Perangkat Lain, dan pastikan juga perangkat tersebut berada di dalam Jaringan yang sama dengan Komputer/Laptop yang terinstall phpMyAdmin. Kalo berhasil, harusnya muncul galat/kesalahan seperti “Forbidden” saat di akses.\nKalo masih bisa di akses, maka mungkin Apache2 nya perlu di restart dengan perintah berikut:\n$ sudo systemctl restart apache2 B. Memberikan Autentikasi HTTP pada phpMyAdmin Tadi saya telah membahas tentang cara mengamankan phpMyAdmin dengan memblokir segala akses dari luar. Sekarang, saya membahas mengamankan phpMyAdmin dengan memberikan Autentikasi.\nAutentikasi yang saya maksud disini tentu saja Autentikasi HTTP (HTTP Authentication), yang mana sebelum di akses oleh Peramban Web, ia akan meminta pengakses nya itu memasukkan Nama Pengguna (Username) dan Kata Sandi (Password). Jika kita salah memasukkan nya beberapa kali, atau kita membatalkan nya, maka secara otomatis akan menimbulkan kesalahan/galat seperti “Authorization Required” atau “Unauthorized”.\nContohnya? Googling aja sendiri, ah, cape gue.\nJika Anda ingin membuat Autentikasi HTTP pada Webserver Apache2, maka Anda perlu membuatkan berkas .htpasswd nya terlebih dahulu.\nBagaimana caranya? Mudah, kamu tinggal gunakan perintah berikut untuk membuat .htpasswd:\n$ htpasswd -c /path/to/.htpasswd nama_pengguna_kamu Ganti /path/to/.htapasswd dengan lokasi berkas itu di buat nantinya dan di namakan sebagai apa berkasnya. Oh, iya, untuk membuat berkas htpasswd nya itu gak harus menggunakan nama berkas .htpasswd, bisa apa saja/bebas.\nDan, kamu bisa ganti nama_pengguna_kamu dengan Nama Pengguna (Username) yang kamu inginkan.\nKalo kamu mau meletakannya di dalam folder phpMyAdmin nya, dan berkas tersebut mau kamu namakan dengan .htpasswd, serta ingin menggunakan Nama Pengguna test123, maka akan menjadi seperti ini perintah nya:\n$ htpasswd -c /var/www/html/phpmyadmin/.htpasswd test123 Untuk praktik keamanan yang lebih baik, harusnya .htpasswd di buat di dalam lokasi yang berbeda dan tidak di dalam folder Aplikasi Web nya.\nSetelah itu, isikan Kata Sandi baru kamu yang nantinya akan di gunakan untuk membuka Aplikasi Web tersebut nantinya.\nNah, berkas .htpasswd sudah di buat. Setelah di buat, edit/buat berkas .htaccess nya terlebih dahulu. Kali ini, lokasi nya harus berada di dalam folder phpMyAdmin nya, dengan perintah berikut:\n$ nano /var/www/html/phpmyadmin/.htaccess Setelah Anda berhasil membuka nya, tambahkan dengan menyalinkan (copy) barisan kode, kemudian menempelkan nya (paste) (Alias, copas) dengan menekan tombol CTRL + Shift + V pada Keyboard, berikut di bawah ini ke dalam editor nano:\nAuthUserFile /path/to/.htpasswd AuthName \u0026#34;Ini adalah Area Terlarang!\u0026#34; AuthType Basic require valid-user Ganti /path/to/.htpasswd dengan lokasi .htpasswd yang tadi Anda buat. Misal, kalo Anda buat nya di dalam /var/www/html/phpmyadmin, maka Anda bisa mengganti nya dengan /var/www/html/phpmyadmin/.htpasswd. Menjadi seperti berikut:\nAuthUserFile /var/www/html/phpmyadmin/.htpasswd AuthName \u0026#34;Ini adalah Area Terlarang!\u0026#34; AuthType Basic require valid-user Saya akan jelaskan Direktif nya satu-per-satu di bawah ini:\nAuthUserFile - Untuk menentukan di mana letak berkas .htpasswd itu berada. Berkas nya sendiri gak harus bernama .htpasswd sebenarnya, bisa kamu gunakan nama berkas lain, hanya saja yang menyimpan Nama Pengguna dan Kata Sandi yang sudah di-hash (atau, yang di buat menggunakan perintah htpasswd tadi), yang akan di gunakan untuk Autentikasi nanti.\nAuthName - Direktif ini berfungsi untuk menentukan Pesan saat Autentikasi nanti. Pada kode diatas, saya isikan dengan \u0026ldquo;Ini adalah Area Terlarang!\u0026rdquo;.\nAuthType - Direktif ini yang menentukan metode Autentikasi nya nanti, ada beberapa metode Autentikasi yang bisa Anda gunakan, seperti Basic, Digest, dan Form. Saya gak bahas lebih lanjut disini, tapi kali ini saya gunakan Basic saja agar lebih mudah.\nrequire - Direktif ini menentukan Pengguna mana yang dapat mengakses Aplikasi Web tersebut. Karena saya mengisinya dengan valid-user, maka berarti Aplikasi Web tersebut hanya dapat di akses oleh pengguna yang valid atau pengguna yang tercantum di dalam berkas .htpasswd saja.\nJika Anda sudah selesai, simpan berkas tersebut. Setelah itu, cobalah untuk mengakses phpMyAdmin di dalam Perangkat Anda/di Perangkat Lain. Kalo berhasil, harusnya muncul autentikasi yang mengharuskan untuk memasukkan Nama Pengguna dan Kata Sandi nya terlebih dahulu.\nJika tidak di masukkan dengan benar, maka akan muncul pesan kesalahan/galat seperti “Authorization Required” atau “Unauthorized”.\nNah, dengan ini, maka phpMyAdmin sudah siap Anda gunakan sepenuhnya untuk mengelola Basis Data (Database) MariaDB Anda.\nPenutup Instalasi LAMP Stack pun akhirnya selesai, dan Anda sudah bisa mengetes/menguji Aplikasi Web Anda, kapanpun yang Anda mau.\nTerima kasih yang telah membaca artikel ini dan mengikuti tutorial nya. Pada dasarnya, tutorial ini di tujukan bagi yang ingin mempelajari bagaimana cara meng-install LAMP Stack dengan praktik yang lebih baik dan benar serta melakukan konfigurasi pada Perangkat Lunak tertentu.\nMeski begitu, bukan berarti artikel ini tidak ada kesalahan dan kekeliruan sama sekali, seperti yang saya bilang di bagian “Sanggahan”.\nMohon maaf, jika artikel ini memiliki kekeliruan dan kesalahan, baik dari ada yang salah ngetik, terlalu panjang, bertele-tele, dll. Dan, saya juga tidak bermaksud untuk menyinggung siapapun disini, saya cuma mau membagikan tutorial ini saja. Serta, saya harap juga pembaca sekalian dapat memahami dan mempelajari Tutorial yang saya sampaikan disini.\nJika adanya kesalahan dan kekeliruan, atau kalo Anda memiliki pertanyaan lain nya, bisa Anda berikan masukkan melalui kolom komentar yang tersedia. Masukkan dari Anda akan sangat berarti bagi saya dan artikel ini untuk kedepan nya nanti.\nTerima kasih atas perhatian nya 😊\nPenggunaan Gambar dan Atribusi Berkas-berkas Gambar (seperti Cuplikan layar dan Gambar lain nya) yang di gunakan di dalam artikel ini, disediakan di dalam Repository Blog ini.\nJika Anda ingin menjelajahi nya, silahkan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2019/10/31-cara-install-lamp-stack-di-ubuntu Semua Gambar yang berada di situ di lisensi kan dengan Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0).\n","date":"2019-10-31T17:04:17+07:00","image":"/cara-install-lamp-stack-di-ubuntu/Cover_hu_75839586911a0d28.jpg","permalink":"/cara-install-lamp-stack-di-ubuntu/","title":"Cara Install LAMP Stack (Apache2, MariaDB, PHP 7) + phpMyAdmin di Ubuntu dan Turunan nya"},{"content":"I. Cara Install Git Untuk meng-install nya, Anda hanya perlu meng-unduh Git nya terlebih dahulu, bisa Anda kunjungi situs web resmi nya untuk meng-unduh Git, yakni: https://git-scm.com. Lalu, klik pada Button \u0026ldquo;Download Git\u0026rdquo; bla bla bla. Atau, Anda juga bisa mengunjungi Halaman Unduhan Resmi nya untuk meng-unduh Git.\nCara Install Git di GNU/Linux, macOS dan Sistem Operasi berbasis *nix lain nya Pada GNU/Linux atau Sistem Operasi berbasis Unix/Unix-like lain nya, biasanya mereka akan memberikan petunjuk cara instalasi Git nya untuk masing-masing Distribusi atau Sistem Operasi nya (kecuali untuk macOS, yang tidak di beritahukan cara Install nya disana). Kalau begitu, Anda tinggal ikuti saja petunjuk nya.\nAtau, kalo Anda tidak ingin mengunjungi nya, Anda bisa ikuti Petunjuk nya di bawah ini:\nUntuk pengguna Distribusi Ubuntu dan Turunan nya Untuk pengguna Distribusi Ubuntu dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n$ sudo -- sh -c \u0026#39;add-apt-repository ppa:git-core/ppa; apt update; apt install git\u0026#39; Untuk pengguna Distribusi Debian dan Turunan nya Untuk pengguna Distribusi Debian dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n# apt update \u0026amp;\u0026amp; apt install git Untuk pengguna Distribusi Arch, Manjaro dan Turunan nya Untuk pengguna Distribusi Arch, Manjaro dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n$ sudo pacman -S git Untuk pengguna Distribusi Fedora Untuk pengguna Distribusi Fedora dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n$ sudo yum install git # Untuk Fedora 21 dan di bawah nya $ sudo dnf install git # Untuk Fedora 22 dan di atas nya Untuk pengguna Distribusi OpenSUSE dan Turunan nya Untuk pengguna Distribusi OpenSUSE dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n$ sudo zypper install git Untuk pengguna Distribusi Gentoo Untuk pengguna Distribusi Gentoo dan turunan nya, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n# emerge --ask --verbose dev-vcs/git Untuk pengguna NixOS atau yang menggunakan Nix Package Manager Untuk pengguna Distribusi NixOS atau yang menggunakan Nix Package Manager, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n# nix-env -i git Untuk pengguna Alpine Linux Untuk pengguna Alpine Linux, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n$ apk add git Untuk pengguna FreeBSD Untuk pengguna FreeBSD, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n# pkg install git Untuk pengguna OpenBSD Untuk pengguna OpenBSD, bisa Anda ikuti perintah berikut di bawah ini untuk meng-install Git:\n# pkg_add git Untuk pengguna macOS Untuk pengguna macOS, bisa Anda Unduh dan Install Git nya dari sini.\nSedangkan untuk Windows, Anda bisa ikuti petunjuk nya berikut.\nCara Install Git di Windows Cara Install Git di Windows sangatlah berbeda daripada Install Git di Sistem Operasi berbasis Unix/Unix-like (*nix). Installer nya menggunakan GUI, sehingga dapat mempermudah kamu selama meng-install Git.\nHanya saja jika kamu salah langkah, maka yang terjadi adalah Git akan mengalami \u0026ldquo;kesalahan\u0026rdquo; (error) saat di gunakan, entah itu tidak bisa meng-kloning Repository sampai mengurus nya.\nMaka dari itu, jika Anda adalah pengguna Windows, maka Anda bisa ikuti cara instalasi nya berikut:\nUnduh Git untuk Windows.\nSetelah di Unduh, buka berkas tersebut. Jika muncul UAC (User Account Control), klik pada Button \u0026lsquo;OK\u0026rsquo;.\nSetelah itu, Install Git dengan Langkah-langkah berikut:\n1. Perjanjian Lisensi Nanti akan muncul Perjanjian Lisensi (License Agreement) setelah membuka berkas tersebut, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan Instalasi.\nCatatan: Jika Anda klik Button tersebut dan lanjut meng-install nya, ini artinya Anda telah menyetujui Perjanjian tersebut.\n2. Pilih Komponen mana yang ingin di Install (Select Components) Pada langkah ini, silahkan Anda atur Komponen mana yang ingin Anda install dan di aktifkan oleh Anda, seperti: Asosiasi Berkas, Integrasi Windows Explorer, Pintasan di Desktop, dll.\nJika Anda ingin menggunakan TrueType di dalam semua Konsol Windows, centang \u0026ldquo;Use a TrueType font in all console Windows\u0026rdquo;, seperti cuplikan berikut:\nSetelah Anda selesai memilah-milih nya, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan ke Langkah ke-3.\n3. Pilih Editor mana yang akan di gunakan (Choosing the default editor used by Git) Pada langkah ini, Anda bisa pilih editor yang akan di gunakan oleh Git nanti nya\nPada tutorial ini, saya akan gunakan \u0026lsquo;GNU nano\u0026rsquo; sebagai editor bawaan untuk Git, berikut cuplikan nya:\nKalo Anda ingin menggunakan Editor Favorit, sedangkan editor nya tidak tersedia disitu, nanti Anda bisa konfigurasi lagi\nKarena secara bawaan Git memilih \u0026rsquo;nano\u0026rsquo; sebagai editor nya, maka untuk langkah ini, bisa langsung Anda klik Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan ke Langkah ke-4.\n4. Pilih Cara untuk Eksekusi Git (Adjusting your PATH environment) Setelah itu, pilih opsi untuk cara eksekusi Git, saya sarankan untuk pilih opsi Git from the command line and also from 3rd-party software (atau, membiarkan nya karena sudah terpilih) agar Git bisa di akses atau di eksekusi dari manapun, termasuk dari CMD (Command Prompt).\nSetelah Anda memilih opsinya, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan.\n5. Pilih Perangkat Lunak untuk Eksekusi SSH untuk Git (Choosing the SSH executable) Setelah itu, pilih eksekusi SSH untuk Git, ini akan berguna nanti ketika Anda mengelola Repository Git dengan SSH. Agar lebih mudah, pilih \u0026ldquo;OpenSSH\u0026rdquo; dengan memilih opsi Use OpenSSH, seperti pada cuplikan berikut:\nSetelah Anda memilih nya, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan ke Langkah ke-6.\n6. Menentukan Pustaka untuk HTTPS pada Git (Choose HTTPS transport backend) Pada langkah Choose HTTPS transport backend, Anda akan menentukan Library/Pustaka mana yang akan di gunakan untuk \u0026rsquo;transportasi\u0026rsquo; HTTPS pada Git nanti nya.\nSaya sarankan untuk menggunakan Pustaka Bawaan dari Windows saja, yakni \u0026lsquo;Windows Secure Channel\u0026rsquo; (atau bisa di sebut \u0026lsquo;winSSL\u0026rsquo; atau \u0026lsquo;Schannel\u0026rsquo;), agar Git dapat mengenali CA (Certification Authority) dan Sertifikat SSL lain nya secara langsung di dalam Windows.\nMaka dari itu, pilihlah opsi Use the native Windows Secure Channel library, bukan Use OpenSSL (Kecuali jika Anda meng-install OpenSSL dan mempunyai berkas ca-bundle.crt di dalam Windows dan itupun belum saya tes), seperti pada cuplikan layar berikut ini:\nSetelah Anda memilih nya, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan ke Langkah ke-7.\n7. Menentukan \u0026ldquo;Baris Baru\u0026rdquo; untuk Git (Configuring the line ending conversions) Selanjutnya, pada langkah Configuring line endings conversions, Anda akan menentukan bagaimana Git akan memperlakukan \u0026ldquo;Line Ending\u0026rdquo; (Baris Baru) nantinya.\nKarakter Line Ending itu sendiri berbeda-beda, tergantung Sistem Operasi mana yang kamu gunakan, contoh: Pada Windows dan kebanyakan Sistem Operasi yang bukan berbasis Unix lain nya, karakter Line Ending yang berlaku adalah \\r\\n, sedangkan GNU/Linux, macOS atau Sistem Operasi berbasis Unix/Unix-like lain nya menggunakan \\n saja.\nAda beberapa istilah mengenai Line Ending ini, salah satu nya adalah: LF, CR dan CRLF. LF merupakan singkatan dari Line Feed atau \\n, sedangkan CR merupakan singkatan dari Carriage Return atau \\r. Dan, CRLF merupakan gabungan dari CR dan LF, atau \\r\\n yang di berlakukan oleh Sistem Operasi Windows dan macOS hingga saat ini.\nUntuk mempelajari lebih lanjut mengenai apa itu Line Ending, cari sendiri lewat Google, yah 🙂\nJadi, karena Anda saat ini meng-install Git untuk Windows, maka pilihan yang terbaik untuk Sistem Operasi Windows adalah Opsi Pertama, yaitu Checkout Windows-style, commit Unix-style line endings.\nSeperti cuplikan layar berikut:\nSetelah Anda memilih nya, klik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo;.\n8. Memilih Terminal Emulator untuk Git Bash (Configuring the terminal emulator to use with Git Bash) Pada langkah ini, Anda akan memilih Terminal Emulator bawaan untuk Git Bash nya, apakah menggunakan Konsol Windows atau MinTTY.\nMohon maaf, saat ini saya tidak mempunyai cuplikan layar sebagai contoh nya. Namun, pada tutorial ini, saya memilih menggunakan MinTTY dan saya sarankan untuk menggunakan nya daripada menggunakan Konsol Windows, dengan memilih opsi Use MinTTY (the default terminal of MSYS2).\nLalu, klik Button \u0026lsquo;Next \u0026gt;\u0026rsquo;.\n9. Konfigurasi Opsi Tambahan (Configuring extra options) Pada langkah ini, nanti akan ada tiga opsi, Anda bisa aktifkan semua opsi tersebut dengan mencentang nya.\nLalu, klik Button \u0026lsquo;Next \u0026gt;\u0026rsquo;.\n10. Konfigurasi Opsi Eksperimental (Configuring experimental options) Pada langkah ini, nanti akan ada satu opsi yang bisa Anda aktifkan, namun karena sifat nya Eksperimental, maka saya sarankan agar tidak mengaktifkan nya, kecuali jika Anda ingin mencoba nya.\nPada Git versi 2.23, akan ada opsi seperti cuplikan di atas, namun hal ini mungkin tidak berlaku untuk versi kedepan nya.\nKlik pada Button \u0026lsquo;Next \u0026gt;\u0026rsquo; untuk melanjutkan. Atau, jika ada Button \u0026lsquo;Install\u0026rsquo;, klik pada Button tersebut untuk meng-install Git.\n11. Proses Instalasi sampai Selesai Instalasi Git sedang dalam Proses, harap bersabar hingga selesai dalam beberapa menit kedepan.\nJika Git telah berhasil ter-install, klik pada Button \u0026lsquo;Finish\u0026rsquo;. Sebelum itu, Anda juga bisa hapus centang Launch Git Bash jika Anda tidak ingin menjalankan \u0026lsquo;Git Bash\u0026rsquo; setelah selesai Install.\nII. Akhir kata Sudah? Iya, sudah, cuma itu saja yang perlu Anda lakukan. Ini merupakan Artikel yang membahas tentang \u0026lsquo;Cara Install Git\u0026rsquo;, bukan \u0026lsquo;Apa itu Git dan Cara Install nya\u0026rsquo;, jadi saya tidak perlu basa-basi disini.\nYang perlu kamu lakukan setelah Install Git adalah, sebaiknya kamu pelajari mengenai penggunaan Git, banyak di Internet caranya, atau mungkin kamu akan lihat kedepan nya nanti jika Anda membuat/mengembangkan sebuah Perangkat Lunak.\nJika kamu mempunyai pertanyaan, kritik dan saran, komentar atau masukkan lain nya, silahkan kamu berkomentar melalui kolom komentar yang tersedia atau bisa kamu Hubungi Saya.\nTerima kasih atas perhatian nya 😊\nIII. Penggunaan Gambar dan Atribusi Berkas-berkas Gambar (seperti Cuplikan layar dan Gambar lain nya) yang di gunakan di dalam artikel ini, disediakan di dalam Repository Blog ini.\nJika Anda ingin menjelajahi nya, silahkan kunjungi Alamat URL berikut:\nhttps://github.com/FarrelF/Blog/tree/main/content/post/2019/09/17-cara-install-git Gambar yang terletak di paling atas dan di bawah judul artikel itu merupakan Logo Git, yang telah di buat oleh Jason Long.\nLogo Git di lisensi kan dengan Creative Commons Attribution 3.0 Unported (CC BY 3.0) oleh pembuatnya, begitupun juga dengan varian logo Git lain nya.\nJika Anda ingin meng-unduh lebih banyak, silahkan Anda kunjungi halaman web resmi nya.\n","date":"2019-09-17T16:13:03+07:00","image":"/cara-install-git/Cover_hu_7d68b524eeb9e1bb.png","permalink":"/cara-install-git/","title":"Cara Install Git di Windows, GNU/Linux dan macOS (tanpa basa-basi!)"},{"content":"Pembuka Halo Dunia! (Lagi. \u0026ldquo;Eh, emang pernah, yah?\u0026rdquo;), ini adalah artikel pertama yang bukan merupakan artikel uji coba.\nSudah lama sekali saya tidak pernah menulis artikel di dalam blog saya. Tapi, mulai sekarang ini, saya akan lebih fokus dalam penggunaan Static Site Generator bila di bandingkan dengan menggunakan WordPress untuk mengelola Blog saya ini.\nSeperti yang Anda tahu, bahwa Blog ini merupakan sebuah berkas HTML Statis, yang di hasilkan melalui Pelican yang bertindak sebagai Static Site Generator.\nJadi, blog ini di tenagai oleh \u0026lsquo;Pelican\u0026rsquo;. Ehh, tapi bukan oleh Burung \u0026lsquo;Pelican\u0026rsquo;, yah, hehe 😀\nHosting yang saya gunakan Untuk hosting nya, saya gunakan Netlify sebagai pengganti dari Web Hosting, agar saya bisa menghemat biaya yang cukup banyak, karena tidak perlu lagi bayar perbulan nya (Saya harap ini bertahan sampai seterusnya). Palingan, saya hanya perlu bayar domain saya saja yang pertahun.\nSelain menghemat biaya, dengan memanfaatkan Static Site Generator ini, saya hanya perlu menggunakan Editor Teks/Kode untuk menulis Artikel, yang sebelumnya pada WordPress saya harus membuka Peramban Web (Web Browser) terlebih dahulu.\nBelum lagi Web Browser nya yang terus-menerus membuat Kinerja Sumber Daya dalam Komputer saya membengkak saat menulis artikel, apalagi kalo kalimat nya banyak.\nDan, itupun dalam menulis (terutama untuk menyimpan Artikel sebagai konsep/draf), saya harus dalam keadaan Online sedangkan Koneksi Internet di saya tidak selalu memadai disini. Serta, saya juga harus menuruti banyak sekali langkah, yang sekira nya itu cukup \u0026lsquo;merepotkan\u0026rsquo; saya.\nSelain itu, hal ini dapat meminimalisir kesalahan 503 (Internal Server Error) atau Gangguan Server lain nya saat menulis Artikel/Laman, karena untuk menulis dan menyimpan nya gak harus menggunakan koneksi Internet terlebih dahulu.\nJadi, itulah kenapa saya lebih memilih untuk menggunakan Static Site Generator seperti Pelican ini bila di bandingkan dengan WordPress.\nKenapa memilih Netlify daripada Layanan Sejenis seperti Zeit? Karena di Netlify saya di berikan kemudahan untuk membangun/membuat Berkas-berkas HTML dari Kode Sumber, kemudian men-deploy-kan hasil nya.\nDi tambah, ada beberapa referensi untuk men-deploy Pelican dengan Netlify ketika kita mencari nya di Google daripada menggunakan Layanan Sejenis lain nya seperti Zeit dan (mungkin) Commons Host.\nSaya kira itu saja alasan nya, atau mungkin saya kurang mempelajari Layanan Sejenis lain nya.\nOh, iya, saya bisa membangun sebuah blog berbasis Pelican dan men-deploy nya menggunakan Netlify, itu berkat referensi dari sini.\nBagaimana dengan CDN nya? Untuk CDN nya, seperti biasa, saya selalu gunakan CDN dari Statically, baik untuk memuat berkas Gambar, Emoji, JS dan CSS di dalam Blog saya ini.\nKenapa pake CDN ini? Agar bisa menghemat Bandwidth yang cukup besar, mengingat disini ada Font yang berukuran lebih dari 2 MB. Meskipun di Netlify memiliki CDN (Artinya, ketika Anda mengakses blog ini, maka sebenarnya Anda mengakses blog ini dari Server Netlify terdekat), namun Bandwidth yang di sediakan cukup terbatas, yakni sebesar 100 GB/bulan.\nLumayan besar (malah besar banget) sih batasan nya untuk blog seperti ini, cuma ya kalo bisa di hemat, kenapa tidak? Nah, karena CDN Statically ini gratis dan juga Bandwidth nya \u0026rsquo;tidak terbatas\u0026rsquo;, maka saya manfaatkan CDN ini untuk memuat berkas yang ada di dalam Repo GitHub saya.\nDengan ini, (harusnya) Bandwidth Netlify tidak terpakai sama sekali/tidak terakumulasi, karena saya menggantungkan Asset Blog ini kepada Statically yang mana tugasnya untuk menghantarkan sebuah berkas dari dalam Repo GitHub, dan itupun dimuat secara eksternal (diluar blog ini). Jadi, lalu lintas bisa sedikit di perhemat 🙂\nSaya mempunyai Akun BunnyCDN, cuma saya gak implementasikan disini, mengingat mungkin kedepan nya saya akan terus menggunakan CDN Statically daripada BunnyCDN, karena saya lebih nyaman disitu, meski gak ada fitur Custom Domain dan kurang lengkap (karena Statically merupakan Layanan Public CDN) 🙂\nApa Fokus kedepan nya? Karena saya lebih suka penggunaan Static Site Generator bila dibandingkan dengan menggunakan WordPress untuk keperluan Blogging, seperti yang saya katakan pada pembahasan sebelum nya.\nJadi, bisa kamu tebak dong jawaban nya seperti apa? Yap! Saya akan lebih fokus untuk menulis disini, daripada di blog lama saya yang berbasis WordPress. Jadi, blog lama saya berhentikan, alias udah gak saya urus lagi.\nSudah saya bahas alasan nya di bagian \u0026ldquo;Hosting yang saya gunakan\u0026rdquo;, jadi saya kira alasan nya sudah jelas 🙂\nTapi, sebelum saya menulis artikel lagi, mungkin saya akan fokus untuk merombak blog sedikit terlebih dahulu, mengingat ini jauh sekali dari kata \u0026rsquo;lengkap\u0026rsquo;, seperti ada Laman yang kosong, Mesin Pencarian juga tidak ada, begitu pula dengan Analitik nya, dan fitur-fitur lain nya.\nPEMBARUAN 20 Februari 2020: Semua nya udah hampir lengkap, ding! Tinggal laman nya saja yang belum lengkap.\nLalu, bagaimana dengan Blog lama nya? Apakah ada niatan untuk menyalinkan artikel lama kesini? Memang saya memiliki beberapa artikel di dalam blog yang lama. Tapi, sayangnya, saya tidak berniat untuk menyalinkan semua artikel yang berada di blog lama saya ke dalam blog ini.\nDengan kata lain, saya tidak pernah berniat untuk bermigrasi, karena migrasi dari Platform lama itu membuang pikiran, tenaga dan waktu saya. Jadi, saya tidak berpikir untuk melakukan nya, lebih baik seperti ini saja.\nKarena semua itu, akhirnya blog ini saya mulai dari awal lagi, ini bukan berarti blog yang lama nya saya hapus, yah, kamu mungkin masih bisa mengakses nya disini.\nRangkuman/Kesimpulan Jika Anda merasa bahwa artikel ini kepanjangan atau sulit untuk di baca, maka saya akan merangkum isi artikel ini menjadi sebuah kesimpulan, dalam format yang mudah dibaca oleh Anda. Berikut rangkuman nya:\nBlog ini, artikel serta laman nya merupakan Berkas HTML Statis yang di hasilkan menggunakan Static Site Generator (atau di singkat \u0026ldquo;SSG\u0026rdquo;) seperti Pelican. Iya, jadi saya menggunakan/memanfaatkan SSG untuk menulis dan mengubah artikel/laman di dalam blog ini. Alasan nya:\nSaya merasa jauh lebih nyaman dalam menulis artikel dengan memanfaatkan Editor Teks/Kode di bandingkan dengan lewat Web Browser dengan Editor WYSIWYG (What You See Is What You Get) nya.\nUntuk menulis atau/dan mengubah Artikel/Laman, gak harus terkoneksi dengan Internet (Alias, bisa dalam keadaan Luring/Offline). Kecuali, jika menerbitkan Artikel di dalam Blog dan men-deploy nya, itu memerlukan koneksi Internet, hanya saja lebih \u0026lsquo;ramah\u0026rsquo; untuk pengguna Internet seperti saya (Karena penggunaan Git).\nLangkah-langkah menulis artikel/laman menjadi lebih \u0026lsquo;sederhana\u0026rsquo; dibandingkan dengan menulisnya melalui WordPress, yang cenderung lebih \u0026lsquo;merepotkan\u0026rsquo;. Contohnya: Menulis Artikel di dalam WordPress, saya buka Peramban Web (Web Browser) terlebih dahulu -\u0026gt; Masuk ke dalam Admin WordPress (wp-admin) -\u0026gt; Login dengan menggunakan Akun yang saya punya -\u0026gt; Masuk ke Dasbor -\u0026gt; Klik pada \u0026ldquo;Pos\u0026rdquo;, dan langkah-langkah lain nya untuk menulis sebuah artikel/laman saja.\nSaat saya menulis artikel/laman dengan WordPress, Komputer/Laptop saya terkadang seringkali mengalami \u0026lsquo;pembengkakan\u0026rsquo; kinerja, terutama pada bagian penggunaan Sumber Daya (seperti: CPU, RAM, dll) seiring lamanya atau banyaknya kalimat di dalam artikel/laman yang saya tulis di dalam Editor.\nMeminimalisir kesalahan 503 (Internal Server Error, baik karena Salah konfigurasi sampai Server Hosting) dan juga segala Gangguan dari Server Hosting saat menulis artikel. Karena saya menulisnya di dalam Editor, gak harus Online juga, hehe 😀\nBlog ini juga menggunakan Netlify sebagai Hosting nya. Alasan kenapa saya menggunakan nya sebagai berikut:\nKarena Gratis, sehingga tidak perlu bayar hosting/server per bulan/tahun nya (Kecuali Domain, yang bayarnya pertahun). Sehingga ini akan sangat menghemat biaya untuk orang seperti saya 🙂\nSecara Bawaan, Netlify menggunakan CDN (Atau, lebih tepatnya \u0026lsquo;ADN\u0026rsquo; yang merupakan kepanjangan dari \u0026lsquo;Application Delivery Network\u0026rsquo;), sehingga dapat meminimalisir lambatnya akses ketika pertama kali di buka. Udah gitu, gratis pula.\nGagal Update Blog karena perbedaan Koneksi Jaringan Internet antara Server Hosting dan Server lain nya dapat di minimalisir.\nTerintegrasi dengan GitHub, GitLab dan Bitbucket.\nSelain itu semua, alasan saya memilih Netlify sebagai Hosting di bandingkan dengan layanan sejenis, seperti Zeit itu karena kemudahan nya dalam men-deploy Blog Statis dari Kode Sumber.\nMeskipun Netlify menggunakan CDN pada Jaringan nya, Blog ini juga masih menggunakan Layanan CDN Umum seperti Statically untuk memuat berkas statis lain nya. Alasan nya:\nKarena Gratis dan memiliki Bandwidth yang \u0026rsquo;tidak terbatas\u0026rsquo;. Sehingga, ini dapat menghemat Bandwidth Netlify yang di batasi hingga 100 GB/Bulan untuk paket Gratis nya.\nMemiliki Infrastruktur Multi-CDN, yang artinya Statically memiliki 4 CDN di dalam nya. Seperti: BunnyCDN, Cloudflare, CDN77 dan Fastly.\nGambar-gambar sudah langsung di optimasi ketika dimuatkan. Sehingga, ini memudahkan saya untuk mengoptimasi gambar tanpa harus terlalu menggantungkan nya kepada pihak ke-3 lain nya.\nLamanya Penyimpanan Tembolok (Cache) dan Integritas berkas di dalam Tembolok itu ditentukan berdasarkan Branch, Tag atau Commit yang ada pada Repository Git. Sehingga, ketika saya ingin menggantikan gambar di dalam artikel, saya cukup unggah gambarnya kedalam Repository Git, lalu saya ganti Commit nya saja, tidak perlu sampai menggunakan fitur Purge Cache, bahkan menggantikan nama berkas.\nDengan semua alasan ini, maka untuk kedepan nya, saya akan fokus untuk Blogging dengan memanfaatkan SSG dibandingkan dengan menggunakan WordPress. Jadi, imbasnya, blog lama udah gak saya urus lagi, meski Blog lama masih ada dan gak akan saya hapus.\nTapi, saya tidak berniat untuk memigrasikan dari Blog lama ke blog baru ini, karena membuang waktu, pikiran dan juga tenaga. Sehingga, saya ingin memulai nya dari awal lagi.\nPenutup Jadi, sudah dulu yah, saya juga mau fokus merombak blog ini terlebih dahulu, dibandingkan dengan menulis artikel. Seperti yang Anda tahu, blog ini sangat \u0026lsquo;jauh\u0026rsquo; sekali dari kata \u0026ldquo;lengkap\u0026rdquo;, seperti ada halaman yang dalam masih di buat/di draf, dan lain sebagai nya.\nKalau Anda mempunyai kritik dan saran atau masukkan lain nya, silahkan Anda berkomentar melalui kolom komentar yang telah di sediakan, atau jika Anda ingin lebih pribadi, silahkan Hubungi Saya.\nTerima kasih atas perhatian nya 😊\n","date":"2019-08-27T03:17:45+07:00","permalink":"/halo-dunia/","title":"Halo Dunia! (Lagi)"}]