MyOwnPKI documentation Source on GitHub

Glossary

Every term is defined as this product uses it. Where a term comes from a standard, the definition follows it: X.509 certificates and CRLs are RFC 5280, ACME is RFC 8555, ACME renewal information is RFC 9773. The links lead to the page that shows the term in use.

A · B · C · D · E · F · G · H · I · J · K · L · N · O · P · R · S · T · V · W

A

Account

An ACME client’s identity at the server: a key pair that the client creates (RFC 8555), under which it places orders. On this server a new account waits for an admin’s approval under the default approval level, or comes with an EAB key. Use one account per host. See operations guide §10.5.

Background: ACME explained.

ACME

Automatic Certificate Management Environment, RFC 8555: the protocol with which a client asks a CA for certificates and proves that it controls the names. MyOwnPKI is an ACME server for your own CAs and supports the http-01 and dns-01 challenges. It is not an ACME client for public CAs. See operations guide chapter 10.

Background: ACME explained.

Agent

myownpki-agent, an optional program for a Linux host. It enrolls, gets certificates over ACME, writes the files, runs the hooks you configured, reloads the service, rolls back on failure and reports to the server. It takes no commands from the server. See Adding hosts.

AIA (authority information access)

A certificate extension that says where to fetch the issuer’s certificate (RFC 5280 §4.2.2.1). MyOwnPKI writes an address on the public listener into it, built from the base URL, the CA’s name and its generation. See What runs where.

Alert

One condition that the server watches, such as an expiring certificate, a CRL that is not renewed, a server that stays sealed or a silent agent. An alert is warning or critical, shows on the Alerts page, and closes by itself when the cause is gone; e-mail and webhook messages are optional. See Monitoring.

Analysis

The page that applies ten fixed rules to what the server knows and lists findings: what was seen, why it matters and what to do. A rule is ok, has findings or is unknown when it lacks the data to judge, which is not a problem. It is advice only: it raises no alert and nothing is stored. See Reports and analysis.

API token

A secret starting with mop_ that a script uses instead of a sign-in. It carries a role its owner has, never more, ends within one year, and can never satisfy a step-up. See REST API.

ARI (ACME renewal information)

RFC 9773: the server tells the client when to renew. Here the window opens at about two thirds of the lifetime and lasts nine days; a revoked certificate gets a window in the past, so its client renews at once. Clients without ARI use their own rule. See operations guide §10.6.

Background: Lifetimes and renewal.

Audit log

The record of every action and every refusal, kept as a hash chain with signed checkpoints. There is an instance log (sign-ins, users, unseal) and a tenant log. myownpki audit verify checks it. See Verify the audit log.

Authorization

In ACME (RFC 8555), the server’s record that an account may get certificates for one name, proven by completing one challenge. An order lists one authorization per name.

Background: ACME explained.

B

Backup

A consistent copy of every database that myownpki backup writes while the server runs, with a manifest of hashes. It contains the CA keys, encrypted: a backup alone cannot sign, but a backup together with the passphrase or the recovery key can. See operations guide §6.

Base URL

The public address of the server, for example http://pki.homelab.lan, that is written into every certificate a CA issues (the CRL and AIA addresses). It cannot be changed for a CA afterwards, so choose a stable DNS name. See What runs where.

Basic constraints

A certificate extension (RFC 5280 §4.2.1.9) that says whether the certificate belongs to a CA (CA:TRUE) and, for a CA, its path length. CA certificates here carry it as critical; certificates for servers and users say CA:FALSE.

Background: Reading a certificate.

Bootstrap certificate

The self-signed certificate that the admin listener serves until it can get one from your CA (admin.tls_issuer). You compare its fingerprint with the one in the log once. The ACME listener serves a bootstrap certificate too when its own TLS has no issued certificate yet. See operations guide §2.4.

C

CA (certificate authority)

