Title says it - I want a simple CA that doesn’t overcomplicate things (looking at you, EJBCA). I need it to serve at least CRLs or better OCSP automatically for the certs it manages. If it comes with a Web GUI, all the better, but doesn’t need to. Docker deployment would be sweet.
Currently handling this on an OPNSense I happen to be running, but that thing is also serving stuff to the public 'net, so I’d rather not have my crown jewels on there.
https://smallstep.com/docs/step-ca/index.html
There’s basically two executables involved:
step
is the CLI app used to request certificatesstep-ca
is the server process thestep
client connects to
I’ve got the CA portion bundled into Docker. It can also run as an ACME server (and is compatible with
certbot
).step-ca does not currently support active revocation mechanisms like a Certificate Revocation List (CRL) or Online Certificate Status Protocol (OCSP).
Meh. Doesn’t do what I need it to. :/
Does seem like automatic CRL/OCSP is something you only get for free with EJBCA. Frustrating, that.
This is exactly what i wanted to say :)
I think you search that: https://developer.hashicorp.com/vault/tutorials/pki/pki-engine
This entire question has oxymorons all over it, but…
- EasyRSA - simple and well-known CLI implementation that is used almost everywhere for OpenVPN
- Step - newer on the block, but seems extremely well documented and fairly well used
- XCA - old-school, but still actively developed. May not even work on more modern machines
Sadly, most of the ones I’ve found are too complicated, and getting all devices to accept the CA is more hassle than it’s worth for self hosting. I’ve given up and just buy my wildcard cert for 60$/yr and just put it on everything.
fyi you can get a wildcard from letsencrypt for free
I’m a trained netsec professional so handling keys and such is not really a hassle for me. What is a hassle IMO is having to manually do more things than hitting the “revoke” button to fully properly revoke a certificate, so that’s where the CRL/OCSP req comes from.
Looks like that part is something you really only get for free with EJBCA, which I’ve tried and found very exhausting to use for my home network. If I had to pick one for work I’d probably go with EJBCA though, seems worth the effort if you’re doing more complex things.
If overcomplicating things is a concern for you, then just use let’s encrypt. Running your own ca is a pain in the ass and probably decreases security for most people due to the difficulty of doing it correctly.
Nobody needs ocsp or clr in their homelab. And if they’re a trained netsec professional they know that its far better with short-lived certs than any revocation model. Both zerossl and letsencrypt are easy to use - and works flawlessly with something like caddy on a wildcard domain, or an acme proxy. Openssl is easy, and you can clr with that or even use their ocsp for homelab.