agent.yml. La fuente autoritativa es schemas/agent.schema.json.
Claves obligatorias de nivel superior: identity, broker, certificates.
state_dir
agent.lock. Por defecto: /var/lib/certplane/agent.
identity
| Campo | Tipo | Por defecto | Notas |
|---|---|---|---|
name | string | — | Obligatorio. CN del certificado de identidad. |
provider | enum: step-ca | step-ca | |
cert | string | — | Obligatorio. Ruta del certificado de identidad. |
key | string | — | Obligatorio. Ruta de la clave (modo 0600). |
issuer_ca_bundle | string | — | Obligatorio. Bundle de CA del emisor. |
bootstrap_token | string | — | Obligatorio solo para enroll. Se borra tras un registro exitoso. |
renew_before | duration | 8h | Renueva la identidad cuando queda menos que esto. |
warn_before | duration | 24h | Avisa cuando queda menos. Debe ser mayor que renew_before. |
step_ca.url | string | — | URL de la API de step-ca. |
step_ca.fingerprint | string | — | SHA-256 de la raíz. Obligatorio si no se da root_ca_bundle. |
step_ca.root_ca_bundle | string | — | Bundle PEM de la raíz. Obligatorio si no se da fingerprint. |
step_ca.timeout | duration | 10s |
step_ca.fingerprint y step_ca.root_ca_bundle.
broker
| Campo | Tipo | Por defecto | Notas |
|---|---|---|---|
url | string | — | Obligatorio. Endpoint HTTPS del broker. |
server_ca_bundle | string | — | Obligatorio. CA que firma el server del broker. |
timeout | duration | 30s | Timeout por petición. |
certificates
Lista con al menos un elemento. Cada uno es un certificado de servicio gestionado.
| Campo | Tipo | Por defecto | Notas |
|---|---|---|---|
name | string | — | Obligatorio. Etiqueta única; aparece en los logs. |
profile | string | — | Obligatorio. Perfil del broker. Debe estar permitido para la identidad del host. |
dns_names | string[] | — | Obligatorio. No vacío. Debe satisfacer los DNS permitidos del perfil. |
key | string | — | Obligatorio. Clave privada de servicio. Se genera si falta. |
cert | string | — | Obligatorio. Ruta del certificado hoja. |
chain | string | — | Obligatorio. Ruta de la cadena intermedia. |
fullchain | string | — | Obligatorio. Ruta de hoja + intermedias. |
reload_command | string | — | Comando shell tras una instalación exitosa. |
reload_timeout | duration | 30s | Timeout del comando. |
renew_before | duration | 720h | Renueva cuando queda menos. |
logging
info, text, stderr.
Validación
certplane-agent ... check (y todo subcomando al arrancar) valida que:
- Todos los obligatorios están presentes.
- Cada
dns_names[]es un nombre DNS válido. step_ca.urlybroker.urlson URLs válidas.- Exactamente uno entre
step_ca.fingerprintystep_ca.root_ca_bundle. - Las rutas en
certificatesson absolutas.
config/agent.go.