An entity that signs certificates. In MyOwnPKI a CA is a root or an intermediate with a name that never changes, a key (online and encrypted, or offline), a maximum validity and one or more generations. See First CA and first certificate.

Background: What is a certificate authority?.

Chain

The path from a certificate through its intermediates to a root. A server should send its own certificate and the intermediates (the fullchain download); the client already holds the root. The TLS scan reports a chain as trusted, incomplete (intermediates missing) or untrusted. See What the states mean.

Background: How trust works.

Challenge

A test that the ACME server gives to prove control of a name. This server knows http-01 and dns-01. The validator runs it.

Background: ACME explained.

Checkpoint

A signed entry in the audit log: Ed25519, made at unseal, before seal, daily and every 1000 entries, with a key derived from the root key. Pinning its fingerprint with audit verify --checkpoint-key shows that the log is the one you had. Write the fingerprint down at init.

CN (common name)

An attribute of a certificate’s subject name. Modern clients match a host name against the SAN, not the CN, so the SAN must hold every name. Some presets derive the CN from the first SAN.

Background: Reading a certificate.

CRL

Certificate revocation list (RFC 5280 §5): a list, signed by a CA, of the serial numbers it has revoked, with a number and a next-update time after which it must not be relied on. MyOwnPKI publishes one CRL per CA generation over plain HTTP on the public listener, renews it after a third of its life, and writes its address into every certificate. The CRL of an offline root is signed offline and uploaded. See Monitoring.

Background: Revocation.

CSR

