DEV Community

rocketsquirreldev
rocketsquirreldev

Posted on

Stop losing your cert trees! Adding Save & Load to x509Lab

If you’ve ever used a web-based visualizer tool, spent 10 minutes carefully arranging nodes, and then accidentally hit Cmd+R (or F5) only to watch everything vanish... you know the pain.

A few weeks ago, I launched [x509Lab]

(https://x509lab.vercel.app), a browser-based GUI tool to visually build and verify X.509 certificate chains (Root CA → Intermediate → Leaf). While users loved the drag-and-drop canvas and the auto-generated openssl CLI commands, there was a glaring issue: There was no way to save your work.

If you closed the tab, your beautifully constructed PKI tree was gone forever.

Today, I’m excited to announce that Save and Load functionality is finally live in v1.2.0!


The Fix: Exporting the Canvas to JSON

I wanted a solution that didn't require a backend database or user accounts. x509Lab is designed to be a quick, stateless, client-side utility.

So, I implemented a feature that serializes your entire canvas state into a .json file that you can download and keep locally.

How it works:

  1. Build your certificate hierarchy on the canvas.
  2. Click the [💾 Save] button in the top menu (or use the developer-approved Ctrl+S / Cmd+S keyboard shortcut).

  1. A file named x509lab-chain-[date].json is instantly downloaded to your machine.

  1. Next time you visit, just click [📂 Load], select your file, and your exact tree is restored—edges, nodes, and all!


🛡️ What about Security? (Important Note)

Since x509Lab deals with sensitive security assets (certificates and private keys), I had to be very careful about what gets saved to this JSON file.

What IS saved:

  • Node positions (x, y coordinates) and custom names.
  • Node types (Root CA, Intermediate, Leaf).
  • The connection structure (Edges).
  • The uploaded Public Certificates (PEM format).

What is NOT saved:

  • 🚫 Private Keys. For security reasons, if you uploaded or generated a Private Key inside the app, it is deliberately stripped out of the save file. Even if someone intercepts your .json backup, your private keys remain safe because they were never exported.

Catching up: Recent Updates

I've been quietly pushing a few other quality-of-life improvements based on your feedback:

  • v1.2.0: Save/Load chain feature (New!)
  • v1.1.3: Fixed an issue with OpenSSL CLI copy (removed # comments from the clipboard), and added a Keyboard Shortcuts help menu.
  • v1.1.1: Fixed long certificate names getting truncated in the UI, and added visual feedback to Copy buttons.
  • v1.1.0: GUI-to-CLI auto-generation (My favorite feature so far).

Try it out!

If you deal with mTLS, internal CA setups, or just want to visualize how SSL certificates chain together, give it a spin. It's completely free and runs locally in your browser.

🔗 Link: https://x509lab.vercel.app

Let me know if you run into any bugs or have feature requests in the comments below. Happy securing! 🚀

Top comments (0)