訂購 Secure Site SSL

POST
https://www.digicert.com/services/v2/order/certificate/{{ssl_certificate_id}}

This page describes products with the securesite_ssl_certificate group name (see Glossary – Product identifiers).

Use this endpoint to request or renew an OV/EV Secure Site SSL certificate. To renew a certificate, you must place the request from the same account used to order the original certificate.

Replace {{ssl_certificate_id}} in the URL with the product identifier for the type of certificate to order:

  • ssl_ev_securesiteSecure Site EV SSL
  • ssl_ev_securesite_multi_domainSecure Site EV Multi-Domain SSL
  • ssl_securesiteSecure Site SSL
  • ssl_securesite_multi_domainSecure Site Multi-Domain SSL
  • ssl_securesite_wildcardSecure Site Wildcard SSL

In addition to these products, DigiCert offers flexible certificates that support any type of domain configuration. You can order flexible Secure Site certificates with the Order Secure Site OV and Order Secure Site EV endpoints. To activate these certificates for your CertCentral account, contact your account manager or our Support team. For more information, see Flex certificates.

You can only order certificates that are enabled for your account. Use the Product list endpoint to get the list of products available for your account.

Example requests and responses

cURL
curl -X POST \
  'https://www.digicert.com/services/v2/order/certificate/{{ssl_certificate_id}}' \
  -H 'Content-Type: application/json' \
  -H 'X-DC-DEVKEY: {{api_key}}' \
  -d '{
    "certificate": {
        "common_name": "example.com",
        "dns_names": [
            "sub.example.com",
            "app.example.com"
        ],
        "csr": "<csr>",
        "server_platform": {
            "id": 45
        },
        "signature_hash": "sha256",
        "organization_units": [
            "Accounting department"
        ]
    },
    "validity_years": 2,
    "comments": "Message for the approver",
    "disable_renewal_notifications": true,
    "locale": "en",
    "payment_method": "balance",
    "skip_approval": true,
    "organization": {
        "id": 123456
    },
    "custom_fields": [
        {
            "metadata_id": 11,
            "value": "Invoice #00001"
        }
    ]
}'
Python
import requests

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

payload = "{\n    \"certificate\": {\n        \"common_name\": \"example.com\",\n        \"dns_names\": [\n            \"sub.example.com\",\n            \"app.example.com\"\n        ],\n        \"csr\": \"<csr>\",\n        \"server_platform\": {\n            \"id\": 45\n        },\n        \"signature_hash\": \"sha256\",\n        \"organization_units\": [\n            \"Accounting department\"\n        ]\n    },\n    \"validity_years\": 2,\n    \"comments\": \"Message for the approver\",\n    \"disable_renewal_notifications\": true,\n    \"locale\": \"en\",\n    \"payment_method\": \"balance\",\n    \"skip_approval\": true,\n    \"organization\": {\n        \"id\": 123456\n    },\n    \"custom_fields\": [\n        {\n            \"metadata_id\": 11,\n            \"value\": \"Invoice #00001\"\n        }\n    ]\n}"
headers = {
    'X-DC-DEVKEY': "{{api_key}}",
    'Content-Type': "application/json"
    }

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/{{ssl_certificate_id}}"

	payload := strings.NewReader("{\n    \"certificate\": {\n        \"common_name\": \"example.com\",\n        \"dns_names\": [\n            \"sub.example.com\",\n            \"app.example.com\"\n        ],\n        \"csr\": \"<csr>\",\n        \"server_platform\": {\n            \"id\": 45\n        },\n        \"signature_hash\": \"sha256\",\n        \"organization_units\": [\n            \"Accounting department\"\n        ]\n    },\n    \"validity_years\": 2,\n    \"comments\": \"Message for the approver\",\n    \"disable_renewal_notifications\": true,\n    \"locale\": \"en\",\n    \"payment_method\": \"balance\",\n    \"skip_approval\": true,\n    \"organization\": {\n        \"id\": 123456\n    },\n    \"custom_fields\": [\n        {\n            \"metadata_id\": 11,\n            \"value\": \"Invoice #00001\"\n        }\n    ]\n}")

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

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

	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/{{ssl_certificate_id}}',
  headers: 
   { 'Content-Type': 'application/json',
     'X-DC-DEVKEY': '{{api_key}}' },
  body: 
   { certificate: 
      { common_name: 'example.com',
        dns_names: [ 'sub.example.com', 'app.example.com' ],
        csr: '<csr>',
        server_platform: { id: 45 },
        signature_hash: 'sha256',
        organization_units: [ 'Accounting department' ] },
     validity_years: 2,
     comments: 'Message for the approver',
     disable_renewal_notifications: true,
     locale: 'en',
     payment_method: 'balance',
     skip_approval: true,
     organization: { id: 123456 },
     custom_fields: [ { metadata_id: 11, value: 'Invoice #00001' } ] },
  json: true };

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

  console.log(body);
});
201 (one-step)
{
  "id": 112233,
  "requests": [
    {
      "id": 113,
      "status": "pending"
    }
  ]
}
201 (two-step)
{
  "id": 112233,
  "requests": [
    {
      "id": 113,
      "status": "submitted"
    }
  ]
}
201 (auto)
{
  "id": 112233,
  "requests": [
    {
      "id": 113,
      "status": "approved"
    }
  ],
  "certificate_id": 113
}
201 (skip)
{
  "id": 112233,
  "certificate_id": 113
}
201 (immediate)
{
  "id": 112233,
  "certificate_id": 113,
  "certificate_chain": [
    {
      "subject_common_name": "example.com",
      "pem": "<pem_certificate>"
    },
    {
      "subject_common_name": "DigiCert SHA2 Secure Server CA",
      "pem": "<pem_certificate>"
    },
    {
      "subject_common_name": "DigiCert Global Root CA",
      "pem": "<pem_certificate>"
    }
  ]
}

