AuthBox documentation — User guide

Documentation embedded in this build.

Leaving the public CA

If any of your clients authenticate with a certificate a public CA issued, you have a deadline that is not yours to move. This page is the argument for where to go instead, written so you can check every part of it. It is dated: everything below was accurate when it was written in August 2026, and the dates belong to other people's programmes, so verify them at their source before you put them in a plan.

The clock

Two of these are already in the past. If your renewal against a public CA has started being refused for a reason that names client authentication, that is the schedule arriving, not a fault in your request.

Switching public CAs is not one of your options

The reflex is to find a public CA that still issues client certificates. It is worth understanding why that is a shrinking hiding place rather than a solution.

The exit is happening at the root programme level, not at the CA level. Root programmes are separating the two purposes — a publicly trusted root may vouch for servers or for clients, not both — and a CA that keeps issuing client certificates from a publicly trusted root is not doing you a favour, it is out of step with the programme that makes its root trusted in the first place. Whichever CA you move to next inherits the same constraint, on roughly the same schedule.

There is a second reason, and it is the more useful one: you were never getting anything from public trust on the client side. No browser verifies your clients. The only parties that verify them are your own servers, proxies, and brokers, and they verify against a trust store you already control. What the public CA gave you was a validation ritual — proof of control over a domain name or an email address — that says nothing about whether the holder should be allowed into your system. You have been paying a third party to attest to a fact your authorization rules do not consult.

Moving to a private CA is therefore not a downgrade in trust. It removes a dependency that was decorative on this side of the connection, and it puts the issuing decision where the authorization decision already was.

The 47-day future makes renewal a property of the system

By 2029, a 47-day maximum lifetime means roughly eight renewals per certificate per year. Whatever you build has to renew without a person in it, or it becomes an outage generator with a calendar attached. That is the real requirement the sunset hands you, and it is worth choosing your destination against it rather than against issuance alone — issuing a certificate is the easy part of a private CA, and everyone does it.

AuthBox ships two renewal mechanisms, for two populations, and it is deliberately not one universal one:

Both are honest about their limits. The attribute is granted per subject rather than being a fleet-wide default, and the agent deliberately does not use it — a credential that renews itself with nobody watching is a decision somebody should make once, out loud, about the specific identities it suits.

First issuance stays a reviewed act in either case. A service's first certificate comes from a single-use join token; a person's comes from an invitation an administrator minted, or from an approval in the enrollment queue. If your fleet already speaks ACME, AuthBox serves RFC 8555 with external account binding, so cert-manager, certbot, Caddy, and lego enrol against it with no AuthBox-specific code — the binding's key identifier is an invitation, which keeps the "somebody authorized this once" property that ACME on its own does not have.

What a private CA does not give you, and what this one adds

A bare private CA — an OpenSSL hierarchy, a small CA server, your cloud provider's private CA — solves issuance. Everything below issuance stays your problem: who is allowed to do what once the certificate exists, how a revocation actually reaches a verifier, how you demonstrate any of it to a reviewer, and whether it works at all without an internet connection.

These are the things AuthBox does about that. Each one names how you would check it, because a claim you cannot test is worth what you paid for reading it:

The boundary: this is the client side of your PKI

AuthBox replaces the client half of what the public web PKI was doing for you. It does not replace the server half, and you should be suspicious of anyone who says otherwise.

Server certificates for public-facing surfaces stay on the public web PKI. A browser you do not control will never trust your private root, and no amount of internal PKI changes that. The sunset described at the top of this page is not an exit from server authentication either — public CAs continue issuing server certificates, that is the purpose the root programmes are consolidating toward, and your public server certificates should keep being issued and automated exactly as they are now. AuthBox's own listeners are no exception: where one faces the public web, it holds a publicly issued serving certificate like anything else, renewed on the public CA's schedule.

The place where both halves can be private is a system with no browsers in it — service to service, where you own every verifier. That is a legitimate design and AuthBox is usable for it, but it is a decision you make about your own topology, not a claim this page is making for you.

What moving actually involves

Seven stages, in order, and the order carries the only rule that reliably breaks migrations when it is inverted: every verifier gains your new root before any client presents a leaf signed by it. Inventory what presents a public client certificate and who verifies it; stand up the CA and decide the naming scheme; choose the intake, by invitation or by ACME; run the dual-trust window in which both roots are accepted; cut clients over in batches; retire the public root from client verification only; and prove it by keeping one retired credential and confirming that a connection using it now fails.

The full procedure, with the commands and with what breaks if the order is reversed, is the operations runbook: Migrating a client fleet off a public CA.

Where to look next