eMudhra CA compromise: my Mac's curl still trusted the bad certificates
Eight eMudhra intermediate CA keys got compromised. Browsers already block them, but the curl that ships with macOS still trusted them. How I tested it and what I did about it.
68 posts. Newest first.
Eight eMudhra intermediate CA keys got compromised. Browsers already block them, but the curl that ships with macOS still trusted them. How I tested it and what I did about it.
Meet KelpShot, my native macOS screenshot app. Try the free early access, learn how to get started, and help fund its $99 Apple signing goal.
Papir is a small, private scratchpad that sits in your macOS menu bar, ready for the notes you need now but do not want to organize.
Setelah 303 hari sejak 23 November 2025, kami dengan senang hati mengumumkan bahwa BlankOn Linux 26.09 Sinambung, dengan nama kode ISO Verbeek, telah resmi dirilis.
Post pertama. Kenapa aku pindah ke Astro + Cloudflare Pages dan apa saja yang bisa kamu harapkan dari blog ini.
Pelajaran dari tiga tahun bikin Terraform modules yang salah — dan pattern yang akhirnya stick.
Setup observability lengkap (metrics + logs + traces) untuk side project, tanpa tagihan SaaS yang bikin deg-degan.
A one-liner with awk that counts running, paused, idle, and shut-off KVM guests from virsh list --all output. Quick health check on a busy hypervisor.
Notes from messing around with pagespeed.web.dev to see how the blog scores on mobile. Will update as I shave off the obvious wins.
Step-by-step for an infected WordPress site: top to find the rogue process, lsof to locate the file, chmod 000 + chattr +i to neutralize it, then dig through cron and core.
Moving the blog off GhostCMS and from harry.coffee to harry.id. The .coffee TLD was getting expensive — let's see if this version of the site lasts longer.
If you've encountered difficulties in locating the appropriate interface with a 10G uplink, you may have observed instances where the interface fails to appear. This happens when the ixgbe module fails to load due to the detection of an unsupported SFP+ module type. Wondering how to resolve…
Compare the execution times of Linux find commands when listing files, using terminal output from a small command-line benchmark.
What the STAT column in ps and the S column in top mean on Linux: every process state code (R, S, D, I, T, Z…), the extra flags like s, l and +, and how to find stuck and zombie processes.
What is LDAP and why it is used? LDAP stands for Lightweight Directory Access Protocol. It is a protocol used for accessing and managing directory information services over a network. A directory service is a centralized database that stores and manages information about users, devices, and…
Specific UID numbers and ranges of numbers are used for specific purposes by Red Hat Enterprise Linux. • UID 0 is always assigned to the superuser account, root. • UID 1-200 is a range of "system users" assigned statically to system processes by Red Hat. • UID 201-999 is a range of "system…
Issue: You may have requirements to update the existing Infrastructure Hosts on your OpenNebula cluster that are currently hosting virtual machines (VMs), but the hosts name can't updated Here is a scenario that illustrates this case: * Existing host: compute1.sgp.example.com * Change host to:…
TL;DR: 1. S0: Also known as the working state, the computer is fully operational with the CPU executing instructions, devices powered on, and the display active. 2. S1: Also known as the sleep state, the CPU stops executing instructions, but the memory and system state are still powered on to…
A Windows Terminal keyboard shortcut reference for tabs, panes, profiles, search, scrolling, font sizes, settings, and fullscreen mode.
Use the browser console to mark queued WHMCS modules as resolved by finding their Resolve buttons and triggering each one.
Notes on lldpd errors after a network restart, with example log messages and restarting the lldpd service to reopen its interfaces.
Ich bin Harry. Sie kennen zu lernen. Why did I start this post in German language, Deutsch? Because I just moved my server out from Singapore to Dussel, Germany. And why the thumbnail is the sausage? It's one of the traditional food in Germany. I hope I can go to 🇩🇪 Germany soon. Bis bald!
A scratchpad of memory slot placements and speed values across two CPUs, showing the recorded values for the A1, A2, B1, and B2 slots.
Have you heard about localization? lo·cal·i·za·tion is the process of making something local in character or restricting it to a particular place. So why this can be a project? Projects (apps) are regularly written in the international language. But sometimes they want to be in a different local…
Deny all except some IPs Go to your domain on Cloudflare. Choose the Security menu, and go to WAF. Then, Create firewall rule type the Rule name. Fill in the rule with this. * Field: IP Source Address * Operator: is not in * Value: 103.103.103.103, 104.104.104.104 (your allowed IP) * Choose an…
Install Docker Engine and the Compose plugin on a CentOS server, enable the service, and keep the removal commands handy.
I just figured out that: RAM is most likely to fail in the first three months so test all RAM before deployment. (iXsystems, Inc. 2022) "Bathtub" Curve Kingston has research that RAM stick is most likely to fail in the first 3 months. Reff:…
Notes from removing a Gluster volume when disconnected peers prevent normal deletion, including the errors encountered and the cleanup performed.
Retrieve the full name of a Kubernetes pod with kubectl label selectors and a JSONPath query, illustrated with an NGINX pod.
Dimulainya bulan kuartal pertama di tahun 2022 ini, dimulainya juga penempatan kantor tempat saya berkarir setelah sekian lama ada kegiatan pembangunan kantor baru. Bangunan kantor ini dibangun lebih luas dari kantor sebelumnya. Setiap orang disibukkan dengan kegiatan menata ulang kantor…
So I just figured out that the image (.ISO) on memtest86(.)com doesn't support bootable. For bootable, you need to use an memtest86+ image from memtest86(.)org. So use memtest86+ instead of memtest86.
Build and deploy a JavaScript app to Cloudflare Workers, with commands for installing dependencies, local development, production builds, and static generation.
Terminal notes from checking for a new Ghost release and updating a Ghost installation to version 5, including the update prompts.
Notes on WSL file permissions that stay at 0777 despite chmod, the resulting SSH private-key warning, and the automount configuration.
Join multiline into one line with space-separated in VIM It's pretty simple using VIM to text editing. Go to command mode: shift + : Type: %j
Change quotas for multiple ZFS datasets from the command line instead of editing them individually in the TrueNAS interface.
Use dmidecode to count memory slots, identify empty slots, and inspect the installed RAM capacity and location in a Linux server.
Install ConfigServer Security & Firewall on a Linux server, add its Perl dependencies, and check whether the required firewall modules work.
Notes on adding special, log, and dedup VDEVs to a TrueNAS ZFS pool manually when the interface does not support partitioned disks.
Need to buy and install these little tools for the room server.
Which one is good for storage cluster? Let's find this out.
Memantau proses migrasi virtual machine melalui virsh ketika antarmuka infrastruktur cloud tidak menyediakan progress bar.
Membuat service systemd untuk Node Exporter: menyiapkan binary, menulis unit file, reload daemon, dan mengaktifkan service saat boot.
Identify a physical network port by blinking its NIC LED with ethtool, using an interface name and a duration in seconds.
Singkat cerita, server tua ini membutuhkan Internet Explorer untuk mengakses iLO. Karena mesin T460s saya sudah terpasang Windows 11, yang mana si Windows versi ini sudah (hampir) menghapus IE. Jadi, walaupun ada opsi untuk membuka IE via Microsoft Edge, tapi tetap saja tidak bisa mengakses IPMI…
Intel's open-source ledmon lets you blink the LED on a specific drive in a server enclosure — handy when you need to physically locate a disk before pulling the wrong one.
Troubleshoot a kubeadm initialization failure caused by unhealthy kubelet cgroups, configure Docker to use systemd, and restart the services.
Inspect mounted filesystems on Linux with findmnt and df, including examples for filtering filesystem types and displaying disk usage.
tmux – terminal multiplexer. Mirroring command :setw synchronize-panes ( on|off )
Suatu gebrakan. Jadi di bulan September ini saya memutuskan untuk membuat akun Instagram. Keputusan ini bukan tanpa sebab. Sudah saya pertimbangkan dari bulan Agustus lalu. Yang menyebabkan keputusan ini adalah sebuah event kompetisi kewirausahaan yang diselenggarakan oleh PT Gelora Djaja selaku…
Mencari serial number disk melalui udevadm untuk membantu mencocokkan perangkat saat menyiapkan dan merakit infrastruktur server.
Locate OpenNebula VM disk snapshots on shared GlusterFS storage and inspect the snapshot directory and file sizes from the frontend.
A personal scratchpad for regular expressions, including a pattern for matching IPv4 addresses and notes for future examples.
Last Friday of July — celebrating the people who keep the servers warm. Refill that cup, fellow sysadmins.
Catatan awal untuk riset netconsole, dengan tautan ke dokumentasi kernel Linux dan panduan konfigurasi dari Red Hat Enterprise Linux.
Notes on resolving Perl locale warnings by setting LANGUAGE and LC_ALL, with examples for different environments and the Fish shell.
System Activity Reports — using sar to investigate a sudden server crash. Where the data lives, how to generate plain-text reports, and a free chart tool to actually make sense of the numbers.
A casual chat with my co-mentor about HashiTalks and the HashiCorp stack — Packer, Vagrant, Terraform, Consul, Vault, Nomad, and friends. Notes-to-self for future deep dives.
Quick reference for restricting access in Apache: the order/deny/allow syntax of 2.2 vs the Require syntax of 2.4 — almost the same problem, almost the same words, different config.
When a WHMCS admin loses their 2FA backup codes, the rescue path is a single UPDATE query against tbladmins to clear authmodule and authdata.
Why ES Curator silently refuses to delete old indices when they're managed by ILM — and the one-line fix (allow_ilm_indices: true) that gets it back to work.
An Indonesian acronym I picked up from Pak Rahmat Samik-Ibrahim's blog: Google Sana, Google Sini, Coba Itu, Coba Ini, Lalu Tanya-tanyi — basically my entire workflow as a sysadmin.
Notes on installing the missing python2-certbot-nginx plugin and getting a free Let's Encrypt cert via the nginx authenticator.
I need to research this things in spare times. * compact_memory * glusterfs benchmark performances * netconsole
Reload Logstash pipeline config without restarting the service — just send SIGHUP to the running process and watch the log confirm the reload.
A scratchpad of one-liners I keep typing — find files older than N days, list IPs, and the others I'm too lazy to memorize properly.
I made a list of an awesome projects on GitHub that I've used in my machine. * https://github.com/rupa/z - Jump Around through directory * https://github.com/fish-shell/fish-shell - My most wanted command line shell * https://github.com/FrauBSD/mping - Ping multiple hosts *…
Article imported from the previous Ghost publication, preserved here as part of the harry.id archive.