Certificate Management¶
PKI Operations — Request, Revoke, Import, Export, and CRL Management
Document Version: 1.0.0
Last Updated: 2026-02-10
1. Certificate Lifecycle¶
graph LR
A["📝 Request<br/>(CSR)"] --> B["⏳ Approval"]
B --> C["✅ Issuance"]
C --> D["🔒 Active"]
D --> E["🔄 Renewal"]
E --> C
D --> F["❌ Revocation"]
F --> G["📜 CRL Update"]
D --> H["⏰ Expiration"]
classDef request fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
classDef active fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
classDef warning fill:#FFF8E1,stroke:#FF9800,stroke-width:2px,color:#E65100
classDef danger fill:#FFEBEE,stroke:#F44336,stroke-width:2px,color:#C62828
class A,B request
class C,D active
class E,H warning
class F,G danger
2. Requesting a Certificate¶
Via Web Interface¶
- Navigate to Certificates → Request Certificate
- Choose a Certificate Template or configure manually:
| Template | Key Usage | Extended Key Usage | Typical Validity |
|---|---|---|---|
| Web Server | Digital Signature, Key Encipherment | Server Authentication | 1 year |
| Client Auth | Digital Signature | Client Authentication | 1 year |
| Code Signing | Digital Signature | Code Signing | 2 years |
| Email (S/MIME) | Digital Signature, Key Encipherment | Email Protection | 1 year |
- Fill in the subject information:
- Common Name (CN): Primary domain or identifier
- Subject Alternative Names: Additional domains and IPs
- Organization, Country, etc.: As required by your policy
- Select the Issuing CA
- Click Submit Request
Via API¶
curl -X POST https://vault.example.com/api/v1/certificates/csr \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"common_name": "api.example.com",
"san_dns": ["api.example.com", "api-internal.example.com"],
"key_type": "RSA",
"key_size": 2048,
"ca_id": "ca_root001",
"project_id": "proj_abc123",
"template": "web_server"
}'
3. Certificate Approval¶
Depending on your organization's policy:
| Policy | Behavior |
|---|---|
| Auto-approve | Certificate issued immediately after request |
| Admin approval | Certificate enters pending_approval state; an administrator must approve |
| Manager approval | Project manager can approve certificates for their project |
Approving a Request¶
- Navigate to Certificates → Pending Requests
- Review the certificate details
- Click Approve or Reject
4. Revoking a Certificate¶
When to Revoke¶
- Private key has been compromised
- Certificate holder's affiliation has changed
- Certificate has been superseded by a new one
- Service using the certificate has been decommissioned
Revocation Procedure¶
- Navigate to Certificates → Active and find the certificate
- Click Revoke
- Select a Revocation Reason (RFC 5280):
keyCompromise— Private key is compromisedaffiliationChanged— Subject's affiliation changedsuperseded— Replaced by a new certificatecessationOfOperation— Service decommissionedcertificateHold— Temporary hold (can be unreleased)- Add an optional comment
- Click Confirm Revocation
The CRL is automatically regenerated after revocation.
Unrevoking a Certificate¶
Certificates revoked with reason certificateHold can be unreleased:
- Navigate to Certificates → Revoked and find the certificate
- Click Unrevoke
- Confirm the action
5. Importing Certificates¶
Single Certificate Import¶
- Navigate to Certificates → Import
- Upload or paste:
- Certificate (PEM format, required)
- Private Key (PEM format, optional)
- CA Chain (PEM format, optional)
- Select the target project
- Click Import
Bulk Import (PEM Bundle)¶
- Navigate to Certificates → Import → Bulk Import
- Upload a PEM bundle containing multiple certificates
- Select the target project
- Click Import
The system parses the bundle, identifies individual certificates, and imports them with automatic chain detection.
6. Exporting Certificates¶
Export Formats¶
| Format | Extension | Includes Key | Use Case |
|---|---|---|---|
| PEM | .pem, .crt |
Optional | Linux/Unix servers, Apache, Nginx |
| DER | .der, .cer |
No | Java applications, Windows |
| PKCS#12 | .p12, .pfx |
Yes (password-protected) | Windows, Java KeyStore import |
Export Procedure¶
- Navigate to the certificate detail page
- Click Export
- Select format and options:
- Include CA chain
- Include private key (requires
certificates.export_keypermission) - Set password (for PKCS#12)
- Download the file
Private Key Export
Exporting a certificate with its private key is a security-sensitive operation recorded in the audit log. Ensure the private key is transferred securely.
7. ACME Certificate Automation¶
MazeVault includes a built-in ACME server (RFC 8555) that enables automated certificate issuance directly from Kubernetes using cert-manager.
Quick Overview¶
- Generate EAB credentials in MazeVault (Organization Settings → ACME Access)
- Create a Kubernetes Secret with the HMAC key
- Deploy a ClusterIssuer pointing to your MazeVault ACME directory
- Annotate Ingresses or create
Certificateresources — cert-manager handles the rest
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: mazevault-issuer
spec:
acme:
server: https://vault.example.com/api/acme/directory
externalAccountBinding:
keyID: "YOUR_EAB_KEY_ID"
keySecretRef:
name: mazevault-eab-secret
key: secret
privateKeySecretRef:
name: mazevault-acme-account-key
solvers:
- http01:
ingress:
ingressClassName: nginx
Internal domains (.local, .internal, .lan, .corp) are auto-approved without HTTP-01 challenge.
Full ACME Guide
For step-by-step instructions, YAML examples, ACME profiles, and troubleshooting, see the dedicated ACME Certificate Automation Guide.
8. CRL Management¶
Certificate Revocation List (CRL)¶
MazeVault generates CRLs automatically when certificates are revoked. CRLs are available at:
| Format | URL |
|---|---|
| DER | https://vault.example.com/api/v1/crl |
| PEM | https://vault.example.com/api/v1/crl/pem |
CRL Distribution Point¶
Configure the CRL Distribution Point in your certificates to point to your MazeVault CRL URL. This is automatically included in certificates issued by MazeVault CAs.
Force CRL Regeneration¶
If needed, regenerate the CRL manually:
- Navigate to Certificates → CRL
- Click Regenerate CRL
- Select type: Full or Delta
8. OCSP Validation¶
OCSP provides real-time certificate status checking as an alternative to CRL:
| Feature | CRL | OCSP |
|---|---|---|
| Real-time | ❌ (periodic generation) | ✅ |
| Bandwidth | Higher (full list) | Lower (per-certificate) |
| Privacy | Client downloads all | Client queries specific cert |
| Offline support | ✅ (cached CRL) | ❌ (requires connectivity) |
OCSP URL¶
Testing OCSP¶
Related¶
- Certificates API — API reference
- Secrets Management — Managing secrets
- TLS Configuration — TLS setup