API Services

L’API Services de DigiCert est une API puissante qui vous permet d’automatiser les processus de certification habituels afin de gagner du temps et simplifier la gestion des certificats. Simple d’utilisation, l’API Services fait appel aux conventions RESTful modernes.

Pourquoi l’utiliser ?

  • Accédez à toutes les fonctionnalités disponibles dans CertCentral sans avoir à vous connecter à la plate-forme.
  • Personnalisez et automatisez de manière virtuelle tout workflow au sein de la plate-forme de gestion de certificats.
  • Créez votre propre version de la plate-forme en utilisant la stratégie de marque de votre organisation.
  • Profitez d’une intégration transparente à tous vos outils existants.

URL de base

Utilisez cette URL de base lors de l’établissement des demandes d’API :

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

Chaque page du point de terminaison fournit seulement la dernière partie de l’URL du point de terminaison URL (par ex. /commandes). Assurez-vous de bien préfixer l’URL de base au point de terminaison lorsque vous construisez des demandes.

Chaînes de requête d’URL

Certains points de terminaison utilisent des chaînes de requête d’URL pour filtrer les résultats. Les chaînes de requête d’URL sont préfixées à l’URL du point de terminaison en utilisant ?, avec d’autres chaînes de requêtes ajoutées en utilisant &.

Cet exemple utilise la chaîne de requête container_id pour filtrer les résultats dans le conteneur spécifié. Il utilise également la chaîne de requête limit pour ne renvoyer que dix résultats.

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

Demandes

Toutes les demandes d’API sont envoyées au moyen d’URL RESTful utilisant les fonctions REST, y compris l’authentification basée sur l’en-tête et les demandes de type JSON/XML.

Le format d’encodage du jeu de caractères des données pour les demandes est UTF-8. Une demande bien formée utilise le port 443 et l’agent utilisateur et la longueur du contenu sont spécifiés dans les en-têtes.

Méthode

L’API DigiCert Services utilise les méthodes HTTP standard suivantes :

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE

Corps

La plupart des demandes nécessitent de transférer des données au format JSON ou XML. Si un point de terminaison accepte ou requiert un format différent, celui-ci sera noté pour ce point de terminaison.

Les valeurs du type de contenu incluent :

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

Réponses

Les réponses sont composées d’en-têtes et d’un corps. Le corps est formaté en fonction du type de contenu spécifié dans la demande.

Pour obtenir des informations sur les codes de réponse d’en-tête HTTP, consultez le Glossaire – En-têtes.

Exemples

Ajouter une note à une commande

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"
   }
}

Récupérer toutes les notes d’une commande

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"
         }
      }
   ]
}

Supprimer une note d’une commande

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