Certificate signing request (PKCS #10): a public key and a wish list of names, signed with the private key, so the key itself never leaves the host. The server takes only the names from a CSR; extensions are never copied from it, they come from the preset. See the first certificate.

Background: Reading a certificate.

D

Deployment

In the agent, one certificate setup on a host: the names, the challenge mode, where the files go (profile nginx or file), the test and reload hooks and an optional local TLS check. myownpki-agent deployment add writes it. See Adding a deployment.

dns-01

The ACME challenge in which the client puts a TXT record at _acme-challenge.<name> (RFC 8555 §8.4). The server only reads it, through acme.resolver. It is the only challenge that proves a wildcard. The agent can do it since v0.3.7, through RFC 2136 or Cloudflare; see dns-01 and wildcard certificates. For split DNS see operations guide §10.7.

Background: ACME explained.

Domain

An ACME domain is a rule under ACME → Domains: which names below it may be ordered, which CA signs, which challenges and wildcards are allowed, the approval level, the preset and validity, and which addresses the server may connect to. Without a domain that covers a name, ACME, agent enrollment and the TLS scan refuse it. See operations guide §10.5.

E

EAB (external account binding)

RFC 8555 §7.3.4: a key ID and a MAC key that the CA gives out of band, so that a new account is bound to something the CA already knows. Here an admin creates the key under ACME → EAB keys; it shows once, binds one account, expires (7 days by default) and lets the client skip the approval queue.

Background: ACME explained.

EKU (extended key usage)

A certificate extension (RFC 5280 §4.2.1.12) that lists what the certificate may be used for, such as serverAuth, clientAuth, codeSigning, emailProtection, timeStamping or OCSPSigning. A CA can carry an EKU limit that narrows what everything below it may do; the agent CA must be limited to clientAuth.

Background: Reading a certificate.

Enrollment

How a host becomes an agent: it makes a key and a CSR, proves control of its name (the server fetches a check file by http-01), and is admitted according to the tenant’s enrollment mode: verified (the default), auto or manual. See Admission.

Enrollment pass

A join token for a bounded number of hosts (2 to 25), for names that match a pattern, valid up to 7 days, so that automation can enroll hosts without a person opening the UI for each. An admin creates it with a fresh second factor; an API token never can. See the enrollment pass.

Expiry wave

Many certificates that end in the same week. If their renewals fail together, they become one large incident. The Expiry chart of the Reports page shows a wave as a tall column, and the expiry_wave rule of the Analysis page names a week in which at least 10 valid certificates and at least 30 percent of all of them end. Clients that renew at two thirds of the lifetime, each on its own schedule, spread the ends out. See Reports and analysis.

F

Fingerprint

A hash, usually SHA-256, of a certificate’s DER encoding, written as hex. You compare a fingerprint of a root you got over an untrusted path with one from a trusted source. The trust page also shows a SHA-1 value, only for the Windows certificate dialog.

Background: How trust works.

G

Generation

Each key of a CA with its certificate is one generation. Renewing a CA with a new key starts the next one, and the old generation keeps its URL and its CRL, so older certificates still validate.

H

Hash chain

A log in which every entry’s hash includes the hash of the entry before it, so changing or removing an entry breaks every later link. The audit log is one.

Hook

A command named under hooks: in the agent’s local agent.yaml, such as nginx -t or a service reload, that a deployment runs. Only hooks from that root-owned file ever run; the server cannot add one. See agent.yaml.

http-01

The ACME challenge in which the server fetches a token over HTTP from port 80 of the name, at /.well-known/acme-challenge/ (RFC 8555 §8.3). The server must be able to reach that port. See Troubleshooting.

Background: ACME explained.

I

Instance admin

A user who may unseal and seal the server and manage users. That role alone gives no rights in the PKI of a tenant. See Role.

Intermediate CA

A CA that a root (or another intermediate) has signed and that issues the certificates you use. Keeping the daily signing here and the root offline means a leaked intermediate is replaced, not every client. Narrow it with name constraints, an EKU limit and a path length. See Best practices.

Background: Root and intermediate CAs.

J

Join token

A single-use secret, starting with mjt_, that lets one host enroll. It is tied to a host name or a pattern. The guided one expires after 15 minutes. See Admission.

K

Key usage

A certificate extension (RFC 5280 §4.2.1.3) with the basic operations the key may do, such as digitalSignature, keyEncipherment, keyCertSign and cRLSign. It is always critical here. The preset sets it for end-entity certificates; CA certificates also get keyCertSign and cRLSign.

Background: Reading a certificate.

L

Leaf certificate

A certificate that is not a CA: the one for a server, a user or a device (an end-entity certificate, CA:FALSE). The engine refuses to issue one from a root. See Which certificates can I issue.

Background: Reading a certificate.

N

Name constraints

A CA certificate extension (RFC 5280 §4.2.1.10) that limits the names of every certificate below it to permitted subtrees, such as a DNS suffix or an address range. Clients enforce it, and MyOwnPKI checks it before it signs. It makes a stolen intermediate key much less useful. See Best practices.

Background: Name constraints.

O

OCSP

Online Certificate Status Protocol (RFC 6960): a client asks a responder about one certificate. MyOwnPKI has no OCSP responder; it publishes CRLs. An OCSP responder is planned after version 1.0, and the ocsp preset only issues a certificate for one.

Background: Revocation.

Offline root

A root whose private key is not on the server; the server holds only its certificate. An intermediate below it is made by taking a CSR and an extension file to the machine that has the key, signing exactly that file, and uploading the result. The root’s CRL is signed there too and uploaded. See Keep the root offline.

Background: Root and intermediate CAs.

Order

In ACME (RFC 8555), a client’s request for a certificate for a set of names. It has one authorization per name, ends with the client’s CSR (finalize), and is pending, ready, processing, valid or invalid. While the server is sealed, a finalized order stays processing. The UI lists them under ACME → Orders.

Background: ACME explained.

Orphaned certificate

In the Analysis page, a current certificate that no agent reports as deployed and that no scanned endpoint serves, although scanned endpoints that cover its names serve something else. The finding says “not seen”, not “unused”: the scan reaches only the endpoints you entered. Without a scan that can judge a certificate, the rule says unknown. See Reports and analysis and TLS scan.

P

Passphrase

The unseal passphrase, at least 16 characters, that you set at init. A key derived from it with Argon2id decrypts the root key that protects every CA key. It is not your sign-in password, and it is not stored on the server. See Installation.

Background: Keys and unsealing.

Path length

The pathlen value in basic constraints (RFC 5280 §4.2.1.9): how many intermediate CAs may follow below this CA. pathlen:0 means it can issue only end-entity certificates. The agent CA must sit directly below the root, not below a CA with pathlen:0.

Background: Root and intermediate CAs.

PKI

Public key infrastructure: the CAs, the rules, the software and the procedures that issue, distribute, check and revoke certificates. MyOwnPKI runs one for your own network.

Policy

What the server checks before every signature, whatever the client claims: the key, the names, the preset’s rules, the name constraints and EKU limits of every CA up to the root, and the validity. For ACME, the domain adds its own rules. A refusal is written to the audit log.

Predecessor

The earlier certificate that a renewal replaces. The tenant settings decide whether it is revoked, with the reason superseded: for agent deployments by default right after the new certificate is confirmed as deployed, for other certificates by default after seven days. See Renewal and what the agent reports.

Preset

A built-in profile for a kind of certificate: key usage, extended key usage, required names, default validity. There are twelve, for example server, client, smime and wildcard. The extensions of a certificate always come from the preset, never from the CSR.

Public listener

The plain-HTTP listener without a login that serves the CRLs, the CA certificates and the trust page. It speaks HTTP on purpose, because clients fetch from it before they trust anything. See What runs where.

R

Recovery key

A second secret that can open the CA keys, created once at init and shown once (nine groups of six characters). It protects the same root key as the passphrase, and myownpki passphrase reset uses it to set a new passphrase when the old one is lost. In this release the UI and serve --unseal accept only the passphrase, so you unseal with the new one afterwards. Keep it on paper, apart from the passphrase and the backups. See operations guide §7.

Background: Keys and unsealing.

Renewal loop

A client that keeps getting new certificates for the same names, often because a deploy hook fails and the job starts again. The renewal_loop rule of the Analysis page fires at 3 certificates for the same names within 24 hours (critical at 6), or 8 within 7 days. ACME servers rate-limit this. See Reports and analysis.

Revocation

Declaring a certificate invalid before its end date, with an RFC 5280 reason such as keyCompromise or superseded. It is final (there is no hold) and shows in the next CRL. keyCompromise also blocks that key for every later request. See operations guide §8.

Background: Revocation.

RFC 2136

The standard for dynamic DNS updates: a client sends a signed message that adds or removes records in a zone. The agent uses it for dns-01, signed with a TSIG key, against BIND, Knot or PowerDNS. See dns-01 and wildcard certificates.

Role

What a user may do in a tenant, optionally limited to one CA. Viewer reads; operator also issues, renews, revokes, downloads server-made keys, scans endpoints and renews agent deployments; admin also manages CAs, ACME approvals, domains, agents, settings and reads the audit log. Revoking, key export and the admin actions need a fresh step-up.

Root CA

A self-signed CA certificate that clients trust directly, so it is the starting point of every chain. Here a root signs only other CAs and CRLs. Nobody above it can revoke it: clients stop trusting it only when you remove it from their trust stores. See Keep the root offline.

Background: Root and intermediate CAs.

S

SAN (subject alternative name)

A certificate extension (RFC 5280 §4.2.1.6) with the names the certificate is valid for: DNS names, IP addresses, e-mail addresses and URIs. TLS clients match the host name against the SAN. The server preset requires at least one DNS or IP name.

Background: Reading a certificate.

Sandbox

The systemd restrictions under which the server and the agent run. The agent’s writable paths are listed in the drop-in 10-paths.conf, which setup, deployment add and sandbox sync keep in step with agent.yaml. See The systemd sandbox and paths.

Seal and unseal

The server starts sealed: the CA keys are encrypted and cannot be used. An instance admin unseals it with the passphrase (a lost one is replaced with the recovery key), which decrypts the root key into memory. Seal removes it again. While sealed the server serves CRLs and CA certificates but signs nothing, so a long seal lets the CRLs run out. See Know what a sealed server means.

Background: Keys and unsealing.

Serial number

A number that identifies a certificate among those of one issuer. MyOwnPKI uses a random 159-bit serial, unique per CA, and a CRL lists revoked certificates by serial number.

Background: Reading a certificate.

Signature algorithm

The hash and key type with which a CA signs a certificate, for example ECDSA with SHA-256 or RSA with SHA-256. A certificate signed with SHA-1, MD5 or MD2 is flagged by the weak_signature rule of the Analysis page, because SHA-1 collisions are practical. The signature of a root certificate is its own and is not judged. See Reports and analysis.

Split DNS

Names that resolve one way inside your network and another way, or not at all, outside. The ACME server’s validator uses acme.resolver to ask the DNS server that knows your internal names. See operations guide §10.7.

Standalone and webroot

The two ways the agent answers http-01. Standalone: the agent listens on port 80 for the moment of the check, which needs the low-ports drop-in. Webroot: it writes the token into a directory that your web server already serves. Webroot is recommended when a web server runs. See Best practices.

Step-up

A fresh second-factor check that sensitive actions ask for even in a signed-in session: revoking, downloading keys, CA operations, user and agent management, changing the agent enrollment mode. A confirmation stays valid for 5 minutes by default (a tenant admin can choose 5, 10, 15, 30 or 60). An API token can never do it. See operations guide §4.

T

Tenant

The unit that holds its own CAs, certificates, domains, settings and audit log. The server has one tenant, default; a tenant UI comes later.

TLS scan

The server connects to endpoints an admin entered, does one TLS handshake, and compares the certificate that is served with the ones this PKI issued. It raises alerts for a wrong, expiring or incomplete certificate and for an endpoint that is down. It sends no request and runs while sealed. See TLS scan.

TOTP

Time-based one-time password (RFC 6238): the six-digit code from an authenticator app. It is the second factor of every user here, set up at init or confirmed at a new user’s first sign-in, with recovery codes as a spare. See Troubleshooting.

Trust page

The page at / of the public listener where every root can be downloaded (DER and PEM), with its SHA-256 fingerprint, two Windows helper scripts and guides for Windows, macOS, iOS, Android, Linux and Firefox. It can be switched off in the tenant settings. See operations guide chapter 11.

Trust store

The set of root certificates that a system or an application trusts: the operating system’s store, or the one of Firefox and Java. A certificate is accepted only if its chain ends at a root in the store, which is why your own root must be added to every client. See Trusting your root on the clients.

Background: How trust works.

TSIG

A shared secret that signs DNS messages (RFC 8945), so a DNS server knows who sends an update and the sender knows the answer is genuine. The agent’s RFC 2136 provider needs a key name and a base64 secret in its root-only credentials file, and accepts hmac-sha256, hmac-sha384 and hmac-sha512. See dns-01 and wildcard certificates.

V

Validator

The part of the ACME server that checks a challenge. It resolves the name once and connects to exactly the address it checked, never to loopback, link-local and other ranges that are refused, and tells the client only the kind of failure. See operations guide §14.8.

Validity period

The time between notBefore and notAfter in which a certificate is valid. ACME certificates default to 90 days, the presets have their own defaults, and each CA has a maximum validity that caps both. Short lifetimes are practical when renewal is automatic.

Background: Lifetimes and renewal.

W

Wildcard certificate

A certificate for *.homelab.lan: it covers exactly one label below the name (nas.homelab.lan, not a.b.homelab.lan and not homelab.lan itself). Here it comes from the wildcard preset, or over ACME from a domain that allows wildcards (off by default), proven by dns-01.

Background: Reading a certificate.