Request parameters

For information about allowed values for certificate fields, see Publicly Trusted Certificates – Data Entries that Violate Industry Standards.

Name Req/Opt Type Description
certificate required object Certificate details.
.. common_name required string Domain to be secured.
.. dns_names optional array Additional domains to be secured.
Can result in additional costs. (See Best practices – Get both versions of a domain for free.)
.. csr required string Certificate signing request (CSR).
Note: The Services API does not extract information from the CSR to fill in the details of a certificate request. You must provide values for all relevant request parameters, including certificate.common_name, certificate.dns_names, certificate.organization_units, and organization.id. If you are requesting a certificate for an organization without an existing ID, you must provide values for all required parameters of the organization object.
.. signature_hash required string Hash algorithm used to signing the certificate.
Code signing certificates support only SHA-256.
.. organization_units optional array Department in your organization the certificate is for.
.. server_platform optional object Server platform type.
Default: -1 (other)
.. .. id required int Server platform ID.
See Glossary – Server platforms
.. profile_option optional string If using custom certificate profiles, specify the profile name.
renewed_thumbprint optional string If order is a renewal, enter the SHA-1 thumbprint of the previous order's primary certificate. For more information, see How to check a certificate's thumbprint.
*Renewal orders must include either a renewed_thumbprint or renewal_of_order_id value.
validity_years required int Number of years the certificate is valid.
Can be replaced by validity_days or custom_expiration_date.
Allowed values: 1, 2
custom_expiration_date optional string Custom expiration date for the certificate. Date must be less than 825 days in the future.
Overrides validity_days and validity_years
Format: yyyy-MM-dd
comments optional string Comments about the order for the approver.
apply_cr_discount optional bool When true, applies any competitive replacement discounts that are available for the domains on the order. To calculate competitive replacement discounts before you place an order, use the List replacement benefits endpoint.
Default: false
serial_number optional string Serial number of the non-DigiCert certificate for which you expect to receive a competitive replacement discount when you place the order. If not provided, we use the information from your order request to look for a match among certificates on the CT log servers, and we apply a discount based on the best match we can find.
auto_renew optional int Specify if the certificate should automatically renew.
Default: 0
Allowed values: 0 (disabled), 1 (enabled)
custom_renewal_message optional string Custom message to be included in renewal notifications.
disable_renewal_notifications optional bool Specify if renewal notification emails should be disabled.
Default: false
additional_emails optional array Additional email addresses to receive certificate notification emails (e.g., certificate issuance, duplicate certificate, certificate renewals, etc.).
locale optional string Language that the DCV email should use.
See Glossary – Locale codes
renewal_of_order_id optional int If order is a renewal, enter the previous order's ID.
*Renewal orders must include either a renewed_thumbprint or renewal_of_order_id value.
payment_method optional string Specify the payment method to use.
Allowed values: balance, card, profile
Default: balance
dcv_method optional string DCV method to use when verifying domain control.
See Glossary – DCV methods
skip_approval optional bool Specify if the order should skip the approval step and be immediately submitted for validation and issued when complete.
Default: false
disable_ct optional bool Specify if CT logging for the certificate should be disabled.
Order-specific CT logging must be enabled or this will be ignored. See Allow Users to Keep Certificates Out of CT Logs.
Default: false
organization required object Container for organization details.
.. id required int ID of the organization to associate with the order.
Alternatively, you can pass an organization object to add a new organization when submitting an order. See Create organization for object structure requirements.
container optional object If needed, specify the container the order should be placed under.
.. id required int Container ID.
custom_fields optional* array Account-specific custom fields.
*Whether or not these fields are required depends on your custom field settings.
.. metadata_id required int Custom field ID.
.. value required string Value for the custom field.
Data validation type depends on your custom field settings.

Response parameters

Name Type Description
id int Order ID.
organization object Container for new organization details.
Only returned if a new organization was created with the order.
.. id int Organization ID for the new organization.
requests array Contains information about the request.
.. id int Request ID.
.. status string Request status.
Possible values: pending, submitted, approved, rejected
certificate_id int Certificate ID.
Returned if request status is approved.