The open edition of OwnCA is a single-user CA: issue and revoke certificates, CRLs, extension profiles, PFX export. The extended edition turns it into the foundation for company-wide PKI: role-based access, a request queue with operator approval, API token access, second-factor issuance (TOTP), dedicated Custom OID and Certificate Policy registries, plus qualified GOST profiles (Russian QES). Below is only what the open edition does not have.
Every account gets a role. A user only submits requests, an operator issues and revokes, an admin manages CAs, profiles, registries and users. The role applies in the API too.
Manage accounts and roles (users / operators / admins).
An operator has access only to the CA profiles explicitly assigned to them. An attempt to issue through an unassigned CA is refused.
A dedicated page in the System section with password-complexity rules for accounts — absent in the open edition, where System is limited to Configuration and Maintenance.
Each CA gets its own list of allowed profiles: in the issue form the operator sees only those, and issuance with an unbound profile is rejected.
The log records account actions — sign-in, certificate issuance and revocation, CRL regeneration, changes to profiles, registries and CA settings — tied to the user, time and IP. Available to admins for incident review and oversight.
The user submits a request: CN, algorithm, SAN, an optional CSR and a comment. CA and profile selection are hidden — the operator assigns them at approval.
Operators and admins see the request queue filtered by status (pending / approved / rejected). A pending request opens as the full issue form, prefilled with the request data.
CSR import with field auto-fill and a loading banner works in the user request too — identical to the operator page.
API access is off by default and is enabled by an admin for a
specific user. The user issues their own token in their profile
(one per account, stored as a hash, plaintext shown exactly
once). Requests carry an
Authorization: Bearer ownca_pat_… header; the token
inherits its owner's role and keeps their IP restrictions.
An admin enables API for a user with a single toggle. Disabling it automatically revokes the user's issued token.
The user manages their own token from their profile. A short prefix stays visible in the UI for identification, and the last-used time updates on every call.
In the settings, an admin can turn on mandatory OTP. When set, selecting that CA in the issue and approval forms reveals an OTP code field, and issuance without a valid code is refused. The user sets up and confirms TOTP (for example, with an authenticator app) in their profile.
An allowed-subnet list is set per user and applies to both browser sessions and API calls — requests outside the allowed subnets are rejected regardless of token validity.
Extensions from an imported CSR (basicConstraints, KU, EKU, SAN) are dropped by force. Only the Subject from the CSR, SAN from the form and the selected profile's extensions land — a "hostile" CSR with CA:TRUE does not leak through.
A dedicated page (admin) manages OID/SAN field definitions: OID, display name, ASN.1 type and where the value is placed. Built-in set: DNS, IP, Email, URI, UPN, SNILS, INN, OGRN, OGRNIP.
A dedicated page (admin) manages policies for the certificatePolicies extension: OID, a link to the CPS document and notice text. Built-in policies: QES individual / org / sole proprietor.
In the user profile — a choice of three theme families (Default / Dark / Warm) with a hue slider; the setting is kept per user.
The extended edition adds management of users, the issuance process and automation, roles, requests, API tokens, OTP and audit.
The extended edition is available on request. To get it, email cats.who.play@gmail.com