pki is a free, open source data security & privacy project written in Java and released under GPL-2.0. It has 509 GitHub stars, 162 forks and 46 open issues, and was last pushed 12 hours ago. On this registry it ranks #23 of 24 tracked projects in Data Security & Privacy, with 5 head-to-head comparisons available.

What is pki?

Dogtag PKI is an enterprise-class open source Certificate Authority suite, written in Java and licensed under GPL-2.0, for administrators who need to run their own certificate lifecycle infrastructure rather than buy it as a hosted service.

What it is

Dogtag PKI is a full-featured Public Key Infrastructure suite that has been hardened by real-world deployments. It ships as a set of cooperating subsystems rather than a single daemon: a Certificate Authority (CA), a Key Recovery Authority (KRA), an Online Certificate Status Protocol (OCSP) Responder, a Token Key Service (TKS), a Token Processing System (TPS), and an Automatic Certificate Management Environment (ACME) Responder. The project lives in the Java ecosystem on Fedora, CentOS and RHEL, and it replaces a hand-rolled OpenSSL signing setup or a closed commercial CA product with a managed, policy-driven service.

The concrete problem it solves is the operational side of running a CA. Issuing a certificate is easy; tracking which certificates exist, revoking them, publishing their revocation status, archiving keys so they can be recovered, and answering relying parties that ask whether a certificate is still valid are not. Dogtag supports all aspects of certificate lifecycle management, including key archival, OCSP and smartcard management, and it exposes standards-based interfaces so that clients and enrolled devices can talk to it without custom integration.

Key capabilities

  • Six subsystems in one suite: Certificate Authority (CA), Key Recovery Authority (KRA), OCSP Responder, Token Key Service (TKS), Token Processing System (TPS), and ACME Responder.
  • An ACME Responder for automated issuance to modern clients, with EST deployment documented alongside it.
  • Key archival and recovery through the Key Recovery Authority.
  • OCSP revocation checking served by a dedicated OCSP Responder.
  • Smartcard and token management through TKS and TPS.
  • Hardware Security Module support, covered in the Installation Guide together with sub-CA and clone deployments.
  • Separate installable packages, so a site can run only the subsystems it needs: dogtag-pki-ca, dogtag-pki-kra, and the dogtag-pki-theme theme package.

Who uses it and how

  • Administrators who must retain control of issuing keys and signing policy instead of delegating them to an external authority.
  • Smartcard and token programmes, where the Token Processing System issues and manages certificates on tokens and the Token Key Service supplies the shared secrets behind them.
  • Sites that need availability beyond a single instance, using CA clone deployments exercised by the dedicated CA Clone Tests workflow.
  • Teams running certificate services in containers, covered by the CA Container Tests workflow.
  • Clients that speak ACME or EST, which are served directly by their own responders rather than through custom integration.

Getting started

On Fedora, the full suite installs with sudo dnf install dogtag-pki, individual subsystems with sudo dnf install dogtag-pki-ca dogtag-pki-kra, and the theme package with sudo dnf install dogtag-pki-theme. After installation, each subsystem is deployed by following its own guide under docs/installation/, covering CA, KRA, OCSP, TKS, TPS, ACME and EST.

How it compares

The facts provided here name no comparable certificate authority products and no paid products that Dogtag PKI replaces, so it stands alone in this registry. Evaluation therefore has to rest on the wiki and the installation guides rather than on a feature comparison against named alternatives.

When to use it — and when not to

A self-hoster operates the chosen subsystems and their supporting infrastructure, and the README documents installation on Fedora only, so other platforms require a source build against Fedora, CentOS or RHEL dependencies using ./build.sh rpm. Anyone who wants a managed CA with no servers to run should not pick it. Documentation lives mainly on the wiki rather than in the repository, so a prospective adopter should read the wiki before committing.

project readme (upstream, from github) — read inline

Dogtag PKI

The Dogtag Certificate System is an enterprise-class open source Certificate Authority (CA). It is a full-featured system, and has been hardened by real-world deployments. It supports all aspects of certificate lifecycle management, including key archival, OCSP and smartcard management, and much more.

The Dogtag PKI suite provides the following subsystems:

Documentation

The best place to start learning about the product is the Dogtag PKI Wiki.

Installing

Fedora

To install the whole Dogtag PKI suite:

$ sudo dnf install dogtag-pki

To install specific subsystems only:

$ sudo dnf install dogtag-pki-ca dogtag-pki-kra

To install the theme package:

$ sudo dnf install dogtag-pki-theme

Deploying

After successful installation of the packages, follow the below steps to deploy intended subsystems:

For other types of deployments (Sub-CA, Clones, HSMs, etc) please see the Installation Guide.

Building

Fedora/CentOS/RHEL

Prerequisites
$ sudo dnf install dnf-plugins-core rpm-build git

## NOTE: Use the intendended branch name instead of "master" to pull right dependency version
$ sudo dnf copr -y enable @pki/master

$ sudo dnf builddep -y --spec pki.spec
Build Procedure

After successfully installing the prerequisites, the project can be built with a one-line command:

$ ./build.sh rpm

The built RPMS will be placed in ~/build/pki/ directory.

See also Building PKI.

Testing

Test Status
SonarCloud Quality Gate Status
CA Tests CA Tests
CA Clone Tests CA Clone Tests
CA Container Tests CA Container Tests
CA Profile Tests CA Profile Tests
CA Extra Tests CA Extra Tests
SubCA Tests SubCA Tests
KRA Tests KRA Tests
KRA Clone Tests KRA Clone Tests
OCSP Tests OCSP Tests
TKS Tests TKS Tests
TPS Tests TPS Tests
ACME Tests ACME Tests
EST Tests EST Tests
Server Tests Server Tests
Java Tests Java Tests
Python Tests Python Tests
Tools Tests Tools Tests
IPA Tests IPA Tests

Contributing

There are multiple ways for you to be part of this project. Please see CONTRIBUTING to learn more.

Contact Us

See Contact Us.

License

GPL-2.0 License

Frequently asked questions

Is pki free to use?

pki is open source under the GPL-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pki do?

The Dogtag Certificate System is an enterprise-class Certificate Authority (CA) which supports all aspects of certificate lifecycle management, including key ar

What is pki written in?

pki is primarily written in Java. Its source is publicly available at https://github.com/dogtagpki/pki, and it has 509 GitHub stars.