Overview
The X.509 Certificate Service issues X.509 certificates for PKI deployments, including ISO/IEC 18013-5 compliant certificates for mobile driving licence (mDL) ecosystems and ETSI-compliant certificates for EUDI Wallet ecosystems. One pair of endpoints issues every certificate type — self-signed roots, CA-signed intermediates and leaves, ISO IACA roots, ISO Document Signer certificates, and ETSI Provider / Wallet Relying Party certificates — selected through request fields and an optional certificate profile. The service also creates PKCS#10 Certificate Signing Requests (CSRs) and issues certificates from them.
By default, the service is stateless: it returns the generated certificate PEM without storing it. If one or more X.509 Store services are attached as dependencies, issued certificates are persisted automatically according to a configurable persistence strategy.
The X.509 Certificate Service is controlled by the x509 feature flag, which also controls the X.509 Store Service. The flag is enabled by default via the _features.conf, so the service is available unless you explicitly add x509 to disabledFeatures.
Service Dependencies
The X.509 Certificate Service supports two dependency types:
- Key Management Service — resolves signing and subject keys referenced by
issuerKeyRef/subjectKeyRef. - X.509 Store Service — persists issued certificates. Attach more than one to write the same certificate into several stores.
Keys supplied inline as JWKs (issuerKeyJwk / subjectKeyJwk) do not require a KMS dependency.
Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /v1/{target}/x509-service-api/csrs | Create a PKCS#10 CSR (stateless). |
POST | /v1/{target}/x509-service-api/certificates | Issue a certificate. |
PUT | /v1/{target}/x509-service-api/certificates | Issue or replace a certificate at a known ID. |
The earlier endpoints POST /certificate, POST /iso/iacas, and POST /iso/document-signers, and the type-discriminated CSR body, are deprecated. They still work but are superseded by POST / PUT /certificates. See Deprecated endpoints.
Core Features
- One issuance model — self-signed and CA-signed certificates from the same request shape; issuer identity comes from a stored certificate, an inline PEM, or an issuer key.
- Certificate profiles — apply a predefined profile to get the required extensions plus post-issuance profile validation:
iso-iaca-root/iso-document-signer(ISO/IEC 18013-5, mDL) andetsi-pid-provider/etsi-wallet-provider/etsi-wrpac/etsi-wrprc(ETSI TS 119 412-6, 119 411-8, 119 475, EUDI Wallet). See Certificate profiles. - CSR-based issuance — supply a CSR PEM as the subject public key source; its signature is verified for proof-of-possession before issuance.
- Flexible key sources — signing and subject keys from a linked KMS (
…KeyRef) or inline as JWKs (…KeyJwk). - Extended certificate extensions — Authority Information Access, Certificate Policies, and Qualified Certificate (QC) Statements, in addition to key usage, SAN/IAN, basic constraints, and CRL distribution points.
- Configurable persistence — write issued certificates to one or all attached stores, with a service-level default that each request can override.
- CSR creation — generate PKCS#10 CSRs for external CA workflows.
Get Started
- Setup — Create the service, set a persistence strategy, attach dependency services.
- Issue Certificates — Create root, intermediate, leaf, IACA, and Document Signer certificates.
- CSR Workflows — Create CSRs and issue certificates from them.
