Private trust stack reference

Look up identifiers, response structures, authentication methods, and endpoints used by the solution.

Use this reference to trace identifiers across DigiCert® Account Manager, DigiCert® Private CA, DigiCert® Device Trust Manager, and DigiCert® Software Trust Manager. It also identifies response structures, authentication methods, and API-specific request formats.

Implementation status and saved values

Record non-secret resource IDs and references to entries in your approved secret manager. Never record API tokens, passcodes, or private-key values in this status record. Use the linked phase checkpoint to determine whether a phase is complete.

CheckpointWorkstreamCompletion evidenceValues to retainNext step
Establish the account foundationShared foundationService identity with limited roles and matching client certificate verified.account_id, organization_id, service-user and credential IDs, secret-manager references for service_api_token and client.keyPrepare the private trust domain
Prepare the private trust domainShared foundationCA assignments, certificate paths, and approved root fingerprint verified.CA IDs, root-ca.pem, workload issuing-CA certificatesConfigure the device certificate infrastructure and configure and test private code signing in either order or in parallel.
Configure the device certificate infrastructureDevice identityEligible template, division, profile, and policy verified.division_id, device_certificate_profile_id, certificate_policy_idEnroll and verify a device
Enroll and verify a deviceDevice identityPasscode enrollment, key match, and device certificate path verified.Authentication, passcode, group, request, and device-certificate IDsConfigure and test private code signing if code signing is incomplete. Otherwise, operate this solution.
Configure and test private code signingCode signingSigning certificate path and returned signature verified.Template, profile, keypair, certificate, and signature IDsConfigure the device certificate infrastructure if device identity is incomplete. Otherwise, operate this solution.

Cross-product data flow

DataCreated or selected inUsed inFormat and handling
account_idAccount Manager account listAll setup phasesUUID selected from the account response array.
organization_idAccount Manager organization listSoftware Trust Manager private trust certificate profileUUID for an active organization in account_id.
service_user_idAccount Manager create-user responseCredential administration and auditUUID. It is not an authentication secret.
api_token_idCreate-user response api_token.idCredential removal and auditUUID for the returned-once service API token.
service_api_tokenCreate-user response api_token.tokenSetup calls authenticated with an API token and Software Trust Manager multi-factor authenticationSecret API token that is returned once. Send it in the x-api-key header. It is not an OAuth bearer token.
client_auth_certificate_idAccount Manager create-client-authentication-certificate responseCredential removal and auditUUID for the credential created with the service user identified by service_user_id.
client.crt, client.keyAccount Manager client authentication certificate creationSoftware Trust Manager keypair creation and signingGenerate the private key locally and submit only its certificate signing request (CSR). Protect the PEM private key as a secret.
root_ca_idDigiCert Private CA GET /caCA certificate downloadIdentifier selected from the active root CA record.
root-ca.pemDigiCert Private CA CA-download operationRelying-party trust stores and path validationTrust anchor. Validate the fingerprint before distribution.
device_ica_idActive intermediate from the DigiCert Private CA GET /ca operationDevice Trust Manager certificate policyIdentifier selected from the active device issuing-CA record.
signing_ica_idActive intermediate from the DigiCert Private CA GET /ca operationSoftware Trust Manager private trust certificate profileIdentifier selected from the active signing issuing-CA record. It can equal device_ica_id when your public key infrastructure (PKI) policy permits a shared issuer.
device-issuing-ca.pemDigiCert Private CA CA-download operationDevice certificate-path constructionDevice intermediate certificate. Do not install it as the trust anchor.
signing-issuing-ca.pemDigiCert Private CA CA-download operationSigning certificate-path constructionSigning intermediate certificate. Do not install it as the trust anchor.
device_certificate_template_idDevice Trust Manager certificate-template listDevice certificate profileUUID specific to Device Trust Manager. The template must require the client authentication extended key usage (EKU) and support this request’s key and subject sources.
code_signing_certificate_template_idSoftware Trust Manager certificate-template listPrivate trust certificate profile in the same productUUID specific to Software Trust Manager. The template must be active, custom, available to the account, and require code_signing.
primary_rendezvous_zone_idDevice Trust Manager rendezvous-zone list records[].idDevice Trust Manager division creationUUID for an enabled zone assigned to the account with is_primary_usage: true.
division_idDevice Trust Manager division list records[].idDevice profile, policy, and groupUUID. The create response does not supply this ID directly.
device_certificate_profile_idDevice Trust Manager create-profile responseDevice Trust Manager certificate policyUUID.
certificate_policy_idDevice Trust Manager create-policy responseGroup assignment and enrollmentIOT_<uuid> in the API examples.
authentication_policy_idDevice Trust Manager create-authentication-policy responsePasscode and group policy assignmentUUID.
passcode_idDevice Trust Manager create-passcode responseCredential removalUUID.
passcodeClient-supplied create-passcode valueRequest-certificate x-passcode headerSecret. The create response might include it, so protect the complete response and continue using the original secret-store value.
device_group_idDevice Trust Manager group list records[].idDevice certificate requestUUID required by this solution to apply the group authentication override.
certificate_request_idDevice Trust Manager certificate-issuance responseApproval polling, troubleshooting, and audit correlationIdentifier for the device certificate request.
device_certificate_idDevice Trust Manager certificate-issuance responseApproved-certificate download, inventory, and lifecycle operationsIdentifier for the issued device certificate.
signing_profile_idSoftware Trust Manager create-profile responseSigning-certificate generationUUID.
keypair_idSoftware Trust Manager create-keypair responseCertificate generation and signing pathsUUID. Keypair creation requires an API token and mutual TLS (mTLS).
signing_certificate_idSoftware Trust Manager certificate-generation responseCertificate identification and lifecycle trackingIdentifier for the private code-signing certificate.
signature_idSoftware Trust Manager sign responseRequest identification and retained validation evidenceIdentifier for the returned signature operation.

