Issue TLS certificates for your internal services
Forge
An internal certificate authority.
Create a CA, then issue, renew, and revoke short-lived X.509 certificates for services on your network, either from a subject name or from a CSR. Forge also maintains the certificate revocation list.
Use it from your app
terminal
# Issue a 24-hour certificate for an internal service
$ curl -s localhost:8200/v1/forge \
-H "Authorization: Bearer $DEPLOY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"args":["ISSUE","internal","CN=payments.internal",
"TTL","24h","SAN_DNS","payments.internal"]}'What it does
- Create root and intermediate CAs.
- Issue certificates from a subject name or from a CSR.
- Short lifetimes, renewal, and revocation.
- Maintains the certificate revocation list.
- CA key rotation.
Turn it on
Forge runs inside Moat, the ShrouDB server. Add this to moat.tomland restart. It shares Moat's encrypted storage, access tokens, and audit log with the other engines.
moat.toml
[engines.forge]
enabled = trueCommands
Over RESP3, prefix each command with FORGE. Over HTTP, send POST /v1/forge {"args": [...]}. The SDKs have a method for each.
| Command | Args | Description |
|---|---|---|
| CA CREATE | <name> <algorithm> <subject> | Create a CA |
| ISSUE | <ca> <subject> [TTL <dur>] [SAN_DNS <name>] | Issue a certificate |
| ISSUE_FROM_CSR | <ca> <csr_pem> | Issue from a CSR |
| RENEW | <ca> <serial> | Renew a certificate |
| REVOKE | <ca> <serial> [REASON <r>] | Revoke a certificate |
| INSPECT | <ca> <serial> | Show certificate details |
| CA ROTATE | <name> | Rotate the CA key |
Try Forge locally
The quickstart takes about five minutes.