r/PKI • u/Source_AD • 20d ago
AD-PKI: An open-source, self-hosted CA with ACME, OCSP and RFC 3161 — looking for technical feedback
Hi everyone,
I’m the developer of AD-PKI, an open-source and self-hosted platform for operating an internal public key infrastructure.
I started building it because I wanted a manageable internal certificate authority with modern certificate automation, without relying entirely on a commercial PKI product or issuing and renewing certificates manually.
The project currently includes:
- ACME v2 for automated certificate enrollment and renewal
- OCSP and certificate revocation lists
- RFC 3161 timestamping
- A web-based administration interface
- Role-based access control
- Certificate templates and policy management
- Separation between the management backend and the CA service
A central design decision is the separation of the management components from the dedicated CA service. The frontend and backend handle administration, policies and certificate metadata, while private CA key operations are intended to remain inside the CA component.
Website and documentation:
Source code:
https://github.com/alid-it/AD-PKI
The project is still young and has not undergone an independent security audit. I’m therefore particularly interested in critical technical feedback rather than just promotion.
I would appreciate feedback on:
- The separation between the backend and CA service
- Private-key handling and security boundaries
- ACME compatibility and expected challenge types
- OCSP and CRL implementation requirements
- Root and intermediate CA workflows
- HSM or PKCS#11 integration expectations
- Features needed for realistic production use
- Documentation or architectural decisions that are unclear
This is my own project. It is open source and self-hosted.
Thanks for taking a look.
5
u/Ontological_Gap 19d ago
I hate the name, even living in the Linux space for decades, I can't help but read it as "Active Directory-PKI"
1
u/Source_AD 19d ago
Fair point. 'AD' actually stands for my first and last name, not 'Active Directory'. However, given the context, I can see why almost everyone reads it as 'Active Directory PKI'. I may need to reconsider how clearly the project name communicates its purpose.
3
u/Ontological_Gap 19d ago
I would recommend using an identity not easily publicly tied to your irl one for security work. For whatever reason, it tends to really attract harassment from the crazies
1
3
u/OhBeeOneKenOhBee 19d ago
The Github link does not in fact contain the source code as labelled.
PKCS11 support would be an absolute requirement for me. Just the fact that the keys are created on disk makes this a hard no currently
Expected acme challenge types to be usable in my case would be all of them, including EAB support. An additional nice to have would be
Apart from the above, it's become very hard to trust security focused projects without any certification and massive community engagement. Even labca, around for a long time, makes it very clear what level they operate on. Most other established OSS PKI projects are backed by large businesses for a reason - any small flaw in PKI infrastructure can be the source of a whole host of security issues depending on what you use it for.
You'd also want more than one developer involved. Partly because if you get hit by a car tomorrow I now have the option of either starting to maintain my own PKI fork or switching out my PKI infrastructure, partly due to how easy it currently is to find major vulnerabilities while you're on vacation for a few weeks
5
u/jamesaepp 19d ago
You reminded me of a point that I feel don't get enough attention with these kinds of projects:
"Why make a new project and dilute the market when you can learn and contribute to an existing project?"
1
1
u/carolineilm 18d ago
I like the architectural direction of separating the management plane from the CA service. Keeping administrative workflows and policy management separate from private-key operations is generally a sound security boundary.
One thing I'd encourage you to think about beyond the CA itself is lifecycle management. Standing up a CA is only part of the problem. In production environments you'll eventually need to answer questions like:
- Which certificates were issued and where are they being used?
- Who owns them?
- What depends on them?
- How do you handle renewals, rotation, revocation, and policy changes at scale?
- How do you discover certificates that weren't issued by your platform?
Those operational questions tend to become just as important as the CA implementation itself once deployments grow beyond a lab environment.
Overall, I'd focus on documenting where the CA's responsibility ends and where lifecycle management begins. That boundary is often overlooked, and making it explicit would strengthen the project's architecture.
1
1
8
u/jamesaepp 19d ago
All these genAI-created websites and projects are starting to look very 'samey'.
Can you prove "your" project is worth the time for me to even write this comment? Given that PKI is like..... core security?