Response structures

OperationResponse structure
Account Manager list accountsTop-level JSON array.
Account Manager list organizationsTop-level JSON array.
Account Manager list rolesObject keyed by Manager, each containing a role array.
DigiCert Private CA list CAsObject with pagination metadata. CA records are in items, but the API reference does not document pagination parameters. Stop without selecting a CA when total differs from the number of returned items.
Device Trust Manager list certificate templatesPaginated object. Templates are in records; offset is the index of the first record.
Software Trust Manager list certificate templatesPaginated object. Templates are in items; offset is the page index.
Device Trust Manager list divisionsPaginated object. Divisions are in records; offset is the index of the first record.
Device Trust Manager list device groupsPaginated object. Groups are in records; offset is the index of the first record.
Device Trust Manager create division or groupResponse with status information but no resource ID. Retrieve the new ID by listing resources and selecting the exact name.
Device Trust Manager create certificate policyObject with the created policy in certificate_policy.

Authentication matrix

API operationsHostHeadersClient certificate
Account Manager setupTenant hostAPI token in x-api-keyNo
DigiCert Private CA setupTenant hostAPI token in x-api-keyNo
Device Trust Manager administrative setupTenant hostAPI token in x-api-keyNo
Device certificate request using passcodeTenant hostx-passcode. Omit x-api-key.No
Software Trust Manager profile and certificate setupTenant hostAPI token in x-api-keyNo for the operations in the current API reference.
Software Trust Manager keypair creation and signingclientauth. tenant hostAPI token in x-api-keyYes. The certificate and key must belong to the identity associated with the API token.

Endpoint quick reference

The examples use this host:

https://demo.one.digicert.com
MethodFull pathPhase
GET/account/api/v1/account1
GET/account/api/v1/role1
GET/account/api/v1/organization1
POST/account/api/v1/user1
POST/account/api/v1/client-auth-certificate1
GET/certificate-authority/api/v1/ca2
POST/certificate-authority/api/v1/ca/{ica_id}/accounts2
GET/certificate-authority/api/v1/ca/{ca_id}/download?format=pem2
GET/devicetrustmanager/certificate-configuration-service/api/v1/certificate-template3
GET/devicetrustmanager/api/v4/rendezvous-zone3
POST/devicetrustmanager/api/v4/division3
GET/devicetrustmanager/api/v4/division3
POST/devicetrustmanager/certificate-configuration-service/api/v1/certificate-profile3
POST/devicetrustmanager/certificate-configuration-service/api/v2/certificate-policy3
POST/devicetrustmanager/authentication-service/api/v1/authentication-policy4
POST/devicetrustmanager/authentication-service/api/v1/passcode4
POST/devicetrustmanager/api/v4/device-group4
GET/devicetrustmanager/api/v4/device-group4
POST/devicetrustmanager/certificate-issuance-service/api/v2/certificate4
GET/devicetrustmanager/certificate-issuance-service/api/v2/certificate-request/{certificate_request_id}/status4
POST/devicetrustmanager/certificate-issuance-service/api/v2/certificate/{certificate_id}/download-approved-certificate4
GET/signingmanager/api/v1/certificate-templates5
POST/signingmanager/api/v1/certificate-profiles5
POST/signingmanager/api/v1/keypairs5
POST/signingmanager/api/v1/keypairs/{keypair_id}/certificates5
POST/signingmanager/api/v1/keypairs/{keypair_id}/sign5

For Software Trust Manager keypair creation and signing, change the host to:

https://clientauth.demo.one.digicert.com

API-specific request formats

Select a template from the correct product

Use the template endpoint in the product that creates the profile:

ProductResponse structureRequired checks for this manual
Device Trust ManagerGET /devicetrustmanager/certificate-configuration-service/api/v1/certificate-templaterecordsExact name, ACTIVE, custom, X.509 end-entity certificate, target-account access, client_authentication, RSA-2048 through key_types or the key_gen range, user-supplied common name, and required client authentication EKU.
Software Trust ManagerGET /signingmanager/api/v1/certificate-templatesitemsExact name, ACTIVE, CUSTOM, TEST, target-account access, code_signing, and required code-signing EKU.

The DigiCert Private CA GET /template operation returns a third template resource. You cannot use its IDs in Device Trust Manager or Software Trust Manager profile requests.

Device Trust group policy assignment

{
  "policy_id": "IOT_<uuid>",
  "assignment_name": "Private device bootstrap certificate",
  "type": "bootstrapCertificate",
  "auth_policy_id": "<authentication-policy-uuid>",
  "status": "ACTIVE"
}

Device Trust server-side certificate request

{
  "certificate_policy_id": "IOT_<uuid>",
  "device_group_id": "<device-group-uuid>",
  "certificate_profile_attributes": [
    {
      "id": "subject.common_name",
      "value": "device-001.example.internal"
    }
  ],
  "server_side_key_gen": true,
  "key_type": "rsa_2048",
  "private_key_format": "pem",
  "private_key_syntax": "pkcs8",
  "response_with_certificate_only": false,
  "include_certificate_chain": true,
  "split_certificate_response": true
}

Software Trust private trust certificate profile

The current API request uses this format:

{
  "profile_type": "CA_PROFILE",
  "ca_certificate_profile_request": {
    "certificate_template_id": "<code-signing-template-uuid>",
    "profile": "TEST",
    "body": [],
    "organization": {
      "id": "<organization-uuid>"
    },
    "ca": {
      "id": "<ica-id>"
    }
  }
}