DevCA

https://github.com/orndorffgrant/devca

Post backdated to the time of the project.

While working on the backend for Squaresplosion, which is a websocket-over-TLS server (wss), I needed to make a TLS certificate for local development. I hacked together a short script using openssl to make a self-signed CA and issue a certificate for a private key, but it was a pile of esoterica. I thought that it would be nice to have a tool that could do this in a more user-friendly way.

I looked around and I found prior art in minica. I somehow didn't find mkcert at the time. But I wanted to make my own tool, and I wanted to keep learning rust, so I made devca.

devca first generates a self-signed certificate authority (CA). It uses that CA to generate certificates for any name that you'd like with a command like devca new localhost. It also offers basic management commands like devca ls and devca delete as well as a devca path-to command to get the path to the certificate and key for a given name.

I used this project as an excuse to play around with compiling to wasm and using a wasm runtime to use devca as a CLI tool. I include instructions on how to use the wasm build in the README.

Later on, I also used this project to learn how to build a snap package. So you can install devca on Ubuntu with snap install devca.

You can find the code, usage instructions, and more in the repository on github.