Servicios API

La API de servicios de DigiCert es una API poderosa que le permite automatizar los procesos habituales de los certificados para ahorrar tiempo y optimizar la administración de los certificados. La API de servicios utiliza convenciones RESTful modernas y es fácil de utilizar.

¿Por qué utilizarla?

  • Acceda a todas las funciones disponibles en CertCentral sin tener que iniciar sesión en la plataforma.
  • Personalice y automatice prácticamente cualquier flujo de trabajo dentro de la plataforma de administración de certificados.
  • Cree su propia versión de la plataforma con la marca de su organización.
  • Intégrela sin problemas a sus herramientas existentes.

URL base

Utilice esta URL base al crear solicitudes API:

bash
https://www.digicert.com/services/v2

Cada página del terminal solo proporciona la última parte de la URL del terminal (por ejemplo, /pedidos). Vele por anteponer la URL base al terminal al crear solicitudes.

Cadena de consulta de la URL

Algunas terminales utilizan cadenas de consulta de la URL para filtrar los resultados. Las cadenas de consulta de la URL se agregan a la URL del terminal mediante ?, con cadenas de consulta adicionales añadidas utilizando &.

Este ejemplo utiliza la cadena de consulta container_id para filtrar los resultados al contenedor especificado. También utiliza la cadena de consulta limit para devolver únicamente diez resultados.

bash
https://www.digicert.com/services/v2/user?container_id=123&limit=10

Solicitudes

Todas las solicitudes API se envían a través de las URL RESTful utilizando funciones REST, incluida la autenticación basada en encabezados y los tipos de solicitud JSON/XML.

La codificación del conjunto de caracteres de los datos para las solicitudes es UTF-8. Una solicitud bien formada utiliza el puerto 443 y tiene los encabezados agente de usuario y longitud del contenido especificados.

Método

La API de servicios de DigiCert utiliza estos métodos estándares HTTP:

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE

Cuerpo

La mayoría de las solicitudes analizan datos con formato JSON o XML. Si una terminal es compatible con un formato diferente o lo requiere, se especificará para esa terminal.

Los valores de tipo de contenido que son compatibles incluyen lo siguiente:

  • application/json
  • application/xml
  • image/jpeg
  • image/png

Respuestas

Las respuestas están formadas por encabezados y un cuerpo. El cuerpo tiene un formato en función del tipo de contenido especificado en la solicitud.

Vea Glosario: encabezados para obtener más información sobre los códigos de respuesta de encabezado HTTP.

Ejemplos

Cómo agregar una nota a un pedido

cURL
curl -X POST \
  'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
  "text": "This is a note"
}'
Python
import requests

url = "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note"

payload = "{\n\t\"text\": \"This is a note\"\n}"
headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/xml"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
Go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note"

	payload := strings.NewReader("{\n\t\"text\": \"This is a note\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-DC-DEVKEY", "{{api_key}}")
	req.Header.Add("Content-Type", "application/xml")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
NodeJS
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note',
  headers: 
   { 'Content-Type': 'application/xml',
     'X-DC-DEVKEY': '{{api_key}}' },
  body: '{\n\t"text": "This is a note"\n}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
201 Created
{  
   "id": 1,
   "date_created": "2018-09-26T20:29:09+00:00",
   "text": "This is a note",
   "user": {  
      "id": 125039,
      "first_name": "John",
      "last_name": "Smith",
      "email": "john.smith@digicert.com"
   }
}

Cómo recuperar todas las notas en un pedido

cURL
curl -X GET \
  'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}'
Python
import requests

url = "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note"

headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/xml"
    }

response = requests.request("GET", url, headers=headers)

print(response.text)
Go
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-DC-DEVKEY", "{{api_key}}")
	req.Header.Add("Content-Type", "application/xml")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
NodeJS
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note',
  headers: 
   { 'Content-Type': 'application/xml',
     'X-DC-DEVKEY': '{{api_key}}' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
200 OK
{  
   "notes": [  
      {  
         "id": 1,
         "date_created": "2018-09-26T20:29:09+00:00",
         "text": "This is a note",
         "user": {  
            "id": 125039,
            "first_name": "John",
            "last_name": "Smith",
            "email": "john.smith@digicert.com"
         }
      }
   ]
}

Cómo eliminar una nota en un pedido

cURL
curl -X DELETE \
  'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note/{{note_id}}' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}'
Python
import requests

url = "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note/{{note_id}}"

headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/xml"
    }

response = requests.request("DELETE", url, headers=headers)

print(response.text)
Go
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note/{{note_id}}"

	req, _ := http.NewRequest("DELETE", url, nil)

	req.Header.Add("X-DC-DEVKEY", "{{api_key}}")
	req.Header.Add("Content-Type", "application/xml")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
NodeJS
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.digicert.com/services/v2/order/certificate/{{order_id}}/note/{{note_id}}',
  headers: 
   { 'Content-Type': 'application/xml',
     'X-DC-DEVKEY': '{{api_key}}' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
204 No Content
// empty