Services API

DigiCert Services API は、一般的な証明書プロセスを自動化して時間を短縮し、証明書管理を合理化できる強力な API です。Services API は、最新の RESTful 規定を使用し、使いやすいのが特長です。

その使用理由な何ですか?

  • CertCentral で利用可能な機能のすべてにアクセスでき、プラットフォームへのログインは必要ありません。
  • 証明書管理プラットフォーム内でワークフローをカスタマイズおよび自動化します。
  • 組織のブランドがあるプラットフォームの独自バージョンを作成します。
  • 既存のツールにシームレスに統合します。

ベース URL

API 申請を行うときは、このベース URL を使用します。

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

各エンドポイントページには、そのエンドポイント URL の最終部分のみ提供されます (例. /orders)。申請を行うときは、エンドポイントの先頭に必ず、ベース URL を入れてください。

URL クエリー文字列

エンドポイントのいくつかは URL クエリー文字列を使用して、結果をフィルタリングします。URL クエリー文字列は、? を使用して、,& を使用して追加クエリー文字列を追記して、エンドポイント URL に追記されます。

この例では、container_id クエリー文字列を使用して、指定コンテナに対して結果をフィルタリングしています。また、ここでは limit クエリー文字列を使用して、10の結果のみを返しています。

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

申請

すべての API 申請は、RESTful URL を経由して、ヘッダベースの認証および JSON/XML 申請タイプを含め、REST 機能を使用して提出されます。

申請に対するデータ文字セットエンコーディングは UTF-8 です。整形式の申請は、ポート 443 を使用し、ユーザー・エージェントおよび content-length ヘッダが指定されています。

方法

DigiCert Services API は、これらの標準 HTTP 方法を使用します。

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE

本体

申請のほとんどでは、JSON または XML 形式データのパスが必要です。エンドポイントが別の形式をサポートしている、あるいは必要とする場合は、そのエンドポイントについて注記が付きます。

サポート対象の content-type 値には以下が含まれます。

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

応答

応答はヘッダと本体で構成されます。本体は、申請で指定された content-type に基づき、フォーマットされます。

HTTP ヘッダ応答コードについての詳細は、用語集 – ヘッダ を参照してください。

オーダーに注意を追加

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

オーダーのすべての注意を取り込み

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

オーダーの注意を削除

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