Skip to content

Crear Destino Instalación ​

Autenticación ​

Haz una petición al endpoint login para obtener bearer token

POST /api/login

bash
curl --location '{{baseUrl}}/api/login' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data-raw '{
    "email": "dcano2@entorno.es",
    "password": "password"
}
'

Reemplaza con la url base de tu servidor de CertGuardian

Body ejemplo:

json
{
     "email": "dcano2@entorno.es",
     "password": "password"
}

Respuesta:

json
{
     "user": {
         "id": 2,
         "name": "dcano2",
         "email": "dcano2@entorno.es",
         "email_verified_at": null,
         "created_at": "2026-03-19T07:30:10.000000Z",
         "updated_at": "2026-03-19T07:30:40.000000Z",
         "allowed_ips": [
             "172.19.0.1"
         ],
         "is_admin": true
     },
     "token": "287|GKRNDQijgGY6myOTF3n4GMg9zqCeQ1SLxZ0fgplg0f2d5ccc",
     "expires_at": "2026-09-05T07:58:21.000000Z",
     "expires_in_minutes": 1440
}

Todas las peticiones a continuación deben tener el bearer token en la cabecera

--header 'Authorization: Bearer your-bearer-token'

Obtener el ID de el Tipo Instalación ​

Lista todos los Tipo Instalación para obtener el ID del Destino Instalación que quieres crear GET /api/tipos-instalacion-list/

bash
curl --location '{{baseUrl}}/api/agent/certificates/list' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your-bearer-token'

Respuesta: img.png

Obtener propiedades Destino Instalación ​

Los nombres de las propiedades de configuración que el Destino Instalación necesita están en: json_schema -> schema -> properties img_1.png

En el caso de un tipo instalación SSH son: host, username, port, remote_cert, remote_key, remote_chain, remote_fullchain, reload_commad

Valida la configuración de Destino Instalación ​

Valida que la configuración del Destino sea válida y CertGuardian pueda conectarse con el endpoint validate-configPOST /api/tipo-instalacion/:tipoInstalacion/validate-config

bash
curl --location '{{baseUrl}}/api/instalaciones/test-connection/8' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer your-bearer-token' \
--data '{
  "host": "192.168.1.100",
  "username": "root",
  "port": 22,
  "remote_cert": "/path/to/private/key",
  "remote_key": "/path/to/private/key",
  "remote_chain": "/path/to/private/key",
  "remote_fullchain": "/path/to/private/key",
  "reload_command": "systemctl reload nginx"
}'

Body ejemplo:

json
{
   "host": "192.168.1.100",
   "username": "root",
   "port": 22,
   "remote_cert": "/path/to/private/key",
   "remote_key": "/path/to/private/key",
   "remote_chain": "/path/to/private/key",
   "remote_fullchain": "/path/to/private/key",
   "reload_command": "systemctl reload nginx"
}

Respuesta ok (200):

json
{
	"correct":true,
	"message":"SSH key copied successfully"
}

Respuesta error (200):

json
{
     "correct": false,
     "message": "SSH connection failed: The command \"'ssh' '-i' '/var/www/certguardian/ssh-keys/id_rsa' '-o' 'StrictHostKeyChecking=no' '-o' 'UserKnownHostsFile=/var/www/certguardian/ssh-keys/known_hosts' '-o' 'BatchMode=yes' '-o' 'ConnectTimeout=30' '-i' '/var/www/certguardian/ssh-keys/id_rsa' 'root@192.168.1.100' 'echo \"Certguardian SSH connection test successful\"'\" failed.\n\nExit Code: 255(Unknown error)\n\nWorking directory: /var/www/certguardian/public\n\nOutput:\n================\n\n\nError Output:\n================\nssh: connect to host 192.168.1.100 port 22: Connection refused\r\n"
}

Crear el Destino Instalación ​

El Destino Instalación ya se puede crear: POST /api/servidores

bash
curl '{{baseUrl}}/api/servidores' \
  -X POST \
  -H 'Authorization: your-bearer-token' \
  --data-raw '{"ip":"Apache Server","tipo_instalacion_id":2,"descripcion":"certguardian.es server",  "config_json":     {       "host": "192.168.1.100",       "username": "root",       "port": 22,       "remote_cert": "/path/to/private/key",       "remote_key": "/path/to/private/key",       "remote_chain": "/path/to/private/key",       "remote_fullchain": "/path/to/private/key",       "reload_command": "systemctl reload nginx"     }}'

Body ejemplo:

json
{
  "ip":"Apache Server",
  "tipo_instalacion_id":2,
  "user_id":null,
  "descripcion":"certguardian.es server",
  "config_json":
    {
      "host": "192.168.1.100",
      "username": "root",
      "port": 22,
      "remote_cert": "/path/to/private/key",
      "remote_key": "/path/to/private/key",
      "remote_chain": "/path/to/private/key",
      "remote_fullchain": "/path/to/private/key",
      "reload_command": "systemctl reload nginx"
    }
}

Reemplaza el valor de tipo_instalacion_id con el valor de tu Tipo Instalación y reemplaza el valor de config_json con la configuración del paso anterior

Respuesta ok (200):

json
{
"ip":"aaa","common_name":"aa","tipo_instalacion_id":2,"user_id":null,"descripcion":"aaa","config_json":{"PFX":true,"with_password":false,"email_list":["dcano@entorno.es"]}}

CertGuardian es una herramienta de automatización del ciclo de vida SSL/TLS desarrollada y respaldada por Entorno Digital.