REST API
Create a scoped bearer token in API & automation. All endpoints require HTTPS. Responses use JSON; certificate and key exports download their selected format. Signing responses contain base64 artifacts. Published-key lookup is available without authentication.
curl https://ca.xxc.dk/api/v1/certificates \
-H "Authorization: Bearer $CA_TOKEN"Issue a certificate
POST /api/v1/certificates
{
"name": "service.example.com",
"sans": ["service.example.com"],
"authority_id": "YOUR_AUTHORITY_ID",
"template_id": "YOUR_TEMPLATE_ID",
"days": 30
}Provide a PEM-encoded csr to sign your own key instead. Template policy limits validity, key generation, usage, and allowed domains.
OpenPGP, email & Debian signing
Manage keys in OpenPGP keys, prepare messages and packages in Signing tools, and discover published identities through the public key exchange.
| POST /openpgp/keys · /openpgp/import | Generate keys or import one public key |
| POST /openpgp/keys/{id}/sign · /verify | Detached or clear OpenPGP signatures |
| POST /openpgp/keys/{id}/encrypt · /decrypt | OpenPGP encryption and decryption |
| POST /email/sign | Signed S/MIME or PGP/MIME .eml |
| POST /certificates/{id}/sign · /verify | S/MIME multipart or detached CMS |
| POST /debian/sign | InRelease, Release.gpg, metadata or detached package signatures |
| GET /exchange/keys | Anonymous published-key search |
Use an emailProtection template and email SANs for S/MIME issuance. Signing accepts up to 8 MiB of plaintext; verification and decryption accept envelopes up to 20 MiB. JSON requests to these endpoints are limited to 28 MiB. Responses contain base64 artifacts. Email signing validates the sender identity and returns a download; it does not send mail. Public imports require authentication, and publication requires openpgp.publish.
gpg --keyserver hkps://ca.xxc.dk --recv-keys FULL_FINGERPRINTDebian release signing produces both InRelease and Release.gpg. Binary .deb signatures are detached; repository checksums must be prepared by your packaging tools. Check the OpenAPI schemas for permissions, limits and request formats.
Core endpoints
| GET /certificates | Search, status, authority, page |
| POST /certificates | Issue or sign a CSR |
| GET /certificates/{id}/download | PEM, DER, or chain |
| POST /certificates/{id}/download | Private key or protected PKCS#12 |
| POST /certificates/{id}/revoke | Revoke with a reason |
| GET /authorities · /templates | Discover issuance policies |
| GET /activity | Audit, access, operator, download logs |
Paths above are relative to /api/v1. See the OpenAPI specification for request schemas and administration endpoints.