Overview

HTTP verbs

RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.

Verb Usage

GET

Used to retrieve a resource

POST

Used to create a new resource

PATCH

Used to update an existing resource, including partial updates

DELETE

Used to delete an existing resource

HTTP status codes

RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.

Status code Usage

200 OK

The request completed successfully

201 Created

A new resource has been created successfully. The resource’s URI is available from the response’s Location header

204 No Content

An update to an existing resource has been applied successfully

400 Bad Request

The request was malformed. The response body will include an error providing further information

404 Not Found

The requested resource did not exist

Authorization

All API methods require HTTP headers for authentication. In addition, some API methods require certificate authentication as well. There are three authentication styles used by the API methods.

User Login via Password

Most API methods use this authentication style.

The required HTTP headers are:

Header name Description

login

User login name

password

User password

customerUri

Customer URI part

User Login via Certificate

This can be used for all API methods except the APIs requiring Developer Login and is required by some APIs. In addition to the HTTP headers described below, the requests must have 'private' suffix in the URL, i.e. https://cert-manager.com/private/api/ssl/v1/types.

The required HTTP headers are:

Header name Description

login

User login name

customerUri

Customer URI part

Developer Login

Some APIs require this authentication style since a developer doesn’t need a user account. The required HTTP headers are:

Header name Description

email

Developer email address

password

Developer password

customerUri

Customer URI part

Errors

Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:

Path Type Description

code

Number

Error code

description

String

Error message

For example, a request that attempts to access resource with bad credentials will produce a 401 Unauthorized response:

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Content-Length: 41

{"code":-16,"description":"Unknown user"}

Possible values for JSON object fields include:

Error code Error message

-1

Unknown error.

-2

Internal error. Please contact Support for details.

-3

You are not authorized to perform {0}.

-7

{0} is required but missing.

-9

Unknown notification type: {0}

-9

The CSR is not valid Base-64 data!

-10

Error while decoding CSR.

-11

The CSR uses an unsupported algorithm!

-13

The CSR uses an unsupported key size!

-14

Unknown error.

-25

You are not authorized to execute {0}

-35

The Server type is invalid!

-36

The validity period (term) is invalid for this certificate profile.

-37

Access denied.

-39

{0}

-39

The certificate profile id is invalid!

-43

Internal error while decrypting.

-44

Error while generating key pair with open SSL

-62

Missing mandatory custom field!

-62

Invalid IP address {0}

-64

Optional field 'name' is invalid!

-65

Internal error {0}. Please contact Support for details.

-76

KU/EKU template is not allowed for customer.

-78

The public key is invalid or not supported.

-102

Only issued certificates could be revoked.

-103

Certificate has not been collected yet.

-105

Person not found.

-105

Error was occurred while renewing cert. Status = {0}

-107

Domain Control Validation is either incomplete or expired for {0}. Please complete it before requesting a certificate.

-109

Certificate is not available now, please try again later.

-110

Certificate has been revoked and cannot be downloaded.

-111

No certificate profile found by id {0}

-123

SSL Certificate to renew is invalid (null)

-124

Wrong SSL certificate id.

-126

Unknown SSL certificate file format requested: {0}

-129

Connection error while applying certificate.

-130

SSL state is not ''ISSUED'': {0}

-131

Custom fields limit exceeded for customer.

-134

Custom field has to have unique name.

-135

Custom field cannot be found.

-138

Invalid CSR.

-140

CSR decoding temporarily unavailable. Please try again later.

-141

The public key size in the CSR should be {0} bits minimum.

-159

Your certificate already revoked

-159

Custom fields limit has been exceeded for this customer. Only {0} custom fields or fewer are allowed.

-160

You can''t create fields with the same name - {0}!

-164

Certificate cannot be enrolled for a Local Domain and/or Private IP for a validity period exceeding {0}.

-166

Entered data doesn''t match the certificate or no valid certificate found

-169

Certificate is not available, please contact administrator.

-170

Based on the customer configuration, ECC CSRs are not allowed.

-172

The Client Certificate Profile is invalid!

-176

Updating is not possible. List of your Client Certificate Profile was changed by super admin.

-180

This SSL Certificate Profile doesn''t allow renew

-181

Anchor Certificate details do not match to your request.

-183

Certificate is not collectable.

-184

Object has no available customized Client Certificate Profile.

-185

Customized Client Certificate Profile: {0} has no available terms.

-188

This user have already reached the maximum allowed number of valid certificates: {0}

-194

The CSR uses an unsupported key size.

-195

CA is not available now. Please try again later.

-196

Connection error while retrieving DCV email list.

-213

Old password is incorrect

-219

Cannot change the role of the only {0} user.

-220

Password can''t be the same.

-221

Please select at least one Organization/Department for each selected role

-222

Please select roles for the same level

-223

Please select only one Organization/Department for each selected role

-226

This Admin account does not have privileges required to manage ''{0}'' <org>.

-233

You have no privilege to create this admin user.

-234

You have no privilege to modify the privileges of this admin.

-237

Client Admin''s Email is invalid

-249

You cannot update this client admin which has already been deleted.

-253

You have no privilege to modify the role of this admin.

-255

Privilege "Allow DCV" can''t be added to non SSL admins.

-256

You have no privilege to assign DCV privileges.

-303

The range is too wide. Maximum of {0} public ip-port pairs and {1} private ip-port pairs per scan are allowed.

-304

Incorrect format CIDR.

-305

The range of ip-port pairs is too wide.

-306

Domain name {0} exceeds {1} characters limit.

-410

Customer {0} cannot be found.

-429

Customer {0} does not have a login name for CA.

-500

Person name cannot be empty

-507

You can''t change organization for this person.<br> Key escrow of its level has been enabled for either current organization/department or target organization/department.

-508

New person. Please specify name

-518

Unknown email address

-524

You have no privilege to modify the email of this person.

-607

Available Agent(s) are not configured to scan the specified private range(s).

-615

To scan, you must first enter at least one range parameter.

-618

Discovery is currently running. Please try again later.

-637

Available Agent(s) are not configured to scan the specified public range(s).

-639

Supplied orgid invalid..

-700

Such domain already exists

-705

This operation cannot be performed as the delegation status is other than ‘‘Requested’’.

-707

This domain delegation request has already been deleted.

-709

Please delegate domain to at least one organization or department.

-711

Domain can''t be delegated to deleted organization.

-712

The domain name should be at least {0} characters in length.

-713

The domain name should be at most {0} characters in length.

-714

The domain name should have at least {0} dots.

-715

The domain ''{0}'' is inactive.

-723

<Something> is not a high-level domain. Only high-level domains can be validated.

-724

The request cannot be processed due to ''{0}'' domain validation status.

-727

The domain does not exist.

-728

One or more delegations have been changed by another administrator. Your changes will be ignored.

-731

You do not have sufficient privileges to modify the name of this domain.

-732

Invalid domain name.

-737

The domain(s): {0} are not validated! Please perform the DCV process for them before proceed.

-738

Access denied. You are not allowed to perform the {0} operation on this domain.

-740

This operation cannot be performed due to SSL certificates enrolled for this domain or its subdomains.

-741

Access denied due to a DRAO’s request that has not been approved for domain {0}. Force domain creation is disabled.

-834

The changes of Client Certificate Profile settings will cause the following departments have <br> no available customized Client Certificate Profile, or customized Client Certificate Profiles have no available term or default term: {0}

-840

The changes of Client Certificate Profile settings will cause the under levels have <br> no available customized Client Certificate Profile, or customized Client Certificate Profiles have no available term or default term.

-843

SSL certificate of this type cannot be requested due to ‘{0}’ validation status of the selected organization.

-951

'At least one of the following fields must be filled in: {0}.

-970

Incorrect login credentials.

-976

New password must be between {0} and 32 characters.

-977

New password length must be 32 characters.

-982

New password must not contain Login.

-1010

Domain ''{0}'' is not allowed.

-1021

This operation cannot be performed for Organization ''{0}''.

-1023

Organization ''{0}'' not found.

-1104

Invalid order number {0}

-1108

No valid client certificates found for {0}.

-1112

Certificate can''t be approved cause it has state = {0}

-1113

{0} certificate is not ready to be applied. Current certificate state is {1}.

-1117

The SSL is null.

-1137

The domain(s) {0} have not been validated under the DCV procedure.

-1138

Error while checking size of public key in CSR.

-1140

Since you are a requester of this certificate you can''t approve it. For EV certificates the requester and the approver must not be the same person.

-1144

SSL certificate id: {0} must be re-discovered due to migration need. We are sorry for inconvenience.

-1148

Replace is forbidden for autoinstalled certificates.

-1400

The request is being processed by Sectigo.

-1450

Unsupported certificate format specified: {0}

-1601

Field ''{0}'' has invalid value.

-1603

Error while validating the domain {0}

-1608

DCV is not enabled for this customer.

-3114

This {0} was modified or deleted by another user.

-3115

This {0} was modified or deleted by another user. Please refresh data.

-3301

Invalid scan range: {0}

-5001

You don' t have access to Organization assigned to the Rule

-5002

Assignment rules cannot be empty.

-5003

Cannot delete. An assignment rule has been assigned to the Net Discovery Tasks {0}

-5101

Certificate not found. {0}

-5109

Device Certificate Profile not found.

Resources

SSL certificates

SSL resource is used to perform operation on SSL Certificates

Get SSL certificate

Get SSL certificate details.

Response fields

Path Type Description

commonName

String

Certificate common name

sslId

Number

An ID using which this certificate can be renewed or revoked through Enrollment form. Deprecated. Use 'id' instead

id

Number

An ID using which this certificate can be renewed or revoked through Enrollment form

orgId

Number

An organization which this certificate is associated with

status

String

The status of this certificate

orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

backendCertId

String

Certificate ID in enrolling backend

vendor

String

The name of the issuing CA

certType

Object

Information about Certificate Profile this certificate was enrolled from

certType.id

Number

Certificate Profile ID

certType.useSecondaryOrgName

Boolean

Use secondary organization name

certType.name

String

Certificate Profile name

certType.description

String

Certificate Profile description

certType.terms

Array

Terms (in days) available for the Certificate Profile

certType.keyTypes

Object

Key types available for the Certificate Profile

subType

String

SSL Subtype, available only for managed certificates

term

Number

Term (days)

owner

String

The approver of the request for this certificate

ownerId

Number

The approver ID of the request for this certificate

requester

String

Requester

requesterId

Number

The Requester ID, when available

requestedVia

String

Requested Via

externalRequester

String

External Requester, when available

comments

String

Comments

requested

String

Requested date

approved

String

Approved date

issued

String

Issued date

declined

String

Declined date

expires

String

Expiration date

replaced

String

Replaced date

revoked

String

Revocation date

reasonCode

Number

Revocation reason code provided on revoke to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

renewed

Boolean

Certificate renewal indicator

serialNumber

String

SSL Serial Number

signatureAlg

String

Signature Algorithm

keyAlgorithm

String

Key algorithm (deprecated, see "keyType")

keySize

Number

Key size (deprecated, see "keyType")

keyType

String

Key type. For example: RSA - 2048, EC - P-256.

keyUsages

Array

Key Usages

extendedKeyUsages

Array

Extended Key Usages

subjectAlternativeNames

Array

Subject alternative names

customFields.[]

Array

Custom fields

customFields.[].name

String

Custom field name

customFields.[].value

String

Custom field value

certificateDetails

Object

Certificate details

certificateDetails.issuer

String

The subject of the issuing CA certificate

certificateDetails.subject

String

The subject of CA certificate

certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

autoInstallDetails

Object

Auto-Installation Information

autoInstallDetails.state

String

Auto-Installation state

autoInstallDetails.nodes[]

Array

Auto-Installation nodes (planned or already installed to)

autoInstallDetails.nodes[].name

String

Node name

autoInstallDetails.nodes[].port

Number

Node port

autoRenewDetails

Object

Auto-Renewal Information

autoRenewDetails.state

String

Auto-Renewal state

autoRenewDetails.daysBeforeExpiration

Number

Days before expiration to start auto-renewal

suspendNotifications

Boolean

Suspend Notifications for the certificate

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/67' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16060' \
    -H 'password: Password123' \
    -H 'customerUri: cst16060'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 903

{"commonName":"ccmqa.com","sslId":67,"id":67,"orgId":1282,"status":"Issued","orderNumber":7344326,"backendCertId":"7344326","vendor":"Vendor","certType":{"id":1825,"name":"SSL SASP -1407682434","description":"SSL SASP 642461344","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false},"subType":"OV","term":365,"owner":"client-admin-16065 client-admin-16065","ownerId":1339,"requester":"16063_nobody@nobody.comodo.od.ua","requestedVia":"Enrollment Form","comments":"comments","requested":"03/07/2023","expires":"03/06/2024","renewed":false,"serialNumber":"00:0::11::2:2::33","keyAlgorithm":"RSA","keySize":2048,"keyType":"RSA - 2048","subjectAlternativeNames":["ccmqa.com"],"customFields":[{"name":"name1","value":"value1"}],"certificateDetails":{"issuer":"issuer"},"autoInstallDetails":{"state":"Not configured"},"autoRenewDetails":{"state":"Not scheduled"},"suspendNotifications":false}

Update SSL certificate

Update SSL certificate.

You can update only external requesters, comments, custom fields, auto-renewal and suspend notifications.

Request fields

Path Type Description Constraints

sslId

Number

Certificate ID

[Must be at least 1, Must not be null]

term

Number

Term (days)

[Must be at least 1]

certTypeId

Number

Certificate Profile ID

[Must be at least 1]

orgId

Number

Organization ID

[Must be at least 1]

commonName

String

Certificate common name

[]

csr

String

Certificate signing request

[Must match the regular expression: [a-zA-Z0-9-+=\/\s]+, Size must be between 1 and 32767 inclusive]

externalRequester

String

External requester emails, comma-separated

[]

comments

String

Comments

[Size must be between 0 and 1024 inclusive]

subjectAlternativeNames

Array

Subject alternative names

[]

customFields

Array

Custom fields

[]

customFields.[].name

String

Example of custom field name

[Must not be null, Size must be between 1 and 256 inclusive]

customFields.[].value

String

Example of custom field value

[Must not be null, Size must be between 0 and 256 inclusive]

autoRenewDetails

Object

Auto-Renewal Information

[]

autoRenewDetails.state

String

Auto-Renewal state

[Allowed values 'Not scheduled' and 'Scheduled'], defaults to 'Not scheduled'

autoRenewDetails.daysBeforeExpiration

Number

Days before expiration to start auto-renewal

[Must be at least 1], defaults to 30 days. Auto-renewal state must be 'Scheduled' for days to update

suspendNotifications

Boolean

Suspend Notifications for the certificate

[]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16347' \
    -H 'password: Password123' \
    -H 'customerUri: cst16347' \
    -H 'Accept: application/json' \
    -d '{"sslId":145,"term":365,"certTypeId":1863,"orgId":1399,"commonName":"ccmqa.com","csr":"MIIC1zCCAb8CAQAwgZExCzAJBgNVBAYTAlVBMRIwEAYDVQQIDAljY21xYS5jb20x\nEjAQBgNVBAcMCWNjbXFhLmNvbTESMBAGA1UECgwJY2NtcWEuY29tMRIwEAYDVQQL\nDAljY21xYS5jb20xEjAQBgNVBAMMCWNjbXFhLmNvbTEeMBwGCSqGSIb3DQEJARYP\nYWRtaW5AY2NtcWEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nsdkqSb/r4zpbi2GCnCRvYo+CbnQg/wRbsObr0m9OXEP1jSTuj8CqJZvTnGjE15fy\npdTGadc40saepghV4gIUOnFpYQRZacSN3VPLxF9rjnLEDBn7mTqbtbvxjhOaiPYz\nZgEa6kOOf851rujvl0WClMuWTIoXM7OmaHZA1NorGc3lag+D+4Tx8j1ry22EphXE\nd+Pm+4Tf/Fshd9Cm1r1JLcnlq0YdkV6ynzeKbUJX1cdYyMrxWTnBy/Tp0dM8FDGY\nMQ3ArQBIaDPGOnq1Gfd/yLrbaQD/j0ntZ4WKIWTlJLAkDu0AySz9Tc+DBCTrGvor\n9tjfWaeQo7CU+pENRyYzEwIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAIBptH2V\nU66GWFt5nHiMZnPRD8r4/JfqDvtPbV+qbXz2G/S+nuw0dhzGb4zCp6INH7UgO21o\nGHqIO2we9o31CmfbfJBptQdcJ0h+b/1Awp/DJulwoNXHgUqq+PbKe2j+QdOTH8EG\nszGnRo3Li9WA+V3LkYi0GkBFKsP5SyKFA/am2A0TRyy9FJ6MaMPkwV397tKJJ+Hu\n0/YfJkwTaK6JGujEQOUBtTU6QmpWjfih5CafxaDFrFkzdPo8by+W8W13T1dvqBcs\nAZtdcEIcajHZ6sF/xEm9Dfui17R8a4kAHx8QD046mEt0/OxAacEURKkJeRQlRgN9\nTSfJ16hdPk69U4M=","externalRequester":"","comments":"comments","customFields":[{"name":"name1","value":"value1"}],"subjectAlternativeNames":["ccmqa.com"]}'

Response fields

Path Type Description

commonName

String

Certificate common name

sslId

Number

An ID using which this certificate can be renewed or revoked through Enrollment form. Deprecated. Use 'id' instead

id

Number

An ID using which this certificate can be renewed or revoked through Enrollment form

orgId

Number

An organization which this certificate is associated with

status

String

The status of this certificate

orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

backendCertId

String

Certificate ID in enrolling backend

vendor

String

The name of the issuing CA

certType

Object

Information about Certificate Profile this certificate was enrolled from

certType.id

Number

Certificate Profile ID

certType.useSecondaryOrgName

Boolean

Use secondary organization name

certType.name

String

Certificate Profile name

certType.description

String

Certificate Profile description

certType.terms

Array

Terms (in days) available for the Certificate Profile

certType.keyTypes

Object

Key types available for the Certificate Profile

subType

String

SSL Subtype, available only for managed certificates

term

Number

Term (days)

owner

String

The approver of the request for this certificate

ownerId

Number

The approver ID of the request for this certificate

requester

String

Requester

requesterId

Number

The Requester ID, when available

requestedVia

String

Requested Via

externalRequester

String

External Requester, when available

comments

String

Comments

requested

String

Requested date

approved

String

Approved date

issued

String

Issued date

declined

String

Declined date

expires

String

Expiration date

replaced

String

Replaced date

revoked

String

Revocation date

reasonCode

Number

Revocation reason code provided on revoke to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

renewed

Boolean

Certificate renewal indicator

signatureAlg

String

Signature Algorithm

keyAlgorithm

String

Key algorithm (deprecated, see "keyType")

keySize

Number

Key size (deprecated, see "keyType")

keyType

String

Key type. For example: RSA - 2048, EC - P-256.

keyUsages

Array

Key Usages

extendedKeyUsages

Array

Extended Key Usages

subjectAlternativeNames

Array

Subject alternative names

customFields.[]

Array

Custom fields

customFields.[].name

String

Custom field name

customFields.[].value

String

Custom field value

certificateDetails

Object

Certificate details

certificateDetails.issuer

String

The subject of the issuing CA certificate

certificateDetails.subject

String

The subject of CA certificate

certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

autoInstallDetails

Object

Auto-Installation Information

autoInstallDetails.state

String

Auto-Installation state

autoInstallDetails.nodes[]

Array

Auto-Installation nodes (planned or already installed to)

autoInstallDetails.nodes[].name

String

Node name

autoInstallDetails.nodes[].port

Number

Node port

autoRenewDetails

Object

Auto-Renewal Information

autoRenewDetails.state

String

Auto-Renewal state

autoRenewDetails.daysBeforeExpiration

Number

Days before expiration to start auto-renewal

suspendNotifications

Boolean

Suspend Notifications for the certificate

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 873

{"commonName":"ccmqa.com","sslId":145,"id":145,"orgId":1399,"status":"Requested","orderNumber":7344326,"backendCertId":"7344326","vendor":"Vendor","certType":{"id":1863,"name":"SSL SASP -103115958","description":"SSL SASP 1979121055","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false},"subType":"Multi Domain","term":365,"owner":"client-admin-16352 client-admin-16352","ownerId":1388,"requester":"16350_nobody@nobody.comodo.od.ua","requestedVia":"Enrollment Form","comments":"comments","requested":"03/07/2023","expires":"03/06/2024","renewed":false,"keyAlgorithm":"RSA","keySize":0,"keyType":"RSA","subjectAlternativeNames":["ccmqa.com"],"customFields":[{"name":"name1","value":"value1"}],"certificateDetails":{"issuer":"issuer"},"autoInstallDetails":{"state":"Not configured"},"autoRenewDetails":{"state":"Not scheduled"},"suspendNotifications":false}

Listing SSL certificates

List of SSL certificates.

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

commonName

Common Name filter

subjectAlternativeName

Subject Alternative Name filter

status

Status filter. Possible values: ', 'Invalid', 'Requested', 'Approved', 'Declined', 'Applied', 'Issued', 'Revoked', 'Expired', 'Replaced', 'Rejected', 'Unmanaged' - deprecated, result will be empty, 'SAApproved', 'Init''

sslTypeId

Certificate Profile ID

discoveryStatus

Discovery status filter. Possible values: 'NotDeployed', 'Deployed' (deprecated, see "requestedVia").

vendor

Vendor filter

orgId

Organization ID filter

installStatus

Install status filter. Possible values: 'NOT_SCHEDULED', 'SCHEDULED', 'STARTED', 'SUCCESSFUL', 'FAILED'

renewalStatus

Renewal status filter. Possible values: 'NOT_SCHEDULED', 'SCHEDULED', 'STARTED', 'SUCCESSFUL', 'FAILED'

issuer

Issuer filter

serialNumber

Serial Number filter

requester

Requester filter

externalRequester

External Requester filter

signatureAlgorithm

Signature Algorithm filter

keyAlgorithm

Key Algorithm filter

keySize

Key Size filter (deprecated, see "keyParam")

keyParam

Key Size / Curve Name filter

sha1Hash

SHA1 Hash filter

md5Hash

MD5 Hash filter

keyUsage

Key Usage filter

extendedKeyUsage

Extended Key Usage filter

requestedVia

Requested Via filter. Possible values: 'WEB_FORM', 'CLIENT_ADMIN', 'API', 'DISCOVERY', 'IMPORTED', 'SCEP', 'CD_AGENT', 'MS_AGENT', 'MS_CA', 'BULK_REQUEST', 'ACME', 'EST', 'REST'

Example request

$ curl 'https://cert-manager.com/api/ssl/v1' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16113' \
    -H 'password: Password123' \
    -H 'customerUri: cst16113'

Response fields

Path Type Description

[]

Array

Array of requested ssls

[].sslId

Number

SSL ID

[].commonName

String

SSL Common Name

[].subjectAlternativeNames

Array

SSL Subject Alternative Names

[].serialNumber

String

SSL Serial Number

Response headers

Name Description

X-Total-Count

Contains total number of SSL certificates available according to the filtering applied

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 39

[{"sslId":71,"commonName":"ccmqa.com"}]

Count SSL certificates

Count SSL certificates available according to the filter applied.

Request parameters

Parameter Description

commonName

Common Name filter

subjectAlternativeName

Subject Alternative Name filter

status

Status filter. Possible values: ', 'Invalid', 'Requested', 'Approved', 'Declined', 'Applied', 'Issued', 'Revoked', 'Expired', 'Replaced', 'Rejected', 'Unmanaged' - deprecated, result will be empty, 'SAApproved', 'Init''

sslTypeId

Certificate Profile ID

discoveryStatus

Discovery status filter. Possible values: 'NotDeployed', 'Deployed' (deprecated, see "requestedVia").

vendor

Vendor filter

orgId

Organization ID filter

installStatus

Install status filter. Possible values: 'NOT_SCHEDULED', 'SCHEDULED', 'STARTED', 'SUCCESSFUL', 'FAILED'

renewalStatus

Renewal status filter. Possible values: 'NOT_SCHEDULED', 'SCHEDULED', 'STARTED', 'SUCCESSFUL', 'FAILED'

issuer

Issuer filter

serialNumber

Serial Number filter

requester

Requester filter

externalRequester

External Requester filter

signatureAlgorithm

Signature Algorithm filter

keyAlgorithm

Key Algorithm filter

keySize

Key Size filter (deprecated, see "keyParam")

keyParam

Key Size / Curve Name filter

sha1Hash

SHA1 Hash filter

md5Hash

MD5 Hash filter

keyUsage

Key Usage filter

extendedKeyUsage

Extended Key Usage filter

requestedVia

Requested Via filter. Possible values: 'WEB_FORM', 'CLIENT_ADMIN', 'API', 'DISCOVERY', 'IMPORTED', 'SCEP', 'CD_AGENT', 'MS_AGENT', 'MS_CA', 'BULK_REQUEST', 'ACME', 'EST', 'REST'

Example request

$ curl 'https://cert-manager.com/api/ssl/v1' -i -X HEAD \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16234' \
    -H 'password: Password123' \
    -H 'customerUri: cst16234'

Response headers

Name Description

X-Total-Count

Contains total number of SSL certificates available according to the filtering applied

Example response

HTTP/1.1 200 OK
X-Total-Count: 42

Listing SSL Certificate Profiles

List all of SSL Certificate Profiles. Previously known as a certificate type.

Request parameters

Parameter Description

organizationId

Filter by Organization ID (optional)

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/types?organizationId=1296' -i -X GET \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16104' \
    -H 'password: Password123' \
    -H 'customerUri: cst16104'

Response fields

Path Type Description

[]

Array

An array of available SSL Certificate Profiles

[].id

Number

Certificate Profile ID

[].name

String

Certificate Profile name

[].useSecondaryOrgName

Boolean

Use secondary Organization name

[].description

String

Certificate Profile description

[].terms

Array

Terms (in days) available for the Certificate Profile

[].keyTypes

Object

Key types available for the Certificate Profile

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 150

[{"id":1834,"name":"SSL SASP -1991211008","description":"SSL SASP -1415106161","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false}]

Listing of custom fields for SSL

List all of custom fields defined for SSL certificates.

Response fields

Path Type Description

[]

Array

An array of custom fields

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatory

Boolean

Is field mandatory

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/customFields' -i -X GET \
    -H 'login: admin_customer16107' \
    -H 'password: Password123' \
    -H 'customerUri: cst16107' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 46

[{"id":86,"name":"testName","mandatory":true}]

Enroll SSL certificate

Creation and submission of a request for a new SSL certificate.

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

csr

String

Certificate signing request

'Must match the regular expression: [a-zA-Z0-9-+=\/\s]+,Must not be empty,Size must be between 1 and 32767 inclusive'

subjAltNames

String

Subject alternative names (comma separated)

certType

Number

Certificate Profile ID

term

Number

Certificate validity period in days

'Must be at least 1'

comments

String

Comments for enroll request

'Size must be between 0 and 1024 inclusive'

customFields[]

Array

Custom fields to be applied to requested certificate. Must contain mandatory custom fields.

customFields[].name

String

Name of an enabled custom field.

[]

customFields[].value

String

Value of the custom field.

[]

externalRequester

String

External Requester. Acceptable format: 'email@domain.com' or 'email1@domain.com, email2@domain.com'

'Size must be between 0 and 512 inclusive'

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/enroll' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16070' \
    -H 'password: Password123' \
    -H 'customerUri: cst16070' \
    -d '{"orgId":1284,"subjAltNames":"ccmqa.com","certType":1829,"term":365,"comments":"test","externalRequester":"","customFields":[{"name":"custom field","value":"custom field value"}],"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"sslId":68,"renewId":"BqB-noHqclQfO4AqVDaU"}

Enroll SSL certificate with Key Generation

Creation and submission of a request for a new SSL certificate with generated keypair. Private key will be stored inside 'Private Keys Store'.

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

commonName

String

Certificate common name

'Must not be null,Size must be between 1 and 64 inclusive'

subjAltNames

String

Subject alternative names (comma separated)

certType

Number

Certificate Profile ID

term

Number

Certificate validity period in days

'Must be at least 1'

comments

String

Comments for enroll request

'Size must be between 0 and 1024 inclusive'

algorithm

String

Keypair algorithm

Possible values: RSA, EC

keySize

Number

Keypair key size (deprecated, see "keyParam")

Applied only in case keypair algorithm is specified.

keyParam

String

Keypair key size (for RSA) or curve name (for EC)

Applied only in case keypair algorithm is specified.

passPhrase

String

Password to protect PKCS#12 certificate.

'Size must be between 8 and 32 inclusive'

customFields[]

Array

Custom fields to be applied to requested certificate. Must contain mandatory custom fields.

customFields[].name

String

Name of an enabled custom field.

[]

customFields[].value

String

Value of the custom field.

[]

externalRequester

String

External Requester. Acceptable format: 'email@domain.com' or 'email1@domain.com, email2@domain.com'

'Size must be between 0 and 512 inclusive'

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/enroll-keygen' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16073' \
    -H 'password: Password123' \
    -H 'customerUri: cst16073' \
    -d '{"orgId":1285,"subjAltNames":"ccmqa.com","certType":1832,"term":365,"comments":"test","externalRequester":"","customFields":[{"name":"custom field","value":"custom field value"}],"commonName":"ccmqa.com","passPhrase":"password","keySize":2048,"keyParam":"2048","algorithm":"RSA"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"sslId":69,"renewId":"CVEr2UTuHu37gs5--mE0"}

Link to download private key or whole certificate

Generation of a link to download private key or entire certificate from Private Key Controller. You will need to have enabled authentication certificate to have access to the Private Key Store in order to download SSL certificate and the private key.

This API method requires the User Login via Certificate authentication style.

Example request
$ curl 'https://cert-manager.com/private/api/ssl/v1/keystore/64/p12' -i -X GET \
    -H 'Accept: application/json' \
    -H 'login: admin_customer101' \
    -H 'password: Password123' \
    -H 'customerUri: cst101' \
    --cert-type P12 --cert /home/user/path_to_cert.p12:P@ssWord
Path parameters
Table 1. /api/ssl/v1/keystore/{sslId}/{formatType}
Parameter Description

sslId

SSL ID for which the link will be generated.

formatType

Parameter to specify download format: key only or entire certificate. Possible values: 'key' - for Private Key, Base64 encoded, 'p12' - for PKCS#12, Base64 encoded

Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 104

{"link":"https://{private_key_agent_host_name}/download?token=9STOEPH57C84UOME35RFR165QI&keyformat=P12"}

Collect SSL certificate

Delivering the newly issued SSL certificate from CA to the administrator for download.

Path parameters

Table 1. /api/ssl/v1/collect/{sslId}
Parameter Description

sslId

Certificate ID.

Request parameters

Parameter Description

format

Format type for certificate. Allowed values: 'x509' - for Certificate (w/ chain), PEM encoded, 'x509CO' - for Certificate only, PEM encoded, 'base64' - for PKCS#7, PEM encoded, 'bin' - for PKCS#7, 'x509IO' - for Root/Intermediate(s) only, PEM encoded, 'x509IOR' - for Intermediate(s)/Root only, PEM encoded, 'pem' - for Certificate (w/ chain), PEM encoded, 'pemco' - for Certificate only, PEM encoded, 'pemia' - for Certificate (w/ issuer after), PEM encoded, 'x509R' - for Certificate (w/ chain), PEM encoded, 'pkcs12' - for Certificate and Private key, PKCS#12. base64 is default.

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/collect/64?format=base64' -i -X GET \
    -H 'login: admin_customer16045' \
    -H 'password: Password123' \
    -H 'customerUri: cst16045'

Example response

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 7411
Content-Disposition: attachment; filename="test.cert"

-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt
UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC
tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf
jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM
8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm
AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV
Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9
N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF
qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9
HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ
+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX
HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv
A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud
HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4
dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0
dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD
lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn
RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ
YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8
Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf
Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF9TCCA92gAwIBAgIQHaJIMG+bJhjQguCWfTPTajANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjB8MQswCQYDVQQGEwJHQjEbMBkGA1UE
CBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQK
Ew9TZWN0aWdvIExpbWl0ZWQxJDAiBgNVBAMTG1NlY3RpZ28gUlNBIENvZGUgU2ln
bmluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIYijTKFehif
SfCWL2MIHi3cfJ8Uz+MmtiVmKUCGVEZ0MWLFEO2yhyemmcuVMMBW9aR1xqkOUGKl
UZEQauBLYq798PgYrKf/7i4zIPoMGYmobHutAMNhodxpZW0fbieW15dRhqb0J+V8
aouVHltg1X7XFpKcAC9o95ftanK+ODtj3o+/bkxBXRIgCFnoOc2P0tbPBrRXBbZO
oT5Xax+YvMRi1hsLjcdmG0qfnYHEckC14l/vC0X/o84Xpi1VsLewvFRqnbyNVlPG
8Lp5UEks9wO5/i9lNfIi6iwHr0bZ+UYc3Ix8cSjz/qfGFN1VkW6KEQ3fBiSVfQ+n
oXw62oY1YdMCAwEAAaOCAWQwggFgMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvA
nfKyA2bLMB0GA1UdDgQWBBQO4TqoUzox1Yq+wbutZxoDha00DjAOBgNVHQ8BAf8E
BAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAwYI
KwYBBQUHAwgwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
QXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6
Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAl
BggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0B
AQwFAAOCAgEATWNQ7Uc0SmGk295qKoyb8QAAHh1iezrXMsL2s+Bjs/thAIiaG20Q
BwRPvrjqiXgi6w9G7PNGXkBGiRL0C3danCpBOvzW9Ovn9xWVM8Ohgyi33i/klPeF
M4MtSkBIv5rCT0qxjyT0s4E307dksKYjalloUkJf/wTr4XRleQj1qZPea3FAmZa6
ePG5yOLDCBaxq2NayBWAbXReSnV+pbjDbLXP30p5h1zHQE1jNfYw08+1Cg4LBH+g
S667o6XQhACTPlNdNKUANWlsvp8gJRANGftQkGG+OY96jk32nw4e/gdREmaDJhlI
lc5KycF/8zoFm/lv34h/wCOe0h5DekUxwZxNqfBZslkZ6GqNKQQCd3xLS81wvjqy
VVp4Pry7bwMQJXcVNIr5NsxDkuS6T/FikyglVyn7URnHoSVAaoRXxrKdsbwcCtp8
Z359LukoTBh+xHsxQXGaSynsCz1XUNLK3f2eBVHlRHjdAd6xdZgNVCT98E7j4viD
vXK6yz067vBeF5Jobchh+abxKgoLpbn0nu6YMgWFnuv5gynTxix9vTp3Los3QqBq
gu07SqqUEKThDfgXxbZaeTMYkuO1dfih6Y4KJR7kHvGfWocj/5+kUZ77OYARzdu1
xKeogG/lU9Tg46LC0lsa+jImLWpXcBw8pFguo/NbSwfcMlnzh6cabVg=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFCjCCA/KgAwIBAgIRAKicluNCIKrVY1IbC+37vhUwDQYJKoZIhvcNAQELBQAw
fDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYDVQQD
ExtTZWN0aWdvIFJTQSBDb2RlIFNpZ25pbmcgQ0EwHhcNMTkwNjEzMDAwMDAwWhcN
MjEwNjEyMjM1OTU5WjB7MQswCQYDVQQGEwJDQTEOMAwGA1UEEQwFNTU1MjYxDjAM
BgNVBAgMBUlkYWhvMQ8wDQYDVQQHDAZLYW5hdGExEzARBgNVBAkMCjE5ODggbWFy
Y2gxEjAQBgNVBAoMCXRlc3QgY3JvcDESMBAGA1UEAwwJdGVzdCBjcm9wMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6A5w8ndXAWk8+6Zx+84FRiIX+B6t
xiKp1MHk7YA90mUdoU6nX/nqZErAtLMCr3C8x1nDlKZRvpMQIZhAT30orTm2TQXE
jOD5zIpxgG0YtQEyGRcpdehviwl+IkdWltgZe4adghJKUWEKfCvnWJrnK81ppcuA
xla4A1uLXYV7PoZIDi527xZK12SC9hxKYOHlcJ/od+NsUv114KFUTGe/EGuV9TQj
/VBOeObbfeAoOJvDNSso5EXKOu/WtEdiDZ5+2oUFz4lyzQyTtUA4cikClOfd2xBD
DvmfuoPhPj+1UsdqSDbE5xS3O8eIU9rnzVAbWe7YKe7+UBq8Sg2HUqJm2QIDAQAB
o4IBhjCCAYIwHwYDVR0jBBgwFoAUDuE6qFM6MdWKvsG7rWcaA4WtNA4wHQYDVR0O
BBYEFNpOBbcvZE5tFiSfOs1nwjjWXWtIMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMB
Af8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGCWCGSAGG+EIBAQQEAwIEEDBA
BgNVHSAEOTA3MDUGDCsGAQQBsjEBAgEDAjAlMCMGCCsGAQUFBwIBFhdodHRwczov
L3NlY3RpZ28uY29tL0NQUzBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLnNl
Y3RpZ28uY29tL1NlY3RpZ29SU0FDb2RlU2lnbmluZ0NBLmNybDBzBggrBgEFBQcB
AQRnMGUwPgYIKwYBBQUHMAKGMmh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGln
b1JTQUNvZGVTaWduaW5nQ0EuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5z
ZWN0aWdvLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAAAECAwQFBgcICQoLDA0ODxAR
EhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BB
QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6Ch
oqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR
0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==
-----END CERTIFICATE-----

Revoke SSL certificate by Id

Sending a request to CA to add the particular SSL certificate in certificate revocation list.

Path parameters

Table 1. /api/ssl/v1/revoke/{sslId}
Parameter Description

sslId

Certificate ID

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message with a reason why certificate needs to be revoked

[Must not be empty, Size must be between 1 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/revoke/93' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16219' \
    -H 'password: Password123' \
    -H 'customerUri: cst16219' \
    -d '{"reasonCode":4,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Approve SSL certificate

Approve a requested SSL certificate by Id.

Path parameters

Table 1. /api/ssl/v1/approve/{sslId}
Parameter Description

sslId

Certificate ID

Request fields

Path Type Description Constraints

message

String

Short message containing accompanying information for certificate approval action

[Must not be empty, Size must be between 1 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/approve/95' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16229' \
    -H 'password: Password123' \
    -H 'customerUri: cst16229' \
    -d '{"message": "test"}'

Example response

HTTP/1.1 204 No Content

Decline SSL certificate

Decline a requested SSL certificate by Id.

Path parameters

Table 1. /api/ssl/v1/decline/{sslId}
Parameter Description

sslId

Certificate ID

Request fields

Path Type Description Constraints

message

String

Short message containing accompanying information for certificate approval action

[Must not be empty, Size must be between 1 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/decline/138' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16321' \
    -H 'password: Password123' \
    -H 'customerUri: cst16321' \
    -d '{"message": "test"}'

Example response

HTTP/1.1 204 No Content

Revoke SSL certificate by serial number

Sending a request to CA to add the particular SSL certificate in certificate revocation list.

Path parameters

Table 1. /api/ssl/v1/revoke/serial/{serialNumber}
Parameter Description

serialNumber

Serial Number of certificate

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message with a reason why certificate needs to be revoked

[Must not be empty, Size must be between 1 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/revoke/serial/A9:3E:C0:61:FB:1E:C0:10:73:05:65:00:8D:72:D8:69' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16214' \
    -H 'password: Password123' \
    -H 'customerUri: cst16214' \
    -d '{"reasonCode":3,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Renew SSL certificate by renew Id

Submission of a request for a new SSL certificate using the CSR and parameters of the initial certificate. The initial certificate is the one that is selected by the administrator for renewal in this case.

Path parameters

Table 1. /api/ssl/v1/renew/{renewId}
Parameter Description

renewId

Renew ID for certificate.

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/renew/10' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16193' \
    -H 'password: Password123' \
    -H 'customerUri: cst16193' \
    -d '{"reason": "test"}'

Example response

HTTP/1.1 204 No Content

Renew SSL certificate by Id

Submission of a request for a new SSL certificate using the CSR and parameters of the initial SSL certificate. The initial certificate is defined by its ID in this case.

Path parameters

Table 1. /api/ssl/v1/renewById/{sslId}
Parameter Description

sslId

Certificate ID.

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/renewById/86' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16188' \
    -H 'password: Password123' \
    -H 'customerUri: cst16188'

Response fields

Path Type Description

sslId

Number

New certificate ID

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 12

{"sslId":87}

Replace SSL certificate by Id

Submission of a request for the substition of the particular SSL certificate applying its parameters and a new CSR.

Path parameters

Table 1. /api/ssl/v1/replace/{sslId}
Parameter Description

sslId

Certificate ID.

Request fields

Path Type Description Constraints

csr

String

Certificate signing request

[Must match the regular expression [a-zA-Z0-9-=\/\s], Must not be empty, Size must be between 1 and 32767 inclusive]

reason

String

Short message with a reason why certificate needs to be replaced

[Must not be empty, Size must be between 1 and 512 inclusive]

commonName

String

Certificate common name

[Size must be between 1 and 64 inclusive]

subjectAlternativeNames

Array

Array of subject alternative names

[]

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/replace/91' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16203' \
    -H 'password: Password123' \
    -H 'customerUri: cst16203' \
    -d '{"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----","reason":"test","commonName":"ccmqa.com","subjectAlternativeNames":["mafia.od.ua"]}'

Example response

HTTP/1.1 204 No Content

Delete SSL certificate by Id

Submission of a request for deleting SSL certificate for a given SSL Id.

Only imported or discovered certificates can be deleted.

Path parameters

Table 1. /api/ssl/v1/{sslId}
Parameter Description

sslId

Certificate ID.

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/66' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer16055' \
    -H 'password: Password123' \
    -H 'customerUri: cst16055'

Example response

HTTP/1.1 204 No Content

Import certificates to SCM

Import certificates to SCM

HTTPie request

$ http --form POST 'https://cert-manager.com/api/ssl/v1/import?orgId=1390' \
    'file'@'certs.zip' \
    'login:admin_customer16326' \
    'password:Password123' \
    'customerUri:cst16326' \
    'orgId=1390'

Example request

$ curl 'https://cert-manager.com/api/ssl/v1/import?orgId=1390' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=utf-8' \
    -H 'login: admin_customer16326' \
    -H 'password: Password123' \
    -H 'customerUri: cst16326' \
    -F 'file=@certs.zip;type=application/zip' \
    -F 'orgId=1390'

Request parameters

Parameter Description

orgId

An organization which this certificates import to

Request parts

Part Description

file

Zip archive with certificates to import

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 409

{"processedCount":8,"errors":["[appov_ccmqa_com_cert.cer] - SSL certificate already exists. Order number: N/A","[ccmqa_com.crt] - SSL certificate already exists. Order number: N/A","admin_ccmqa_com.p12 - Unsupported file extension","appov_ccmqa_com_interm.cer - Failed to parse certificate: Certificate is corrupted or subject basic constraint is not met","auto83_ccmqa_com.p12 - Unsupported file extension"]}

Response fields

Path Type Description

errors

Array

An array of occurred errors

processedCount

Number

Total number of processed certificates

Client certificates

Client resource is used to perform operation on Client Certificates

Listing Client Certificate Profiles

List all Client Certificate Profiles. Previously known as a certificate type.

Request parameters

Parameter Description

organizationId

Filter by Organization ID (optional)

Example request

$ curl 'https://cert-manager.com/api/smime/v1/types?organizationId=1192' -i -X GET \
    -H 'login: admin_customer15822' \
    -H 'password: Password123' \
    -H 'customerUri: cst15822' \
    -H 'Accept: application/json'

Response fields

Path Type Description

[]

Array

An array of available Client Certificate Profiles

[].id

Number

Certificate Profile ID

[].name

String

Certificate Profile name

[].useSecondaryOrgName

Boolean

Use secondary organization name

[].description

String

Certificate Profile description

[].terms

Array

Terms (in days) available for the Certificate Profile

[].keyTypes

Object

Key types available for the Certificate Profile

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 163

[{"id":1715,"name":"Client cert SASP 338498520","description":"Client cert SASP -542835250","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false}]

Custom fields for Client certificate

Special fields that enable the administrator to add their own identification reference(s) on Client certificates requested through SCM.

Response fields

Path Type Description

[]

Array

An array of custom fields

[].id

Number

Custom field id

[].name

String

Custom field name

[].mandatory

Boolean

Is field mandatory

Example request

$ curl 'https://cert-manager.com/api/smime/v1/customFields' -i -X GET \
    -H 'login: admin_customer15798' \
    -H 'password: Password123' \
    -H 'customerUri: cst15798' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 46

[{"id":62,"name":"testName","mandatory":true}]

Enroll Client certificate

Creation and submission of a request for a new Client certificate.

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

csr

String

Certificate signing request

certType

Number

Certificate Profile ID

term

Number

Certificate validity period in days

[Must be at least 1]

email

String

Person e-mail

[Must be a well-formed email address, Must not be empty, Size must be between 0 and 128 inclusive]

phone

String

Person telephone

[Must match the regular expression: [#|0-9|\(|\)|\-|\+| x]*, Size must be between 0 and 32 inclusive]

secondaryEmails

Array

Person secondary e-mails

[]

firstName

String

Person first name

firstName must not be empty, firstName + ' ' + middleName + ' ' + lastName must be in range of 1 to 64 characters

middleName

String

Person middle name

firstName + ' ' + middleName + ' ' + lastName must be in range of 1 to 64 characters

lastName

String

Person last name

lastName must not be empty, firstName + ' ' + middleName + ' ' + lastName must be in range of 1 to 64 characters

customFields

Array

Custom fields to be applied to requested certificate

[]

commonName

String

Person’s common name, if omitted will be constructed from Person’s full name

[Size must be between 0 and 64 inclusive]

eppn

String

EPPN

[Size must be between 0 and 128 inclusive]

upn

String

Principal name

[Size must be between 0 and 256 inclusive]

Response fields

Path Type Description

orderNumber

Number

Obsolete parameter for the order identifier under which the certificate request has been processed. BackendCertId should be used instead.

backendCertId

String

Certificate ID in enrolling backend

Example request

$ curl 'https://cert-manager.com/api/smime/v1/enroll' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15806' \
    -H 'password: Password123' \
    -H 'customerUri: cst15806' \
    -d '{"orgId":1184,"firstName":"Name","middleName":"","lastName":"LastName","email":"name@test.net","phone":"12345678","secondaryEmails":[],"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----","certType":1705,"term":365,"customFields":[],"commonName":null,"upn":null,"eppn":"firstname@email.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41

{"orderNumber":123,"backendCertId":"123"}

Collect Client certificate

Delivering the newly issued Client certificate from CA to the administrator for download.

Path parameters

Table 1. /api/smime/v1/collect/{orderNumber}
Parameter Description

orderNumber

Order number

Request parameters

Parameter Description

format

Format type for certificate. Allowed values: 'x509' - for Certificate (w/ chain), PEM encoded, 'x509CO' - for Certificate only, PEM encoded, 'base64' - for PKCS#7, PEM encoded, 'bin' - for PKCS#7, 'x509IO' - for Root/Intermediate(s) only, PEM encoded, 'x509IOR' - for Intermediate(s)/Root only, PEM encoded, 'pem' - for Certificate (w/ chain), PEM encoded, 'pemco' - for Certificate only, PEM encoded, 'pemia' - for Certificate (w/ issuer after), PEM encoded, 'x509R' - for Certificate (w/ chain), PEM encoded, 'pkcs12' - for Certificate and Private key, PKCS#12

Example request

$ curl 'https://cert-manager.com/api/smime/v1/collect/12345?format=base64' -i -X GET \
    -H 'login: admin_customer15802' \
    -H 'password: Password123' \
    -H 'customerUri: cst15802'

Example response

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="test_example_com.p7b"

Renew Client certificate by order number

Submission of a request for a new Client certificate using the CSR and parameters of the initial Client certificate. The initial certificate is defined by its order number.

Path parameters

Table 1. /api/smime/v2/renew/order/{orderNumber}
Parameter Description

orderNumber

Order number.

Example request

$ curl 'https://cert-manager.com/api/smime/v2/renew/order/12345' -i -X POST \
    -H 'login: admin_customer15858' \
    -H 'password: Password123' \
    -H 'customerUri: cst15858' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41

{"orderNumber":123,"backendCertId":"123"}

Renew Client certificate by serial number

Submission of a request for a new Client certificate using the CSR and parameters of the initial Client certificate. The initial certificate is defined by its serial number.

Path parameters

Table 1. /api/smime/v2/renew/serial/{serial}
Parameter Description

serial

Serial number.

Example request

$ curl 'https://cert-manager.com/api/smime/v2/renew/serial/test:serial' -i -X POST \
    -H 'login: admin_customer15862' \
    -H 'password: Password123' \
    -H 'customerUri: cst15862' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41

{"orderNumber":123,"backendCertId":"123"}

Replace Client certificate by order number

Submission of a request for a replace of a Client certificate using new CSR and the parameters of the initial Client certificate. The initial certificate is defined by its order number.

Path parameters

Table 1. /api/smime/v2/replace/order/{orderNumber}
Parameter Description

orderNumber

Order Number of certificate which you are going to replace.

Request fields

Path Type Description Constraints

csr

String

CSR related to new key pair

[Must match the regular expression: [a-zA-Z0-9-+=\/\s]+, Must not be empty, Size must be between 1 and 32767 inclusive]

reason

String

Short message explaining why certificate needs to be replaced

[Must not be empty, Size must be between 1 and 512 inclusive]

revoke

Boolean

Previous certificate will be revoked if true

[Must not be null]

Example request

$ curl 'https://cert-manager.com/api/smime/v2/replace/order/251' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15866' \
    -H 'password: Password123' \
    -H 'customerUri: cst15866' \
    -d '{"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----","reason":"Test","revoke":false}'

Example response

HTTP/1.1 204 No Content

Revoke Client certificate by order number

Sending a request to CA to add the particular Client certificate in certificate revocation list.

Path parameters

Table 1. /api/smime/v1/revoke/order/{orderNumber}
Parameter Description

orderNumber

Order number.

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message explaining why certificate needs to be revoked

[Size must be between 0 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/smime/v1/revoke/order/12345' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15830' \
    -H 'password: Password123' \
    -H 'customerUri: cst15830' \
    -H 'Accept: application/json' \
    -d '{"reasonCode":0,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Revoke Client certificate by serial number

Sending a request to CA to add the Client certificate under the particular serial number in certificate revocation list.

Path parameters

Table 1. /api/smime/v1/revoke/serial/{serialNumber}
Parameter Description

serialNumber

Certificate serial number

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message explaining why certificate needs to be revoked

[Size must be between 0 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/smime/v1/revoke/serial/test:serial' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15838' \
    -H 'password: Password123' \
    -H 'customerUri: cst15838' \
    -H 'Accept: application/json' \
    -d '{"reasonCode":1,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Revoke all Client certificates related to email

Sending a request to CA to add all Client certificates issued for the person with the particular email address in certificate revocation list.

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message explaining why certificate needs to be revoked

[Size must be between 0 and 512 inclusive]

email

String

Person e-mail address

Example request

$ curl 'https://cert-manager.com/api/smime/v1/revoke' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15826' \
    -H 'password: Password123' \
    -H 'customerUri: cst15826' \
    -H 'Accept: application/json' \
    -d '{"reasonCode":0,"reason":"my reason","email":"test@email"}'

Example response

HTTP/1.1 204 No Content

List Client certificates by person ID

A GET request will return list of all Client certificates for a person with given ID.

V2

Path parameters

Table 1. /api/smime/v2/byPersonId/{pid}
Parameter Description

pid

Person ID.

Example request

$ curl 'https://cert-manager.com/api/smime/v2/byPersonId/1' -i -X GET \
    -H 'login: admin_customer15846' \
    -H 'password: Password123' \
    -H 'customerUri: cst15846' \
    -H 'Accept: application/json'

Response body

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"},"serialNumber":"C3:DB:6F:88:E7:20:DF:99:71:70:59:FB:D0:2D:29:B0","orderNumber":12345,"backendCertId":"12345","expires":"2345-06-07"}]

Response fields

Path Type Description

[]

Array

An array of Client certificate properties

[].id

Number

Certificate ID

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

[].state

String

Certificate state

[].orderNumber

Number

Certificate order number

[].serialNumber

String

Certificate serial number

[].backendCertId

String

Certificate ID in enrolling backend

[].expires

String

Certificate expiration date

V1

Path parameters

Table 1. /api/smime/v1/byPersonId/{pid}
Parameter Description

pid

Person ID

Example request

$ curl 'https://cert-manager.com/api/smime/v1/byPersonId/1' -i -X GET \
    -H 'login: admin_customer15818' \
    -H 'password: Password123' \
    -H 'customerUri: cst15818' \
    -H 'Accept: application/json'

Response body

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"}}]

Response fields

Path Type Description

[]

Array

An array of Client certificate properties

[].id

Number

Certificate ID

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

[].state

String

Certificate state

List Client certificates by person email

A GET request will return list of all Client certificates for a person with given email.

V2

Path parameters

Table 1. /api/smime/v2/byPersonEmail/{email}
Parameter Description

email

Person e-mail. Must be formatted as valid e-mail string. Also might need to be properly encoded as required by URL syntax standard. For example, the '@' character should be replaced with the %40 code, '.' - with %2E and so on.

Example request

$ curl 'https://cert-manager.com/api/smime/v2/byPersonEmail/mailbox@domain.com' -i -X GET \
    -H 'login: admin_customer15842' \
    -H 'password: Password123' \
    -H 'customerUri: cst15842' \
    -H 'Accept: application/json'

Response body

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"},"serialNumber":"C3:DB:6F:88:E7:20:DF:99:71:70:59:FB:D0:2D:29:B0","orderNumber":12345,"backendCertId":"12345","expires":"2345-06-07"}]

Response fields

Path Type Description

[]

Array

An array of Client certificate properties

[].id

Number

Certificate ID

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

[].state

String

Certificate state

[].orderNumber

Number

Certificate order number

[].serialNumber

String

Certificate serial number

[].backendCertId

String

Cert ID in enrolling backend

[].expires

String

Certificate expiration date

V1

Path parameters

Table 1. /api/smime/v1/byPersonEmail/{email}
Parameter Description

email

Person e-mail. Must be formatted as valid e-mail string. Also might need to be properly encoded as required by URL syntax standard. For example, the '@' character should be replaced with the %40 code, '.' - with %2E and so on.

Example request

$ curl 'https://cert-manager.com/api/smime/v1/byPersonEmail/mailbox@domain.com' -i -X GET \
    -H 'login: admin_customer15814' \
    -H 'password: Password123' \
    -H 'customerUri: cst15814' \
    -H 'Accept: application/json'

Response body

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"}}]

Response fields

Path Type Description

[]

Array

An array of Client certificate properties

[].id

Number

Certificate ID

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

[].state

String

Certificate state

List Client certificates

A GET request will return list of all Client certificates by filter.

Example request

$ curl 'https://cert-manager.com/api/smime/v2?size=10&position=0&personId=42&keyVault=true&certTypeId=100500&serialNumber=C3DB6F88E720DF99717059FBD02D29B0&backendCertId=12345&email=user%40ccmqa.com' -i -X GET \
    -H 'login: admin_customer15854' \
    -H 'password: Password123' \
    -H 'customerUri: cst15854' \
    -H 'Accept: application/json'

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

keyVault

Certificate Key Vault flag filter

personId

Certificate person ID filter

state

Certificate state filter. Possible values: ', 'blank', 'created', 'requested', 'issued', 'downloaded' - deprecated, 'expired', 'revoked', 'rejected', 'pre_revoked''

certTypeId

Certificate profile ID filter

serialNumber

Certificate serial number filter

backendCertId

Certificate backend ID filter

signatureAlgorithm

Certificate signature algorithm filter

keyAlgorithm

Certificate public key algorithm filter

keyParam

Certificate public key size or curve name filter

keyUsage

Certificate key usage filter

extendedKeyUsage

Certificate extended key usage filter

email

Certificate person email filter

HTTP request

GET /api/smime/v2?size=10&position=0&personId=42&keyVault=true&certTypeId=100500&serialNumber=C3DB6F88E720DF99717059FBD02D29B0&backendCertId=12345&email=user%40ccmqa.com HTTP/1.1
login: admin_customer15854
password: Password123
customerUri: cst15854
Accept: application/json
Host: cert-manager.com

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 216

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"},"serialNumber":"C3:DB:6F:88:E7:20:DF:99:71:70:59:FB:D0:2D:29:B0","orderNumber":12345,"backendCertId":"12345","expires":"2345-06-07"}]

Response body

[{"id":1,"state":"issued","certificateDetails":{"subject":"S/MIME Subject string"},"serialNumber":"C3:DB:6F:88:E7:20:DF:99:71:70:59:FB:D0:2D:29:B0","orderNumber":12345,"backendCertId":"12345","expires":"2345-06-07"}]

Response fields

Path Type Description

[]

Array

An array of Client certificate properties

[].id

Number

Certificate ID

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

[].state

String

Certificate state

[].orderNumber

Number

Certificate order number

[].serialNumber

String

Certificate serial number

[].backendCertId

String

Certificate ID in enrolling backend

[].expires

String

Certificate expiration date

Response headers

Name Description

X-Total-Count

Contains total number of client certificates available according to the filtering applied

Count Client certificates

A HEAD request will return count of all device certificates by filter.

Example request

$ curl 'https://cert-manager.com/api/smime/v2?personId=42&keyVault=true&certTypeId=100500&serialNumber=C3DB6F88E720DF99717059FBD02D29B0' -i -X HEAD \
    -H 'login: admin_customer15850' \
    -H 'password: Password123' \
    -H 'customerUri: cst15850' \
    -H 'Accept: application/json'

Request parameters

Parameter Description

keyVault

Certificate Key Vault flag filter

personId

Certificate person ID filter

state

Certificate state filter. Possible values: ', 'blank', 'created', 'requested', 'issued', 'downloaded' - deprecated, 'expired', 'revoked', 'rejected', 'pre_revoked''

certTypeId

Certificate profile ID filter

serialNumber

Certificate serial number filter

backendCertId

Certificate backend ID filter

signatureAlgorithm

Certificate signature algorithm filter

keyAlgorithm

Certificate public key algorithm filter

keyParam

Certificate public key size or curve name filter

keyUsage

Certificate key usage filter

extendedKeyUsage

Certificate extended key usage filter

email

Certificate person email filter

HTTP request

HEAD /api/smime/v2?personId=42&keyVault=true&certTypeId=100500&serialNumber=C3DB6F88E720DF99717059FBD02D29B0 HTTP/1.1
login: admin_customer15850
password: Password123
customerUri: cst15850
Accept: application/json
Host: cert-manager.com

Example response

HTTP/1.1 200 OK
X-Total-Count: 1

Response headers

Name Description

X-Total-Count

Contains total number of client certificates available according to the filtering applied

Device Certificates

Device resource is used to perform operation on certificates that are issued to devices.

Device Certificate Profiles

List all Device Certificate Profiles. Previously known as a certificate type.

Response fields

Path Type Description

[]

Array

An array of available certificate profiles

[].id

Number

Certificate Profile ID

[].name

String

Certificate Profile name

[].description

String

Certificate Profile description

[].term

Number

First available term (in days) for the Certificate Profile

[].useSecondaryOrgName

Boolean

Use secondary organization name

[].terms

Array

Terms (in days) available for the Certificate Profile

[].keyTypes

Object

Key types available for the Certificate Profile

[].ku[]

Array

Key Usages available for the Certificate Profile

[].eku[]

Array

Extended Key Usages available for the Certificate Profile

Example request

$ curl 'https://cert-manager.com/api/device/v1/types?organizationId=379' -i -X GET \
    -H 'login: admin_customer13662' \
    -H 'password: Password123' \
    -H 'customerUri: cst13662' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 247

[{"id":1034,"name":"Device cert SASP 859265331","description":"Device cert SASP 1304544562","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false,"term":365,"ku":["Digital Signature","Non repudiation"],"eku":["1.3.6.1.5.5.7.3.2"]}]

Custom fields for Device certificate

Special fields that enable the administrator to add their own identification reference(s) on the Device certificates requested through SCM.

Response fields

Path Type Description

[]

Array

An array of custom fields

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatory

Boolean

Is field mandatory

Example request

$ curl 'https://cert-manager.com/api/device/v1/customFields' -i -X GET \
    -H 'login: admin_customer13667' \
    -H 'password: Password123' \
    -H 'customerUri: cst13667' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 46

[{"id":56,"name":"testName","mandatory":true}]

Enroll Device certificate

Creation and submission of a request for a new Device certificate.

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

'Must be at least 1,Must not be null'

csr

String

Certificate signing request

'Must match the regular expression: [a-zA-Z0-9-+=\/\s]+,Must not be empty,Size must be between 1 and 32767 inclusive'

certType

Number

Certificate Profile ID

'Must be at least 1,Must not be null'

term

Number

Certificate validity period in days

'Must be at least 1'

customFields[]

Array

Custom fields to be applied to requested certificate. Must contain mandatory custom fields.

customFields[].name

String

Name of an enabled custom field.

[]

customFields[].value

String

Value of the custom field.

[]

optionalFields[]

Array

Optional fields to be applied to requested certificate

[]

optionalFields[].name

String

Name of supported optional field.

Must be one of the following values: [commonName, surname, countryName, localityName, stateOrProvinceName, streetAddress, organizationName, organizationalUnitName, title, description, postalCode, postOfficeBox, telephoneNumber, givenName, initials, emailAddress, DocumentoNacionaldeIdentidad, serialNumber, SIRENE, collectionEmailAddress, rfc822Name, subjectUniqueIdentifier, uniqueIdentifier, PermIdAscentMediaNetSecDept, PermIdAscentMediaEngHomeNet, sAMAccountName, userId, userPrincipalName, unstructuredName, domainComponent, dnsName, servicePrincipalName]

optionalFields[].value

String

Value of the optional field.

[]

Response fields

Path Type Description

orderNumber

Number

Obsolete parameter for the order identifier under which the certificate request has been processed. BackendCertId should be used instead.

backendCertId

String

Cert ID in enrolling backend

Example request

$ curl 'https://cert-manager.com/api/device/v1/enroll' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13652' \
    -H 'password: Password123' \
    -H 'customerUri: cst13652' \
    -d '{"orgId":373,"term":1031,"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----","certType":1031,"customFields":[{"name":"custom field","value":"custom field value"}],"optionalFields":[{"name":"commonName","value":"test.example.com"}]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"orderNumber":13656,"backendCertId":"13656"}

Collect Device certificate

Delivering the newly issued Device certificate from CA to the administrator for download.

Path parameters

Table 1. /api/device/v1/collect/{orderNumber}
Parameter Description

orderNumber

Certificate ID

Request parameters

Parameter Description

format

Format type name for certificate. If not specified, PKCS#7 Base64 encoded is default. Allowed values: 'x509' - for Certificate (w/ chain), PEM encoded, 'x509CO' - for Certificate only, PEM encoded, 'base64' - for PKCS#7, PEM encoded, 'bin' - for PKCS#7, 'x509IO' - for Root/Intermediate(s) only, PEM encoded, 'x509IOR' - for Intermediate(s)/Root only, PEM encoded, 'pem' - for Certificate (w/ chain), PEM encoded, 'pemco' - for Certificate only, PEM encoded, 'pemia' - for Certificate (w/ issuer after), PEM encoded, 'x509R' - for Certificate (w/ chain), PEM encoded, 'pkcs12' - for Certificate and Private key, PKCS#12

Example request

$ curl 'https://cert-manager.com/api/device/v1/collect/132132?format=base64' -i -X GET \
    -H 'login: admin_customer13632' \
    -H 'password: Password123' \
    -H 'customerUri: cst13632'

Example response

HTTP/1.1 200 OK
Content-Length: 3218
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="test.cert"

-----BEGIN PKCS7-----
MIIJJQYJKoZIhvcNAQcCoIIJFjCCCRICAQExADALBgkqhkiG9w0BBwGgggj6MIIF
HjCCBAagAwIBAgIQBXQwB2XNLnzRqXF67yXetTANBgkqhkiG9w0BAQsFADCBgzEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKTAnBgNVBAMT
IFRlc3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE3MTEyNzAwMDAw
MFoXDTE4MTEyNzIzNTk1OVowaTELMAkGA1UECxMCSVQxFzAVBgNVBAoTDk15Q29t
cGFueSBMdGQuMQ4wDAYDVQQIEwVZb3JrczENMAsGA1UEBxMEWW9yazELMAkGA1UE
BhMCR0IxFTATBgNVBAMTDHR0LmNjbXFhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMjaijCapexR3eiRTcRrJNF3jqF9msby8qRvDHK5MNJ3WMQU
HgtcxSVRItBBV9M0GM2agG/+zOCvez71n2IfMoqqouZRfBsw7DMqnVMGQVYhBfVE
Mr2fsP0BGk1SdGaoZYgACKUkjc7MbdESyJhmEvEYIBpdVHzqDU2dJ2Op1t2G7Kpb
rzpRupMqmuQybGqJlidnicFf9irDcqd22Koih9TjfKM/4ZYMCBs3fv0bZVyM9Alh
lOEMFj1ytmcGLHa5ojnX1lLT4xjZNFaJJv9ZwNYAA+YkE29q7uJZINPcTf+CfqUe
UEWdq5cBiAPoPMrtsHimfLEvf3UmRxKhzNYEv6kCAwEAAaOCAaUwggGhMB8GA1Ud
IwQYMBaAFIaGHcsGJX0nAVdr5Wo40OREr5MyMB0GA1UdDgQWBBTXOsPzzx5rZ2/g
MmTvN+0y0Ys3XTAOBgNVHQ8BAf8EBAMCA/gwDAYDVR0TAQH/BAIwADAdBgNVHSUE
FjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwEQYJYIZIAYb4QgEBBAQDAgWgMEYGA1Ud
IAQ/MD0wOwYMKwYBBAGyMQECAQMFMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2Vj
dXJlLmNvbW9kby5uZXQvQ1BTMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly9jcmwu
Y29tb2RvY2EuY29tL1Rlc3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB7
BggrBgEFBQcBAQRvMG0wRQYIKwYBBQUHMAKGOWh0dHA6Ly9jcnQuY29tb2RvY2Eu
Y29tL1Rlc3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNydDAkBggrBgEFBQcw
AYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQAA
AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8w
MTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9g
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+Q
kZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/A
wcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w
8fLz9PX29/j5+vv8/f7/MIID1DCCArygAwIBAgIQHpFpjHVf56b6C+OC9siGTDAN
BgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIg
TWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENB
IExpbWl0ZWQxKTAnBgNVBAMTIFRlc3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MB4XDTE0MDEwMTAwMDAwMFoXDTMwMTIzMTIzNTk1OVowgYMxCzAJBgNVBAYT
AkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZv
cmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSkwJwYDVQQDEyBUZXN0IFJT
QSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAL/ZSIMZBY4Ifq5oXcdSPDa5ArrYahP4qhO9aES9jT7TEr5tpNIQ
QP044h+3MGc7Cgf17OYSqpd4WvvhgUCkc8XDda3JgKEgCaHfnjgynBtXk6JP8stM
IuKPZS9WcEQSKB7JPOnjaHdBkLRfbuSu0y7he9IoibiSCIU5mJ8T6QNd5wEWBp4j
gRQWnLBXtJENtCzcU5j2sPh0gZUFjlu1V3Cc8JUENzDpMpjtxNYHtbL68BFXcWvy
7hrqnE4eNM5K3DfEacdrvFgIQNfCMc4KEh2DFzDoCZpchDLhVGrYrTObG4D/RR0o
T2QuFqbaiatLcG/armNUgb+4VH1R/HOQaf0CAwEAAaNCMEAwHQYDVR0OBBYEFIaG
HcsGJX0nAVdr5Wo40OREr5MyMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTAD
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCeQAWeNNtsKuUt5V9JifMy2AduOcK7lndh
M24L8KG86o7aoye1QDqMfFmUrFo7nDVno6G013PnRo97BcrVPoMVB66TP5LywOrL
rVoiIF9I5OD4BrtgvrRtlT3iMZwxjzU19lgEcLs+sJZhug2eDKAjp0PaJ40Wg5sn
o3CRq/urYgtIAiFdxgMBefK0Ejivos5RLDzmHjA/Wo+jFMfXvdP6RxVmz7Nxfcws
I+sOSWmb60dZlaC1yVZ0PbD2DFj7yEnW94p86d7Thmv6ksaqbOeWdJErnYJkqXPB
0wSazHQeQHjWp91j4ZwlYRhZQfovwiRi601iWNNE7hPrMb87FkvyMQA=
-----END PKCS7-----

Revoke Device certificate by order number

Sending a request to CA to add the Device certificate under the particular order number to certificate revocation list.

Path parameters

Table 1. /api/device/v1/revoke/order/{orderNumber}
Parameter Description

orderNumber

Certificate Order Number

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message explaining why certificate needs to be revoked

[Size must be between 0 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/device/v1/revoke/order/125546' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13724' \
    -H 'password: Password123' \
    -H 'customerUri: cst13724' \
    -d '{"reasonCode":4,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Revoke Device certificate by serial number

Sending a request to CA to add the Device certificate under the particular serial number to certificate revocation list.

Path parameters

Table 1. /api/device/v1/revoke/serial/{serialNumber}
Parameter Description

serialNumber

Certificate Serial Number

Request fields

Path Type Description Constraints

reasonCode

Number

Revocation reason code to be put to CRL (Mozilla Root Store Policy 2.8 section 6.1.1)

Reason code (unspecified (0), keyCompromise (1), affiliationChanged (3), superseded (4), cessationOfOperation (5))

[Allowed ranges 0,1 and 3-5]

reason

String

Short message explaining why certificate needs to be revoked

[Size must be between 0 and 512 inclusive]

Example request

$ curl 'https://cert-manager.com/api/device/v1/revoke/serial/A7:35:E0:9A:D6:D1:C0:CC:56:EA:6C:D0:E3:97:B6:D9' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13739' \
    -H 'password: Password123' \
    -H 'customerUri: cst13739' \
    -d '{"reasonCode":4,"reason":"my reason"}'

Example response

HTTP/1.1 204 No Content

Renew Device certificate by order number

Submission of a request for a new Device certificate using the CSR and parameters of the initial Device certificate. The initial certificate is defined by its order number.

Path parameters

Table 1. /api/device/v1/renew/order/{orderNumber}
Parameter Description

orderNumber

Order Number of certificate which you are going to renew.

Example request

$ curl 'https://cert-manager.com/api/device/v1/renew/order/12345' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13677' \
    -H 'password: Password123' \
    -H 'customerUri: cst13677'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"orderNumber":13681,"backendCertId":"13681"}

Renew Device certificate by serial number

Submission of a request for a new Device certificate using the CSR and parameters of the initial Device certificate. The initial certificate is defined by its serial number.

Path parameters

Table 1. /api/device/v1/renew/serial/{serialNumber}
Parameter Description

serialNumber

Serial Number of certificate which you are going to renew.

Example request

$ curl 'https://cert-manager.com/api/device/v1/renew/serial/A7:35:E0:9A:D6:D1:C0:CC:56:EA:6C:D0:E3:97:B6:D9' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13704' \
    -H 'password: Password123' \
    -H 'customerUri: cst13704'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"orderNumber":13708,"backendCertId":"13708"}

Replace Device certificate by order number

Submission of a request for a replace of a Device certificate using new CSR and the parameters of the initial Device certificate. The initial certificate is defined by its order number.

Path parameters

Table 1. /api/device/v1/replace/order/{orderNumber}
Parameter Description

orderNumber

Order Number of certificate which you are going to replace.

Request fields

Path Type Description Constraints

csr

String

Certificate signing request related to new key pair

[Must match the regular expression: [a-zA-Z0-9-+=\/\s]+, Must not be empty, Size must be between 1 and 32767 inclusive]

reason

String

Short message explaining why certificate needs to be replaced

[Must not be empty, Size must be between 1 and 512 inclusive]

revoke

Boolean

Previous certificate will be revoked if true

[Must not be null]

Example request

$ curl 'https://cert-manager.com/api/device/v1/replace/order/252' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13714' \
    -H 'password: Password123' \
    -H 'customerUri: cst13714' \
    -d '{"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIIC4jCCAcoCAQAwdDELMAkGA1UEBhMCVUExDTALBgNVBAgTBHRlc3QxDTALBgNV\nBAcTBHRlc3QxDTALBgNVBAoTBHRlc3QxDTALBgNVBAsTBHRlc3QxEjAQBgNVBAMT\nCWNjbXFhLmNvbTEVMBMGCSqGSIb3DQEJARYGdGVzdEB0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAul8SGkicOnrMjJDvgG8P2j1Ee5hY6ww+qSoe0oI2\ntvRcLBknPHMMAkxTjW9fy80wD8hyrnc+IGlQcq2R/tEMIJHRsJD603M+2FjAwlP9\n8xtiqv0hMyHO4fEt+HMyy8Q367aTBmnZCuAxJZJapfFW9wH5jGZxuX8mnrXVsBTD\n4ZBO4UFd9P4u8P0nJx80CiuDt4COSDl6Br4pNLciPVqfwj7LQ5/skwPkNCggk3/G\nxoQX/3FV7O4fC6WCxVP1uYjJVQjlD1Tf06hPNfonVfThVuP20OL3QAlnIF3lZiyY\nJ5etdFtu+BKcPNMdQDJOS/O4Zz0YJn6K2HdAXSc1YxYniwIDAQABoCkwJwYJKoZI\nhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAVJVTTELGHWoRh8JZt+kx/zO0VnibBq/D6uB405L+Ir80X48Ei9hTLB11\nAqhSBE+AbEgBhRnEIDBjiXEDcWvC532Omex721kc17ZTzowuD8lOjfQkTHbAmjIi\nnCQNFAPf0D/zpi6Eync5pi2P//Uj/Yn7oDYYli1t61EZwuQyEu4mbQ1efUnU/SOl\nAAQtDPhNwATZPmfefjM8+YuzhG70dQvmFAClcFayKM92Zx9khDd/VnLT85YzDULJ\n8iiHW8dZNblaTsUjKrc73iX2hONZIxw6B3tGCFs8mH9lZlExV7Y2er3t/lO1pdxe\nSUohEELWcttIxyWnYgxvwaWX4lfx9A==\n-----END CERTIFICATE REQUEST-----","reason":"Test","revoke":false}'

Example response

HTTP/1.1 204 No Content

Get list of device certificates

Enables the administrator to get list of existing device certificates.

Example request

$ curl 'https://cert-manager.com/api/device/v1?size=10&position=0&commonName=34356576543tnl54hgnu49u90g&email=Someone%40nobody.comodo.od.ua&status=APPROVED&certTypeId=1036' -i -X GET \
    -H 'login: admin_customer13672' \
    -H 'password: Password123' \
    -H 'customerUri: cst13672'

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

commonName

Certificate common name filter

email

Certificate requester email filter

status

Certificate status filter. Possible values: ', 'AWAITING_APPROVAL', 'APPROVED', 'DECLINED', 'APPLIED', 'ISSUED', 'DOWNLOADED' - deprecated, 'EXPIRED', 'REVOKED', 'REJECTED''

orgId

Certificate organization ID filter

certTypeId

Certificate profile ID filter

serialNumber

Certificate serial number filter

backendCertId

Certificate backend ID filter

signatureAlgorithm

Certificate signature algorithm filter

keyAlgorithm

Certificate public key algorithm filter

keyParam

Certificate public key size or curve name filter

keyUsage

Certificate key usage filter

extendedKeyUsage

Certificate extended key Usage filter

HTTP request

GET /api/device/v1?size=10&position=0&commonName=34356576543tnl54hgnu49u90g&email=Someone%40nobody.comodo.od.ua&status=APPROVED&certTypeId=1036 HTTP/1.1
login: admin_customer13672
password: Password123
customerUri: cst13672
Host: cert-manager.com

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 154

[{"id":76,"status":"APPROVED","backendCertId":"13676","certificateDetails":{"subject":"C=UA,ST=Odessa,L=Odessa,O=Test,OU=Test,CN=Test,E=test@test.test"}}]

Response body

[{"id":76,"status":"APPROVED","backendCertId":"13676","certificateDetails":{"subject":"C=UA,ST=Odessa,L=Odessa,O=Test,OU=Test,CN=Test,E=test@test.test"}}]

Response fields

Path Type Description

[]

Array

Array of requested device certificates

[].id

Number

Certificate ID

[].backendCertId

String

Certificate ID in enrolling backend

[].status

String

Certificate status

[].certificateDetails

Object

Certificate details

[].certificateDetails.issuer

String

The subject of the issuing CA certificate

[].certificateDetails.subject

String

The subject of CA certificate

[].certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

[].certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

[].certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

Response headers

Name Description

X-Total-Count

Contains total number of device certificates available according to the filtering applied

Get count of device certificates

Enables the administrator to get count of existing device certificates.

Example request

$ curl 'https://cert-manager.com/api/device/v1?commonName=34356576543tnl54hgnu49u90g&orgId=372&status=APPROVED' -i -X HEAD \
    -H 'login: admin_customer13647' \
    -H 'password: Password123' \
    -H 'customerUri: cst13647'

Request parameters

Parameter Description

commonName

Certificate common name filter

email

Certificate requester email filter

status

Certificate status filter. Possible values: ', 'AWAITING_APPROVAL', 'APPROVED', 'DECLINED', 'APPLIED', 'ISSUED', 'DOWNLOADED' - deprecated, 'EXPIRED', 'REVOKED', 'REJECTED''

orgId

Certificate organization ID filter

certTypeId

Certificate profile ID filter

serialNumber

Certificate serial number filter

backendCertId

Backend certificate ID filter

signatureAlgorithm

Certificate signature algorithm filter

keyAlgorithm

Certificate public key algorithm filter

keyParam

Certificate public key size or curve name filter

keyUsage

Certificate key usage filter

extendedKeyUsage

Certificate extended key Usage filter

HTTP request

HEAD /api/device/v1?commonName=34356576543tnl54hgnu49u90g&orgId=372&status=APPROVED HTTP/1.1
login: admin_customer13647
password: Password123
customerUri: cst13647
Host: cert-manager.com

Example response

HTTP/1.1 200 OK
X-Total-Count: 1

Response headers

Name Description

X-Total-Count

Contains total number of device certificates available according to the filtering applied

Get details of device certificate

Enables the administrator to get details of existing device certificate.

Example request

$ curl 'https://cert-manager.com/api/device/v1/67' -i -X GET \
    -H 'login: admin_customer13627' \
    -H 'password: Password123' \
    -H 'customerUri: cst13627'

HTTP request

GET /api/device/v1/67 HTTP/1.1
login: admin_customer13627
password: Password123
customerUri: cst13627
Host: cert-manager.com

Path parameters

Table 1. /api/device/v1/{deviceCertId}
Parameter Description

deviceCertId

Certificate ID.

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 541

{"commonName":"34356576543tnl54hgnu49u90g","id":67,"orgId":360,"status":"Approved","orderNumber":13631,"backendCertId":"13631","certType":{"id":1026,"name":"Test device type","description":"Device cert profile","terms":[365],"keyTypes":{"RSA":["2048"]},"useSecondaryOrgName":false},"term":365,"requester":"Someone@nobody.comodo.od.ua","requested":"03/07/2023","expires":"03/06/2024","keyAlgorithm":"RSA","keySize":2048,"keyType":"RSA - 2048","certificateDetails":{"subject":"C=UA,ST=Odessa,L=Odessa,O=Test,OU=Test,CN=Test,E=test@test.test"}}

Response fields

Path Type Description

commonName

String

Certificate common name

id

Number

An ID using which this certificate can be revoked through Enrollment form

orgId

Number

An organization which this certificate is associated with

status

String

The status of this certificate

orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

backendCertId

String

Certificate ID in enrolling backend

certType

Object

Information about Certificate Profile this certificate was enrolled from

certType.id

Number

Certificate Profile ID

certType.useSecondaryOrgName

Boolean

Use secondary organization name

certType.name

String

Certificate Profile name

certType.description

String

Certificate Profile description

certType.terms

Array

Terms (in days) available for the Certificate Profile

certType.keyTypes

Object

Key types available for the Certificate Profile

term

Number

Term (days)

owner

String

The approver of the request for this certificate

requester

String

Requester

requested

String

Requested date

approved

String

Approved date

expires

String

Expiration date

keyAlgorithm

String

Key algorithm (deprecated, see "keyType")

keySize

Number

Key size (deprecated, see "keyType")

keyType

String

Key type. For example: RSA - 2048, EC - P-256.

serialNumber

String

SSL Serial Number

customFields.[]

Array

Custom fields

customFields.[].name

String

Custom field name

customFields.[].value

String

Custom field value

certificateDetails

Object

Certificate details

certificateDetails.issuer

String

The subject of the issuing CA certificate

certificateDetails.subject

String

The subject of CA certificate

certificateDetails.subjectAltNames

String

The subject alternative names of the issuing CA certificate

certificateDetails.md5Hash

String

The MD5 fingerprint of CA certificate

certificateDetails.sha1Hash

String

The SHA1 fingerprint of CA certificate

Code Signing on Demand

The Code Signing on Demand (CSoD) API integrates the CSoD service and automation systems (such as Jenkins, TeamCity, Puppet, PerlScript) to provide an end-to-end, automated code signing platform.

Code signing requests are submitted by developers and approved by administrators. The code signing request must first be created, the files uploaded and the request submitted. The request needs to be approved by an administrator. Once approved, the request is completed automatically and the digitally signed files can be downloaded.

In addition to complete files it is possible to just sign hashes. Place the hash in a file with an md5 or sha extension and specify the HASH_SUM siging type when creating the request.

Developer resources

A developer is a special type of user allowed to use the CsoD service to digitally sign files. These API methods require the Developer Login authentication style.

Create code signing request

The code signing request must first be created by a developer. The creation returns a request ID and an URL to upload the file to be signed.

Request fields
Path Type Description Constraints

organizationId

Number

Organization ID

version

String

A free form field that can be used to provide file verson information if required

Should not be empty

algorithms

String

Hashing algorithm to use. Multiple comma separated values are possible if the file signing type supports it

Supported values are: MD5, SHA1, SHA256, SHA384, SHA512

signingType

String

Type of file(s) to sign. All uploaded files must be of the same type

Supported values are: MICROSOFT_AUTHENTICODE, JAVA, MICROSOFT_OFFICE_AND_VBA, WINDOWS_PHONE_AND_XBOX, ANDROID, HASH_SUM, POWERSHELL

Response fields
Path Type Description

requestId

Number

ID for created request

uploadUrl

String

URL to upload files for signing

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/developer' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'email: test@email' \
    -H 'password: 123' \
    -H 'customerUri: cst13380' \
    -d '{"organizationId":224,"version":"1","algorithms":"sha384","signingType":"java"}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 96

{"requestId":5,"uploadUrl":"https://host:123/path?token=U6K3AMSCCGKUDL48OTEBGBOING&requestId=5"}
Additional notes

Certificate Manager 19.10 contains a bug in that the uploadUrl response field is incorrect. The URL needs to have the requestId added as a URL parameter. Look at the Example response above.

Upload files

The files to be digitally signed must be uploaded to the URL returned when the code signing request was created. The upload takes the form of a POST with a multipart/form-data content type. If uploading multiple files, the keys just need to be unique, i.e. file1, file2.

Example request
$ curl -F 'file1=@filename' https://agenthost/path?token=L1P1J62D3ALTVB67M511T5CL73&requestId=5
Example response
HTTP/1.1 204 No Content
Additional Notes

The hosted code signing agent by default will use a self-signed certificate so the upload may require extra handling. For example if using curl you can specify the --insecure flag.

Submit signing request

After the files have been uploaded the signing request is submitted. The request must then be approved by before it is completed. Requests are approved by an administrator.

Request fields
Path Type Description Constraints

requestId

Number

Request ID returned when request created

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/developer' -i -X PUT \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'email: test@email' \
    -H 'password: 123' \
    -H 'customerUri: cst13416' \
    -d '{"requestId":1}'
Example response
HTTP/1.1 204 No Content

Get code signing request count

Enables the developer to get the number of code signing requests created by them.

Response fields
Path Type Description

count

Number

Requests count

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/developer/count' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'email: test@email' \
    -H 'password: 123' \
    -H 'customerUri: cst13376'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 11

{"count":1}

Get list of submitted requests

Enables the developer to get the code signing requests IDs created by them.

Response fields
Path Type Description

[]

Array

Array of request IDs

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/developer/?size=1&position=10' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'email: test@email' \
    -H 'password: 123' \
    -H 'customerUri: cst13412'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3

[2]

Get code signing request details

Enables the developer to get the code signing requests IDs created by them.

Response fields
Path Type Description

developerEmail

String

Developer email address

organization

String

Organization name

department

String

Department name. Optional

approver

String

Name of the person who approved operation

version

String

Value provided when creating request

signingService

String

Type of file(s), possible values are: MICROSOFT_AUTHENTICODE, JAVA, MICROSOFT_OFFICE_AND_VBA, WINDOWS_PHONE_AND_XBOX, ANDROID, HASH_SUM, POWERSHELL

created

String

Creation date

state

String

State of request, posible values are: INIT, CREATED, IN_PROGRESS, DECLINED, SIGNED, EXPIRED, FAILED

digestAlgorithms[]

Array

Array of applied hash algorithms

files[]

Array

Array of signed files

files[].name

String

File name

files[].downloadUrl

String

URL to download the digitally signed file from. The process of downloading does involve a redirect to the code signing agent

files[].size

Number

File size

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/developer/1' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'email: test@email' \
    -H 'password: 123' \
    -H 'customerUri: cst13404'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 358

{"developerEmail":"test@email","organization":"org4Test","approver":"test ","version":"1","digestAlgorithms":["SHA256"],"signingService":"MICROSOFT_AUTHENTICODE","created":"03/07/2023 20:05:42 GMT","state":"SIGNED","files":[{"name":"test.msi","downloadUrl":"https://cert-manager.com/customer/cst13404/csfile/69d026b4-742a-49e6-8cfb-b808348c1d6b","size":10}]}

Administrator resources

An administrator is a Certificate Manager user with privileges to approve code signing requests.

Approve code signing request

Enables the administrators to permit execution of the developer’s code signing request.

Request fields
Path Type Description Constraints

requestId

Number

Request ID to be approved

comment

String

Short message about approval

None

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/admin/approve' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13364' \
    -H 'password: Password123' \
    -H 'customerUri: cst13364' \
    -d '{"requestId":1,"comment":"Test"}'
Example response
HTTP/1.1 204 No Content

Decline code signing request

Enables the administrators to decline execution of the developer’s code signing request.

Request fields
Path Type Description Constraints

requestId

Number

Request ID to be declined

comment

String

Short message about decline

None

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/admin/decline' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13388' \
    -H 'password: Password123' \
    -H 'customerUri: cst13388' \
    -d '{"requestId":1,"comment":"Test"}'
Example response
HTTP/1.1 204 No Content

Get code signing request count

Enables the administrator to get the number of the code signing requests submitted and assigned to the organization(s) or department(s) that are delegated to them.

Response fields
Path Type Description

count

Number

Requests count

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/admin/count' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13372' \
    -H 'password: Password123' \
    -H 'customerUri: cst13372'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 11

{"count":2}

Get list of submitted requests

Enables the administrator to get the code signing requests IDs submitted and assigned to the organization(s) or department(s) that are delegated to them.

Response fields
Path Type Description

[]

Array

Array of request IDs

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/admin/?size=1&position=10' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13408' \
    -H 'password: Password123' \
    -H 'customerUri: cst13408'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 5

[2,3]

Get code signing request details

Enables the administrator to get the code signing request details by its ID.

Response fields
Path Type Description

developerEmail

String

Developer email address

organization

String

Organization name

department

String

Department name. Optional

approver

String

Name of the person who approved operation

version

String

Value provided when creating request

signingService

String

Type of file(s), possible values are: MICROSOFT_AUTHENTICODE, JAVA, MICROSOFT_OFFICE_AND_VBA, WINDOWS_PHONE_AND_XBOX, ANDROID, HASH_SUM, POWERSHELL

created

String

Creation date

state

String

State of request, posible values are: INIT, CREATED, IN_PROGRESS, DECLINED, SIGNED, EXPIRED, FAILED

digestAlgorithms[]

Array

Array of applied hash algorithms

files[]

Array

Array of signed files

files[].name

String

File name

files[].downloadUrl

String

URL to download the digitally signed file from. The process of downloading does involve a redirect to the code signing agent

files[].size

Number

File size

Example request
$ curl 'https://cert-manager.com/api/csod/v1/requests/admin/1' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13400' \
    -H 'password: Password123' \
    -H 'customerUri: cst13400'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 358

{"developerEmail":"test@email","organization":"org4Test","approver":"test ","version":"1","digestAlgorithms":["SHA256"],"signingService":"MICROSOFT_AUTHENTICODE","created":"03/07/2023 20:05:42 GMT","state":"SIGNED","files":[{"name":"test.msi","downloadUrl":"https://cert-manager.com/customer/cst13400/csfile/69d026b4-742a-49e6-8cfb-b808348c1d6b","size":10}]}

Domain control validation resource

Any domain added to SCM must pass Domain Control Validation (DCV) before Sectigo can issue certificates to it. DCV is a procedure of validation of the Applicant’s control of the domain which needs to appear in the subject of the certificate. This resource is used to perform DCV.

Start validation HTTP

Start Domain Control Validation using HTTP method.

Response fields

Path Type Description

url

String

URL

firstLine

String

First line

secondLine

String

Second line

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/start/domain/http' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16470' \
    -H 'password: Password123' \
    -H 'customerUri: cst16470' \
    -d '{"domain":"ccmqa.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 196

{"url":"http://ccmqa.com/.well-known/pki-validation/89AE81C40CE8BCD629A9955DAB0CA31E.txt","firstLine":"464ed6ba4fde47b757d6d719155d161d7880131484cb9bc639291c61110c50ff","secondLine":"sectigo.com"}

Start validation HTTPS

Start Domain Control Validation using HTTPS method.

Response fields

Path Type Description

url

String

URL

firstLine

String

First line

secondLine

String

Second line

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/start/domain/https' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16478' \
    -H 'password: Password123' \
    -H 'customerUri: cst16478' \
    -d '{"domain":"ccmqa.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 197

{"url":"https://ccmqa.com/.well-known/pki-validation/89AE81C40CE8BCD629A9955DAB0CA31E.txt","firstLine":"464ed6ba4fde47b757d6d719155d161d7880131484cb9bc639291c61110c50ff","secondLine":"sectigo.com"}

Start validation CName

Start Domain Control Validation using CName method.

Response fields

Path Type Description

host

String

Host

point

String

Point

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/start/domain/cname' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16454' \
    -H 'password: Password123' \
    -H 'customerUri: cst16454' \
    -d '{"domain":"ccmqa.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 144

{"host":"_89ae81c40ce8bcd629a9955dab0ca31e.ccmqa.com.","point":"464ed6ba4fde47b757d6d719155d161d.7880131484cb9bc639291c61110c50ff.sectigo.com."}

Start validation email

Start Domain Control Validation using Email method.

Response fields

Path Type Description

emails[]

Array

Array of e-mails

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/start/domain/email' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16462' \
    -H 'password: Password123' \
    -H 'customerUri: cst16462' \
    -d '{"domain":"ccmqa.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 155

{"emails":["admin@ccmqa.com","administrator@ccmqa.com","hostmaster@ccmqa.com","postmaster@ccmqa.com","webmaster@ccmqa.com","domain-admin@comodogroup.com"]}

Submit validation HTTP

Submit a request for Domain Control Validation using HTTP method.

Request fields

Path Type Description Constraints

domain

String

Domain to validate

[Must not be empty, Size must be between 0 and 255 inclusive]

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/submit/domain/http' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16470' \
    -H 'password: Password123' \
    -H 'customerUri: cst16470' \
    -d '{"domain":"ccmqa.com"}'

Response fields

Path Type Description

orderStatus

String

Order status

message

String

Message

status

String

Status

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

{"status":"VALIDATED","orderStatus":"SUBMITTED","message":"Submitted successfully"}

Submit validation HTTPS

Submit a request for Domain Control Validation using HTTPS method.

Request fields

Path Type Description Constraints

domain

String

Domain to validate

[Must not be empty, Size must be between 0 and 255 inclusive]

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/submit/domain/https' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16478' \
    -H 'password: Password123' \
    -H 'customerUri: cst16478' \
    -d '{"domain":"ccmqa.com"}'

Response fields

Path Type Description

orderStatus

String

Order status

message

String

Message

status

String

Status

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

{"status":"VALIDATED","orderStatus":"SUBMITTED","message":"Submitted successfully"}

Submit validation CName

Submit a request for Domain Control Validation using CName method.

Request fields

Path Type Description Constraints

domain

String

Domain to validate

[Must not be empty, Size must be between 0 and 255 inclusive]

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/submit/domain/cname' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16454' \
    -H 'password: Password123' \
    -H 'customerUri: cst16454' \
    -d '{"domain":"ccmqa.com"}'

Response fields

Path Type Description

orderStatus

String

Order status

message

String

Message

status

String

Status

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

{"status":"VALIDATED","orderStatus":"SUBMITTED","message":"Submitted successfully"}

Submit validation email

Submit a request for Domain Control Validation using Email method.

Request fields

Path Type Description Constraints

domain

String

Domain to validate

[Must not be empty, Size must be between 0 and 255 inclusive]

email

String

E-mail

[Must be a well-formed email address, Must not be empty]

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/submit/domain/email' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16462' \
    -H 'password: Password123' \
    -H 'customerUri: cst16462' \
    -d '{"domain":"ccmqa.com","email":"email@ccmqa.com"}'

Response fields

Path Type Description

orderStatus

String

Order status

message

String

Message

status

String

Status

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

{"status":"VALIDATED","orderStatus":"SUBMITTED","message":"Submitted successfully"}

Get validation status

Obtain the result of Domain Control Validation procedure as a validation status of the subject domain.

V2

Request fields

Path Type Description Constraints

domain

String

Domain which status is requested

[Must not be empty, Size must be between 0 and 255 inclusive]

HTTP request

POST /api/dcv/v2/validation/status HTTP/1.1
Content-Type: application/json;charset=utf-8
login: admin_customer16486
password: Password123
customerUri: cst16486
Accept: application/json
Content-Length: 23
Host: cert-manager.com

{"domain":"ccmdev.com"}

Example request

$ curl 'https://cert-manager.com/api/dcv/v2/validation/status' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16486' \
    -H 'password: Password123' \
    -H 'customerUri: cst16486' \
    -H 'Accept: application/json' \
    -d '{"domain":"ccmdev.com"}'

Response fields

Path Type Description

status

String

Validation status

orderStatus

String

Validation order status

expirationDate

String

Validation expiration date

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 76

{"status":"EXPIRED","orderStatus":"SUBMITTED","expirationDate":"2023-03-06"}

V1

Request fields

Path Type Description Constraints

domain

String

Domain to validate

[Must not be empty, Size must be between 0 and 255 inclusive]

HTTP request

POST /api/dcv/v1/validation/status HTTP/1.1
Content-Type: application/json;charset=utf-8
login: admin_customer16374
password: Password123
customerUri: cst16374
Content-Length: 22
Host: cert-manager.com

{"domain":"ccmqa.com"}

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/status' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16374' \
    -H 'password: Password123' \
    -H 'customerUri: cst16374' \
    -d '{"domain":"ccmqa.com"}'

Response fields

Path Type Description

status

String

Validation status

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 22

{"status":"VALIDATED"}

Search domains

Obtain the result of Domain Control Validation procedure as a validation statuses.

Request parameters

Parameter Description

position

Position shift

size

Count of entries

domain

Domain

org

Organization ID

department

Department ID

dcvStatus

DCV Status

orderStatus

DCV Order status

expiresIn

Expires in (days)

HTTP request

GET /api/dcv/v1/validation?size=10&position=0&org=&department=&domain=ccmqa.com&expiresIn=&dcvStatus=&orderStatus=&org=&department=&expiresIn=&dcvStatus=&orderStatus= HTTP/1.1
login: admin_customer16382
password: Password123
customerUri: cst16382
Accept: application/json
Host: cert-manager.com

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation?size=10&position=0&org=&department=&domain=ccmqa.com&expiresIn=&dcvStatus=&orderStatus=&org=&department=&expiresIn=&dcvStatus=&orderStatus=' -i -X GET \
    -H 'login: admin_customer16382' \
    -H 'password: Password123' \
    -H 'customerUri: cst16382' \
    -H 'Accept: application/json'

Response fields

Path Type Description

[]

Array

Array of DCV domains

[].domain

String

Domain

[].dcvStatus

String

DCV Status

[].dcvOrderStatus

String

DCV Order status

[].dcvMethod

String

DCV Method

[].expirationDate

String

DCV Expiration date

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 265

[{"domain":"ccmqa.com","dcvStatus":"VALIDATED","dcvOrderStatus":"NOT_INITIATED","dcvMethod":"EMAIL","expirationDate":"2023-03-08"},{"domain":"www.ccmqa.com","dcvStatus":"VALIDATED","dcvOrderStatus":"NOT_INITIATED","dcvMethod":"EMAIL","expirationDate":"2023-03-08"}]

Clear validation

Enables the administrator to reset the parameters of a request for DCV and drop Domain validation Status and DCV Order Status of the domain to the initial values.

Response fields

Path Type Description

orderStatus

String

Order status

message

String

Message

status

String

Status

Example request

$ curl 'https://cert-manager.com/api/dcv/v1/validation/clear' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer16366' \
    -H 'password: Password123' \
    -H 'customerUri: cst16366' \
    -d '{"domain":"ccmqa.com"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 119

{"status":"VALIDATED","orderStatus":"NOT_INITIATED","message":"DCV status: VALIDATED; DCV order status: NOT_INITIATED"}

Custom field resource

Create custom field

Enables the administrator to create the custom field for a particular type of certificate.

V2

Request fields

Path Type Description Constraints

name

String

Custom field name

[Must not be blank, Size must be between 0 and 256 inclusive]

mandatories

Array

List of access methods for which this field is mandatory

Possible values: ADMIN_UI, REST_API, SOAP_API, WEB_FORM

certType

String

Custom field certificate type

Possible values: ssl, smime, device

state

String

State

[]

Example request

$ curl 'https://cert-manager.com/api/customField/v2' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13494' \
    -H 'password: Password123' \
    -H 'customerUri: cst13494' \
    -d '{"name":"test","certType":"ssl","state":"ACTIVE","mandatories":["ADMIN_UI","REST_API","SOAP_API","WEB_FORM"]}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/customField/v2/-1

V1

Response fields

Path Type Description

id

Number

Custom field ID

name

String

Custom field name

mandatory

Boolean

Custom field mandatory attribute

certType

String

Custom field certificate type

state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v1' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13474' \
    -H 'password: Password123' \
    -H 'customerUri: cst13474' \
    -d '{"name":"test","mandatory":true,"certType":"ssl","state":"ACTIVE"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 74

{"id":-1,"name":"test","mandatory":true,"certType":"ssl","state":"ACTIVE"}

Custom field details

Enables the administrator to get details for a particular custom field by ID.

V2

Path parameters

Table 1. /api/customField/v2/{id}
Parameter Description

id

ID of custom field whose details are being requested

Example request

$ curl 'https://cert-manager.com/api/customField/v2/100500' -i -X GET \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13502' \
    -H 'password: Password123' \
    -H 'customerUri: cst13502'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 121

{"id":100500,"name":"test","certType":"ssl","state":"ACTIVE","mandatories":["ADMIN_UI","REST_API","SOAP_API","WEB_FORM"]}

Get custom fields

Enables the administrator to get the list of all existing custom fields with their details.

V2

Response fields

Path Type Description

[]

Array

Array of custom fields

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatories

Array

List of access methods for which this field is mandatory

[].certType

String

Custom field certificate type

[].state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v2' -i -X GET \
    -H 'login: admin_customer13506' \
    -H 'password: Password123' \
    -H 'customerUri: cst13506' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 126

[{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":["ADMIN_UI","REST_API","SOAP_API","WEB_FORM"]}]

V1

Response fields

Path Type Description

[]

Array

Array of custom fields

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatory

Boolean

Custom field mandatory attribute

[].certType

String

Custom field certificate type

[].state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v1' -i -X GET \
    -H 'login: admin_customer13482' \
    -H 'password: Password123' \
    -H 'customerUri: cst13482' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

[{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}]

Get custom fields by Certificate Profile

Enables the administrator to get the list of all custom fields with their details existing for a particular type of certificate.

V2

Request parameters

Parameter Description

certType

Certificate type. Possible values: [SMIME, SSL, Device]

Example request

$ curl 'https://cert-manager.com/api/customField/v2/?certType=SSL' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13510' \
    -H 'password: Password123' \
    -H 'customerUri: cst13510'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 126

[{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":["ADMIN_UI","REST_API","SOAP_API","WEB_FORM"]}]

Response fields

Path Type Description

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatories

Array

List of access methods for which this field is mandatory

[].certType

String

Custom field certificate type

[].state

String

State

V1

Response fields

Path Type Description

[].id

Number

Custom field ID

[].name

String

Custom field name

[].mandatory

Boolean

Custom field mandatory attribute

[].certType

String

Custom field certificate type

[].state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v1/ssl' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13486' \
    -H 'password: Password123' \
    -H 'customerUri: cst13486'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 83

[{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}]

Update custom fields

Allows the administrator to edit the custom field.

V2

Response fields

Path Type Description

id

Number

Custom field ID

name

String

Custom field name

mandatories

Array

List of access methods for which this field is mandatory

certType

String

Custom field certificate type

state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v2' -i -X PUT \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13514' \
    -H 'password: Password123' \
    -H 'customerUri: cst13514' \
    -d '{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":[]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 81

{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":[]}

V1

Response fields

Path Type Description

id

Number

Custom field ID

name

String

Custom field name

mandatory

Boolean

Custom field mandatory attribute

certType

String

Custom field certificate type

state

String

State

Example request

$ curl 'https://cert-manager.com/api/customField/v1' -i -X PUT \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13490' \
    -H 'password: Password123' \
    -H 'customerUri: cst13490' \
    -d '{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 81

{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}

Delete custom fields

Allows the administrator to delete the custom field which is no longer needed.

V2

Path parameters

Table 1. /api/customField/v2/{id}
Parameter Description

id

Custom field ID

Example request

$ curl 'https://cert-manager.com/api/customField/v2/1' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13498' \
    -H 'password: Password123' \
    -H 'customerUri: cst13498'

Example response

HTTP/1.1 204 No Content

V1

Path parameters

Table 1. /api/customField/v1/{id}
Parameter Description

id

Custom field ID

Example request

$ curl 'https://cert-manager.com/api/customField/v1/1' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'login: admin_customer13478' \
    -H 'password: Password123' \
    -H 'customerUri: cst13478'

Example response

HTTP/1.1 204 No Content

Discovery resource

Add the following introduction under the 'Discovery resource':

The Discovery API automates frequently performed operations to accelerate certificate discovery for customers with dynamically changing IP ranges.

The 'Tasks' resource contains information about planned discovery scans. A task comprises general information (task name, agent, ranges to scan), assignment rules, scan schedule, and has a 'Status' parameter.

Add network scan task

Enables administrators to create a scan task for the private and/or public network(s) in search of SSL certificates.

Request fields

Path Type Description Constraints

name

String

Task name

[Must not be empty, Size must be between 1 and 256 inclusive]

agent

String

Agent name

[Must not be empty]

ranges

Array

Array of ranges

[Must not be empty]

ranges[].address

String

Range address

ranges[].ports

String

Range port

certBucketId

String

Id of the bucket to which this task will be applied

[Must not be null]

frequency

String

Task frequency

[Must not be empty]

timeZone

String

Time zone

[Must not be empty]

time

Object

Time

[Must not be null]

time.hours

Number

Hours

[]

time.minutes

Number

Minutes

[]

month

Number

Month

[Must be at most 11]

dayOfMonth

Number

Day of month

[Must be at most 30]

dayOfWeek

Number

Day of week

[Must be at most 6]

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14186' \
    -H 'password: Password123' \
    -H 'customerUri: cst14186' \
    -d '{"name":"AQWTSQGCZTMDANKYJQDDUOTWYTEDFQMQ","agent":"org4Testzai02","certBucketId":"f258ef72-7cfd-439a-825b-605bf98adcda","ranges":[{"address":"92.115.4.177/32","ports":"2"}],"frequency":"Daily","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":0,"minutes":0},"month":0,"dayOfMonth":0,"dayOfWeek":0}'

Response fields

Path Type Description

taskId

Number

Task ID

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 13

{"taskId":-1}

Update network scan task

Enables administrators to edit a network scan task.

Request fields

Path Type Description Constraints

taskId

Number

Task ID

[Must not be empty, Size must be between 1 and 256 inclusive]

name

String

Task name

[Must not be empty, Size must be between 1 and 256 inclusive]

agent

String

Agent name

[Must not be empty]

ranges

Array

Array of ranges

[Must not be empty]

ranges[].address

String

Range address

ranges[].ports

String

Range port

certBucketId

String

Id of the bucket to which this task will be applied

[Must not be null]

frequency

String

Task frequency

[Must not be empty]

timeZone

String

Time zone

[Must not be empty]

time

Object

Time

[Must not be null]

time.hours

Number

Hours

[]

time.minutes

Number

Minutes

[]

month

Number

Month

[Must be at most 11]

dayOfMonth

Number

Day of month

[Must be at most 30]

dayOfWeek

Number

Day of week

[Must be at most 6]

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task' -i -X PUT \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14262' \
    -H 'password: Password123' \
    -H 'customerUri: cst14262' \
    -d '{"taskId":3489,"name":"RYLNWYXDDUOPWWGFNLIURMZNVPSOPFUA","agent":"org4Testuz7ba","certBucketId":"92b98fd3-9379-42d0-bd55-017de3b15e9e","ranges":[{"address":"50.79.55.92/32","ports":"1"}],"frequency":"Monthly","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":0,"minutes":0},"month":0,"dayOfMonth":0,"dayOfWeek":0}'

Example response

HTTP/1.1 200 OK

Get network scan task

Enables the administrator to get the parameters of a particular task of network scanning which he/she is authorized to view and manage.

Response fields

Path Type Description

name

String

Task name

agent

String

Agent name

ranges

Array

Array of ranges

ranges[].address

Array

Range address

ranges[].ports

Array

Range port

status

String

Task status

frequency

String

Task frequency

timeZone

String

Time zone

time

Object

Time

time.hours

Number

Hours

time.minutes

Number

Minutes

month

Number

Month

dayOfMonth

Number

Day of month

dayOfWeek

Number

Day of week

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task/2883' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14246' \
    -H 'password: Password123' \
    -H 'customerUri: cst14246'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 221

{"name":"Discovery task 0","agent":"","ranges":[],"frequency":"Daily","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":20,"minutes":12},"month":null,"dayOfMonth":null,"dayOfWeek":null,"status":"New Scan"}

Get network scan task list

Enables the administrator to get the list of existing tasks of scanning the network(s) which he/she is authorized to view and manage.

Response fields

Path Type Description

[]

Array

List of Scan Tasks

[].taskId

Number

Scan Task ID

[].name

String

Name of Scan Task

[].status

String

Scan Task Status

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task?size=10&position=0&name=Discovery+task+1&status=NEW' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14410' \
    -H 'password: Password123' \
    -H 'customerUri: cst14410'

Example response

HTTP/1.1 200 OK
X-Total-Count: 10
Content-Type: application/json
Content-Length: 621

[{"taskId":8943,"name":"Discovery task 0","status":"New Scan"},{"taskId":8944,"name":"Discovery task 1","status":"New Scan"},{"taskId":8945,"name":"Discovery task 2","status":"New Scan"},{"taskId":8946,"name":"Discovery task 3","status":"New Scan"},{"taskId":8947,"name":"Discovery task 4","status":"New Scan"},{"taskId":8948,"name":"Discovery task 5","status":"New Scan"},{"taskId":8949,"name":"Discovery task 6","status":"New Scan"},{"taskId":8950,"name":"Discovery task 7","status":"New Scan"},{"taskId":8951,"name":"Discovery task 8","status":"New Scan"},{"taskId":8952,"name":"Discovery task 9","status":"New Scan"}]

Start network scan task

Enables administrators to start a network(s) scan for a specific task

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task/9347/start' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14422' \
    -H 'password: Password123' \
    -H 'customerUri: cst14422'

Path parameters

Table 1. /api/discovery/v2/net_task/{taskId}/start
Parameter Description

taskId

Task ID

Example response

HTTP/1.1 200 OK

Delete network scan task

Enables administrators to delete a specific network scanning task.

Example request

$ curl 'https://cert-manager.com/api/discovery/v2/net_task/9145' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14414' \
    -H 'password: Password123' \
    -H 'customerUri: cst14414'

Path parameters

Table 1. /api/discovery/v2/net_task/{taskId}
Parameter Description

taskId

Task ID

Example response

HTTP/1.1 204 No Content

Create assignment rule

Assignment Rules are associated with discovery tasks to assign 'Unmanaged' certificates (those not issued by SCM) to a particular Organization or Department

Request fields

Path Type Description Constraints

name

String

Assignment rule name

[Must not be null, Size must be between 1 and 128 inclusive]

orgId

Number

Organization ID

[Must be at least 1, Must not be null]

certType

String

Certificate type. Default value is SSL for backward compatibility. Values: [SSL, SMIME, CodeSign, Device]

[]

filters[]

Array

Array of rule filters

[Must not be empty]

filters[].filterType

String

Rule filter type

[Must not be empty]

filters[].matchType

String

Rule match type

[Must not be empty]

filters[].value

String

Rule value

[Must not be empty, Size must be between 0 and 128 inclusive]

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer132' \
    -H 'password: Password123' \
    -H 'customerUri: cst132' \
    -d '{"name":"CKHRGFBWAOBTQAVLYRAXCVJZCKCXHFPO","orgId":64,"filters":[{"filterType":"ORGANIZATION","matchType":"MATCHES","value":"org4Test"}],"certType":"SSL"}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/discovery/v1/assignmentrule/252

Update assignment rule

Enables the administrator to edit the existing assignment rule.

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule/12171' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer12540' \
    -H 'password: Password123' \
    -H 'customerUri: cst12540' \
    -d '{"ruleId":0,"name":"PQDDJDGOMBKJOKPYXCQLUKWFXJJOFKXZ","orgId":164,"filters":[{"filterType":"ORGANIZATION","matchType":"STARTS_WITH","value":"org4Test"}],"certType":"SSL"}'

Path parameters

Table 1. /api/discovery/v1/assignmentrule/{ruleId}
Parameter Description

ruleId

Assignment rule ID

Example response

HTTP/1.1 204 No Content

Find assignment rule by ID

Enables the administrator to find the assignment rule by its ID.

Response fields

Path Type Description

name

String

Assignment rule name

orgId

Number

Assignment rule organization ID

certType

String

Assignment rule certificate type

filters[]

Array

Array of rule filters

filters[].filterType

String

Rule filter type

filters[].matchType

String

Rule match type

filters[].value

String

Rule value

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule/4697' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer4874' \
    -H 'password: Password123' \
    -H 'customerUri: cst4874' \
    -d '{"ruleId":3485,"name":"COECKXUPWTWYHCHVWKGACGZJULZLMIMT","orgId":98,"filters":[{"filterType":"ORGANIZATION","matchType":"STARTS_WITH","value":"org4Test"}],"certType":"SSL"}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 116

{"name":"Assignment rule 4878 [organization: org4Test, customer ID: 105]","orgId":112,"filters":[],"certType":"SSL"}

Get assignment rules count

Enables administrators to get the number of existing assignment rules for the organization or department delegated to them.

Response fields

Path Type Description

count

Number

Assignment rules count

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule/count' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer4252' \
    -H 'password: Password123' \
    -H 'customerUri: cst4252'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 13

{"count":202}

Get assignment rules ID list

Enables Admins to get the list of existing assignment rules IDs for the organization or department delegated to them.

Response fields

Path Type Description

[]

Array

Array of assignment rule IDs

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule/?size=10&position=0' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer12334' \
    -H 'password: Password123' \
    -H 'customerUri: cst12334'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 61

[11969,11970,11971,11972,11973,11974,11975,11976,11977,11978]

Delete assignment rule

Enables the administrator to delete a particular assignment rule that is applicable to the organization or department delegated to them.

Path parameters

Table 1. /api/discovery/v1/assignmentrule/{ruleId}
Parameter Description

ruleId

Assignment rule ID

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/assignmentrule/4495' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer4668' \
    -H 'password: Password123' \
    -H 'customerUri: cst4668'

Example response

HTTP/1.1 204 No Content

Create cert bucket

Request fields

Path Type Description Constraints

name

String

Cert Bucket name

[Must be at most 128, Must not be null]

assignmentRules

Array

Assignment rule IDs

[]

orgDelegation

Array

Delegated organization IDs

[]

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer13549' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"name": "Cert Bucket Example", "assignmentRules": [12981], "orgDelegation":[300]}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/discovery/v1/bucket/54b283dc-4f69-444b-ac29-0346e4e2f627

Update cert bucket

Request fields

Path Type Description Constraints

name

String

Cert Bucket name

[Must be at most 128, Must not be null]

assignmentRules

Array

Assignment rule IDs

[]

orgDelegation

Array

Delegated organization IDs

[]

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/cb9fa5fb-336f-48bb-9fd0-b6b2585d60c9' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer13569' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"name": "Cert Bucket Example", "assignmentRules": [12984], "orgDelegation":[309]}'

Path parameters

Table 1. /api/discovery/v1/bucket/{bucketId}
Parameter Description

bucketId

Cert Bucket ID

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 118

{"id":"cb9fa5fb-336f-48bb-9fd0-b6b2585d60c9","name":"Cert Bucket Example","assignmentRules":[6],"orgDelegation":[309]}

Find cert bucket by ID

Response fields

Path Type Description

id

String

Cert Bucket ID

name

String

Cert Bucket name

assignmentRules

Array

Assignment rule IDs

orgDelegation

Array

Delegated organization IDs

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/13f3029c-95f1-412e-9820-2fc9fb60ccdf' -i -X GET \
    -H 'login: admin_customer13562' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 118

{"id":"13f3029c-95f1-412e-9820-2fc9fb60ccdf","name":"Example Cert Bucket","assignmentRules":[5],"orgDelegation":[306]}

List cert buckets

Response fields

Path Type Description

[]

Array

Certificate buckets list

[].id

String

ID

[].name

String

Name

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket?position=0&size=10' -i -X GET \
    -H 'login: admin_customer13566' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 68

[{"id":"9a2ca706-0fda-4efb-84eb-82be147ca400","name":"test bucket"}]

Delete cert bucket

Path parameters

Table 1. /api/discovery/v1/bucket/{id}
Parameter Description

id

Cert Bucket ID

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/fdaec626-e55a-4f1f-8a63-4d90ffbd9429' -i -X DELETE \
    -H 'login: admin_customer13555' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK

Certificates in cert bucket

Path parameters

Table 1. /api/discovery/v1/bucket/{id}/certificates
Parameter Description

id

Cert Bucket ID

Request parameters

Parameter Description

position

Position shift

size

Count of entries

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/613d0e16-a9a5-4414-8c8b-7b40e2b580f8/certificates?position=0&size=0' -i -X GET \
    -H 'login: admin_customer13558' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 478

{"total":1,"data":[{"hash":"11a736dd5d67af1ed5b6a14fbf92ca8fe97df841","details":{"cn":"*.ssl.hwcdn.net","validFrom":"2023-03-07T22:09:07Z","validTo":"2023-03-07T22:09:07Z","issuer":{},"subject":{},"san":[],"keyAlgorithm":"RSA","keySize":2048,"signatureAlgorithm":"SHA256withRSA","sn":"32616335373265322D343361362D336331332D396537632D643330306338303130643332","md5Hash":"0e6d4f8af5d5a163676d0780b3b4b54e","sha1Hash":"11a736dd5d67af1ed5b6a14fbf92ca8fe97df841","ku":[],"eku":[]}}]}

Response fields

Path Type Description

total

Number

Total count of founded certificates

data.[]

Array

List of Certificates

data.[0].hash

String

Certificate hash

data.[0].details

Object

Certificate details

data.[0].details.cn

String

Certificate common name

data.[0].details.validFrom

String

Certificate issue date

data.[0].details.validTo

String

Certificate expiry date

data.[0].details.subject

Object

Certificate subject

data.[0].details.san

Array

Certificate subject alternative names

data.[0].details.keyAlgorithm

String

Certificate key algorithm

data.[0].details.keySize

Number

Certificate key size

data.[0].details.signatureAlgorithm

String

Certificate signature algorithm

data.[0].details.sn

String

Certificate serial number

data.[0].details.md5Hash

String

Certificate md5 hash

data.[0].details.sha1Hash

String

Certificate sha1 hash

data.[0].details.ku

Array

Certificate key usage

data.[0].details.eku

Array

Certificate extended key usage

data.[0].details.issuer

Object

Certificate issuer

Run rules against certificates bucket

Path parameters

Table 1. /api/discovery/v1/bucket/{id}/runrules
Parameter Description

id

Cert Bucket ID

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/07f41695-e1ce-4401-bd14-fd882b706d70/runrules' -i -X POST \
    -H 'login: admin_customer13541' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK

Assign certificates in cert bucket

Request fields

Path Type Description Constraints

hashes

Array

List of certificate hashes

[Must not be empty]

certType

String

Certificate type. Values: [SSL, SMIME, CodeSign, Device]

[Must not be null]

organizationId

Number

Organization ID

[Must not be null]

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/bucket/0f0426b8-ae60-4a0b-bb72-d5f61a932adb/assign' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer13545' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"hashes":["hash"],"certType":"SSL","organizationId":12}'

Path parameters

Table 1. /api/discovery/v1/bucket/{id}/assign
Parameter Description

id

Cert Bucket ID

Example response

HTTP/1.1 200 OK

Get operations list

Response fields

Path Type Description

total

Number

Cert Bucket ID

data

Array

List of operations

data[].id

String

Operation ID

data[].status

String

Operation status

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/net_task/51/operation' -i -X GET \
    -H 'Accept: application/json' \
    -H 'login: nick-107' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 272

{"total":4,"data":[{"id":"2c9780878596231201859c0992dc0004","status":"completed"},{"id":"2c9780878596231201859d39f42d0005","status":"completed"},{"id":"2c978087859623120185a07545370006","status":"completed"},{"id":"2c978087859623120185a0861ad20007","status":"completed"}]}

Stop operation

Path parameters

Table 1. /api/discovery/v1/{taskType}/{taskId}/operation/{operationId}/stop
Parameter Description

taskType

Discovery task type. Allowed values: [ad_task, net_task]

taskId

Discovery task ID

operationId

Operation ID

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/net_task/1/operation/2c978087859623120185a07545370106/stop' -i -X POST \
    -H 'login: nick-112' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK

Get result of operation

Path parameters

Table 1. /api/discovery/v1/{type}/{taskId}/operation/{opId}/result
Parameter Description

type

Discovery task type. Allowed values: [ad_task, net_task]

taskId

Discovery task ID

opId

Operation ID

Request parameters

Parameter Description

position

Position shift

size

Count of entries

Response fields

Path Type Description

total

Number

Total count of founded certificates

data.[]

Array

Array of founded certificates

data.[0].operation

Object

Operation details

data.[0].operation.id

String

Operation ID

data.[0].operation.created

String

Operation create date

data.[0].status

Object

Certificate status

data.[0].status.tlsVersion

Number

Certificate status: tls version

data.[0].status.handshakeMs

Number

Certificate status: handshake MS

data.[0].status.cipherSuite

String

Certificate status: ciper suite

data.[0].status.nameLookupMs

Number

Certificate status: name lookup

data.[0].created

String

Certificate create date

data.[0].certificate

Object

Certificate data

data.[0].certificate.hash

String

Certificate hash

data.[0].certificate.managedId

String

Certificate managed id

data.[0].certificate.details

Object

Certificate details

data.[0].certificate.details.cn

String

Certificate common name

data.[0].certificate.details.validFrom

String

Certificate issue date

data.[0].certificate.details.validTo

String

Certificate expiry date

data.[0].certificate.details.subject

Object

Certificate subject

data.[0].certificate.details.san

Array

Certificate subject alternative names

data.[0].certificate.details.keyAlgorithm

String

Certificate key algorithm

data.[0].certificate.details.keySize

Number

Certificate key size

data.[0].certificate.details.signatureAlgorithm

String

Certificate signature algorithm

data.[0].certificate.details.sn

String

Certificate serial number

data.[0].certificate.details.md5Hash

String

Certificate md5 hash

data.[0].certificate.details.sha1Hash

String

Certificate sha1 hash

data.[0].certificate.details.issuer

Object

Certificate issuer

data.[0].certificate.details.ku

Array

Certificate key usage

data.[0].certificate.details.eku

Array

Certificate key usage

data.[0].location

Object

Certificate location

data.[0].location.type

String

Certificate location type

data.[0].location.details

Object

Certificate location details

data.[0].location.details.ip

String

Certificate location ip

data.[0].location.details.port

Number

Certificate location port

data.[0].location.details.hostName

String

Certificate location host name

Example request

$ curl 'https://cert-manager.com/api/discovery/v1/net_task/50/operation/2c9b8087864fefb701865a26f77b0001/result' -i -X GET \
    -H 'Accept: application/json' \
    -H 'login: nick-102' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 794

{"total":1,"data":[{"certificate":{"hash":"09a736dd5d67af1ed5b6a14fbf92ca8fe97df839","managedId":"ssl:130","details":{"cn":"*.ssl.hwcdn.net","validFrom":"2022-12-30T02:00:00Z","validTo":"2024-01-20T01:59:59Z","issuer":{},"subject":{},"san":[],"keyAlgorithm":"RSA","keySize":2048,"signatureAlgorithm":"SHA256withRSA","sn":"2AC572E243A63C139E7CD300C8010D32","md5Hash":"0e6d4f8af5d5a163676d0780b3b4b54e","sha1Hash":"09a736dd5d67af1ed5b6a14fbf92ca8fe97df839","ku":[],"eku":[]}},"location":{"type":"NETWORK_HOST","details":{"ip":"151.139.128.14","port":443,"hostName":"sectigo.com"}},"status":{"tlsVersion":1,"cipherSuite":"123","handshakeMs":2,"nameLookupMs":3},"operation":{"id":"2c9b8087864fefb701865a26f77b0001","created":"2023-02-16T12:15:48.604401Z"},"created":"2023-01-26T05:28:06.879212Z"}]}

Client Administrator resource

Create client admin

Create client admin’s account.

Request fields

Path Type Description Constraints

login

String

Login

[Must be null or not blank, Must match the regular expression: ^([a-zA-Z0-9!@_\.\-\+\'])*, Must not be blank, Size must be between 0 and 128 inclusive]

email

String

E-Mail

[Must be a well-formed email address, Must be null or not blank, Must not be blank]

forename

String

Forename

[Must be null or not blank, Must match the regular expression: ^((?!.*[>|<|!|@|#|\$|\%|\^|\*|\(|\)|~|\?|/|\|\&|\_|\+|=|\"|:|;|,|\{|\}|\[|\]|||`].*).)*$, Must not be blank, Size must be between 0 and 64 inclusive]

surname

String

Surname

[Must be null or not blank, Must match the regular expression: ^((?!.*[>|<|!|@|#|\$|\%|\^|\*|\(|\)|~|\?|/|\|\&|\_|\+|=|\"|:|;|,|\{|\}|\[|\]|||`].*).)*$, Must not be blank, Size must be between 0 and 64 inclusive]

title

String

Title or Position

[]

telephone

String

Telephone Number

[Must match the regular expression: [#|0-9|\(|\)|\-|\+| x]*]

street

String

Street Address

[]

locality

String

Locality

[]

state

String

State

[]

postalCode

String

Postal Code

[Must match the regular expression: ^[a-zA-Z0-9\s-]{0,10}$]

country

String

Country

[]

relationship

String

Relationship

[Size must be between 0 and 256 inclusive]

certificateSerialNumber

String

Authentication Certificate Serial Number

[Must match the regular expression: (0x)?[0-9a-fA-F:]+]

password

String

Password

[Must be null or not blank, Size must be between 0 and 64 inclusive]

privileges

Array

Privileges

[]

credentials.[]

Array

Credentials

[Must not be empty]

credentials.[].role

String

Role

[]

credentials.[].orgId

Number

Organization Identifier

[]

identityProviderId

Number

Identifier of Identity Provider, if IdP is required

[Must be at least 1]

idpPersonId

String

Person Identifier for given Identity Provider

[Size must be between 0 and 256 inclusive]

Example request

$ curl 'https://cert-manager.com/api/admin/v1/' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13777' \
    -H 'password: Password123' \
    -H 'customerUri: cst13777' \
    -H 'Accept: application/json' \
    -d '{"login":"admin","email":"a@test.test","forename":"Admin","surname":"Admin","telephone":"+00000000","password":"1234","credentials":[{"role":"RAO_SSL","orgId":440}]}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/admin/v1/394

Update client admin

Update client admin’s account.

Path parameters

Table 1. /api/admin/v1/{id}
Parameter Description

id

ID of client admin being updated

Request fields

Path Type Description Constraints

login

String

Login

[Must be null or not blank, Must match the regular expression: ^([a-zA-Z0-9!@_\.\-\+\'])*, Must not be blank, Size must be between 0 and 128 inclusive]

email

String

E-Mail

[Must be a well-formed email address, Must be null or not blank, Must not be blank]

forename

String

Forename

[Must be null or not blank, Must match the regular expression: ^((?!.*[>|<|!|@|#|\$|\%|\^|\*|\(|\)|~|\?|/|\|\&|\_|\+|=|\"|:|;|,|\{|\}|\[|\]|||`].*).)*$, Must not be blank, Size must be between 0 and 64 inclusive]

surname

String

Surname

[Must be null or not blank, Must match the regular expression: ^((?!.*[>|<|!|@|#|\$|\%|\^|\*|\(|\)|~|\?|/|\|\&|\_|\+|=|\"|:|;|,|\{|\}|\[|\]|||`].*).)*$, Must not be blank, Size must be between 0 and 64 inclusive]

title

String

Title or Position

[]

telephone

String

Telephone Number

[Must match the regular expression: [#|0-9|\(|\)|\-|\+| x]*]

street

String

Street Address

[]

locality

String

Locality

[]

state

String

State

[]

postalCode

String

Postal Code

[Must match the regular expression: ^[a-zA-Z0-9\s-]{0,10}$]

country

String

Country

[]

relationship

String

Relationship

[Size must be between 0 and 256 inclusive]

certificateSerialNumber

String

Authentication Certificate Serial Number

[Must match the regular expression: (0x)?[0-9a-fA-F:]+]

password

String

Password

[Must be null or not blank, Size must be between 0 and 64 inclusive]

privileges

Array

Privileges

[]

credentials.[]

Array

Credentials

[Must not be empty]

credentials.[].role

String

Role

[]

credentials.[].orgId

Number

Organization Identifier

[]

identityProviderId

Number

Identifier of Identity Provider, if IdP is required

[Must be at least 1]

idpPersonId

String

Person Identifier for given Identity Provider

[Size must be between 0 and 256 inclusive]

Example request

$ curl 'https://cert-manager.com/api/admin/v1/478' -i -X PUT \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13937' \
    -H 'password: Password123' \
    -H 'customerUri: cst13937' \
    -H 'Accept: application/json' \
    -d '{"login":"drao","email":"drao@aa.com","forename":"client-admin-13945on","surname":"client-admin-13945","telephone":"+1 (888) 266-6361","password":"1234","privileges":["allowEdit","allowDelete","allowCreate"],"credentials":[{"role":"RAO_SSL","orgId":481}]}'

Example response

HTTP/1.1 200 OK

Delete client admin

Delete client admin’s account.

Path parameters

Table 1. /api/admin/v1/{id}
Parameter Description

id

ID of client admin being deleted

Example request

$ curl 'https://cert-manager.com/api/admin/v1/465' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13913' \
    -H 'password: Password123' \
    -H 'customerUri: cst13913'

Example response

HTTP/1.1 204 No Content

Get client admins list

Get list of Client Administrators.

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

login

Login filter

email

E-mail filter

status

Status filter

orgId

Organization ID filter

Example request

$ curl 'https://cert-manager.com/api/admin/v1?size=10&position=0' -i -X GET \
    -H 'login: admin_customer13769' \
    -H 'password: Password123' \
    -H 'customerUri: cst13769'

Response fields

Path Type Description

[]

Array

Array of requested client admins

[].id

Number

Client admin ID

[].login

String

Client admin login

[].email

String

Client admin E-mail

[].forename

String

Client admin forename

[].surname

String

Client admin surname

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 440

[{"id":389,"login":"testadmin_customer13769","forename":"client-admin-13775","surname":"client-admin-13775","email":"TestAdmin_Customer13769@aa.com"},{"id":388,"login":"admindrao_customer13769","forename":"client-admin-13773","surname":"client-admin-13773","email":"AdminDrao_Customer13769@aa.com"},{"id":387,"login":"admin_customer13769","forename":"client-admin-13770","surname":"client-admin-13770","email":"Admin_Customer13769@aa.com"}]

Get client admin’s details

Get detailed information about Client Administrator.

Path parameters

Table 1. /api/admin/v1/{id}
Parameter Description

id

ID of client admin whose details are being requested

Example request

$ curl 'https://cert-manager.com/api/admin/v1/444' -i -X GET \
    -H 'login: admin_customer13873' \
    -H 'password: Password123' \
    -H 'customerUri: cst13873' \
    -H 'Accept: application/json'

Response fields

Path Type Description

id

Number

ID

status

String

Client admin status. Possible values: 'REQUESTED', 'ACTIVE' and 'AWAITING_ME'

forename

String

Forename

surname

String

Surname

login

String

Login

email

String

Email

created

String

Client admin creation date

modified

String

Client admin last modification date

lastPasswordChange

String

Last password change date

credentials[]

Array

Array of client admin’s roles

credentials[].role

String

Client admin’s role

credentials[].orgId

Number

Organization ID

passwordState

String

Client admin’s password state. Possible values: 'ALIVE', 'EXPIRED' and 'NEVER_EXPIRE'

passwordExpiryDate

String

Expiration date of Client Admin’s password

activeState

String

Client admin’s active state. Possible values: 'ACTIVE' and 'SUSPENDED'

failedAttempts

Number

Number of failed attempts

type

String

Client admin account type. Possible values: 'STANDARD', 'IDP_USER' and 'IDP_TEMPLATE'

privileges

Array

Array of client admin’s privileges

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 454

{"id":444,"status":"Active","forename":"client-admin-13877","surname":"client-admin-13877","login":"admindrao_customer13873","email":"AdminDrao_Customer13873@aa.com","created":"2023-03-07","modified":"2023-03-07","lastPasswordChange":"2023-03-07","credentials":[{"role":"DRAO_SSL","orgId":465}],"passwordState":"ALIVE","passwordExpiryDate":"2023-06-06","activeState":"Active","privileges":["allowCreate","allowEdit"],"failedAttempts":0,"type":"Standard"}

Get client admin’s roles

Get roles available for client admin

Example request

$ curl 'https://cert-manager.com/api/admin/v1/roles' -i -X GET \
    -H 'login: admin_customer13897' \
    -H 'password: Password123' \
    -H 'customerUri: cst13897' \
    -H 'Accept: application/json'

Response fields

Path Type Description

[]

Array

Roles of Client Admin. Possible values: 'MRAO', 'RAO_SSL', 'RAO_SMIME', 'RAO_DEVICE', 'RAO_CS', 'DRAO_SSL', 'DRAO_SMIME', 'DRAO_DEVICE', and 'DRAO_CS'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 100

["MRAO","RAO_SSL","RAO_SMIME","RAO_CS","RAO_DEVICE","DRAO_SSL","DRAO_SMIME","DRAO_CS","DRAO_DEVICE"]

Get client admin’s privileges

Get privileges available for client admin

Request parameters

Parameter Description

role

Client admin’s role. Multiple roles can be provided.

Example request

$ curl 'https://cert-manager.com/api/admin/v1/privileges?role=RAO_SSL&role=RAO_SMIME' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13889' \
    -H 'password: Password123' \
    -H 'customerUri: cst13889' \
    -H 'Accept: application/json'

Response fields

Path Type Description

[].name

String

Privileges for Client Admin. Possible names: 'allowCreate' - Allow creation of peer admin users, 'allowEdit' - Allow editing of peer admin users, 'allowDelete' - Allow deleting of peer admin users, 'allowDCV' - Allow DCV, 'allowSslChanging' - Allow SSL details changing, 'allowSslAutoApprove' - Allow SSL auto approve, 'wsApiUseOnly' - WS API use only, 'allowMsAdDiscovery' - MS AD Discovery, 'allowKeyVault' - Allow download keys from Key Vault, 'approveDomainDelegation' - Approve domain delegation

[].description

String

Description for privilege.

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 494

[{"name":"allowCreate","description":"Allow creation of peer admin users"},{"name":"allowDelete","description":"Allow deleting of peer admin users"},{"name":"allowEdit","description":"Allow editing of peer admin users"},{"name":"allowSslAutoApprove","description":"Allow SSL auto approve"},{"name":"allowSslChanging","description":"Allow SSL details changing"},{"name":"approveDomainDelegation","description":"Approve domain delegation"},{"name":"wsApiUseOnly","description":"WS API use only"}]

Get password state

State of Client Admin’s password

Response fields

Path Type Description

state

String

State of Client Admin. Possible values: 'ALIVE', 'EXPIRED' and 'NEVER_EXPIRE'

expirationDate

String

Expiration date of Client Admin’s password

Example request

$ curl 'https://cert-manager.com/api/admin/v1/password' -i -X GET \
    -H 'login: admin_customer13881' \
    -H 'password: Password123' \
    -H 'customerUri: cst13881' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 47

{"expirationDate":"2023-06-06","state":"ALIVE"}

Change password

Change of Client Admin’s password. Possible only within a month from expiration.

Success case

Example request
$ curl 'https://cert-manager.com/api/admin/v1/changepassword' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13753' \
    -H 'password: Password123' \
    -H 'customerUri: cst13753' \
    -H 'Accept: application/json' \
    -d '{"newPassword":"newPass122345"}'
Example response
HTTP/1.1 204 No Content

Failed case

Response fields
Path Type Description

code

Number

Code of error if error has occurred

description

String

Error message

Example request
$ curl 'https://cert-manager.com/api/admin/v1/changepassword' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13761' \
    -H 'password: Password123' \
    -H 'customerUri: cst13761' \
    -H 'Accept: application/json' \
    -d '{"newPassword":"new"}'
Example response
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 79

{"code":-976,"description":"New password must be between 8 and 32 characters."}

Get list of identity providers

Get list of Identity Providers for IdP users .

Example request

$ curl 'https://cert-manager.com/api/admin/v1/idp' -i -X GET \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer13905' \
    -H 'password: Password123' \
    -H 'customerUri: cst13905' \
    -H 'Accept: application/json'

Response fields

Path Type Description

[]

Array

Array of customer’s IdP

[].id

Number

IdP ID

[].name

String

IdP name

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 29

[{"id":69,"name":"Test Idp"}]

Person resource

Find person ID by email

A GET request will return ID for a person with given email.

Path parameters

Table 1. /api/person/{version}/id/byEmail/{email}
Parameter Description

version

API version

email

Person e-mail. Must be formatted as valid e-mail string. Also might need to be properly encoded as required by URL syntax standard. For example, the '@' character should be replaced with the %40 code, '.' - with %2E and so on.

Example request

$ curl 'https://cert-manager.com/api/person/v1/id/byEmail/224_nobody@nobody.comodo.od.ua' -i -X GET \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -H 'Accept: application/json'

Response body

{"personId":159}

Response fields

Path Type Description

personId

Number

Person ID

Find person by ID

Path parameters

Table 1. /api/person/{version}/{id}
Parameter Description

version

API version

id

Person ID

Example request

$ curl 'https://cert-manager.com/api/person/v1/158' -i -X GET \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -H 'Accept: application/json;charset=UTF-8'

Response body

{"id":158,"firstName":"Tester","middleName":"","lastName":"","email":"217_nobody@nobody.comodo.od.ua","organizationId":1495,"validationType":"STANDARD","phone":"123456789","secondaryEmails":["321nobody@nobody.comodo.od.ua","100500admin@nobody.comodo.od.ua"],"commonName":"Tester","eppn":"","upn":""}

Response fields

Path Type Description

id

Number

Person ID

organizationId

Number

Organization ID

email

String

Person e-mail

firstName

String

Person firstname

lastName

String

Person lastname

middleName

String

Person middlename

validationType

String

Person validation type. Values: [STANDARD, HIGH]

phone

String

Person Phone

commonName

String

Person CommonName

secondaryEmails

Array

Person Secondary Emails

eppn

String

Person EPPN

upn

String

Person UPN

Create new person

Request fields

Path Type Description Constraints

firstName

String

Person’s first name

[Must not be blank, Size must be between 1 and 64 inclusive]

middleName

String

Person’s middle name

[Size must be between 0 and 64 inclusive]

lastName

String

Person’s last name

[Must not be blank, Size must be between 0 and 64 inclusive]

email

String

Person’s email

[Must be a well-formed email address, Must not be empty, Size must be between 0 and 128 inclusive]

validationType

String

Person’s validation type. Values: [STANDARD, HIGH]

[Must not be null]

organizationId

Number

Organization ID

[Must be at least 1, Must not be null]

phone

String

Person phone

[Must match the regular expression: [#|0-9|\(|\)|\-|\+| x]*, Size must be between 0 and 32 inclusive]

commonName

String

Person commonName

[Size must be between 0 and 64 inclusive]

secondaryEmails

Array

Person Secondary Emails

[]

eppn

String

Person EPPN

[Size must be between 0 and 128 inclusive]

upn

String

Person UPN

[Size must be between 0 and 256 inclusive]

Example request

$ curl 'https://cert-manager.com/api/person/v1' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","email":"test@email.com","organizationId":1485,"validationType":"STANDARD","phone":"1235","secondaryEmails":["321nobody@nobody.comodo.od.ua","100500admin@nobody.comodo.od.ua"],"commonName":"Tester123","eppn":"","upn":null}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/person/v1/146

Update person

Request fields

Path Type Description Constraints

firstName

String

Person’s first name

[Must not be blank, Size must be between 1 and 64 inclusive]

middleName

String

Person’s middle name

[Size must be between 0 and 64 inclusive]

lastName

String

Person’s last name

[Must not be blank, Size must be between 0 and 64 inclusive]

email

String

Person’s email

[Must be a well-formed email address, Must not be empty, Size must be between 0 and 128 inclusive]

validationType

String

Person’s validation type

[Must not be null]

organizationId

Number

Organization ID

[Must be at least 1, Must not be null]

phone

String

Person phone

[Must match the regular expression: [#|0-9|\(|\)|\-|\+| x]*, Size must be between 0 and 32 inclusive]

commonName

String

Person commonName

[Size must be between 0 and 64 inclusive]

secondaryEmails

Array

Person Secondary Emails

[]

eppn

String

Person EPPN

[Size must be between 0 and 128 inclusive]

upn

String

Person UPN

[Size must be between 0 and 256 inclusive]

Example request

$ curl 'https://cert-manager.com/api/person/v1/166' -i -X PUT \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"firstName":"First Name","middleName":"Middle Name","lastName":"Last Name","email":"test@email.com","organizationId":1503,"validationType":"STANDARD","phone":"1235","secondaryEmails":["321nobody@nobody.comodo.od.ua","100500admin@nobody.comodo.od.ua"],"commonName":"Tester123","eppn":"","upn":null}'

Example response

HTTP/1.1 200 OK

Delete person

Path parameters

Table 1. /api/person/{version}/{id}
Parameter Description

version

API version

id

Person ID being deleted

Example request

$ curl 'https://cert-manager.com/api/person/v1/157' -i -X DELETE \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Example response

HTTP/1.1 200 OK

List persons

Path parameters

Table 1. /api/person/{version}
Parameter Description

version

API version

Example request

$ curl 'https://cert-manager.com/api/person/v1?position=0&size=10&name=Tester&organizationId=1499&email=245_nobody%40nobody.comodo.od.ua&commonName=Tester&secondaryEmail=321nobody%40nobody.comodo.od.ua&phone=3456789' -i -X GET \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Request parameters

Parameter Description

position

Position shift

size

Count of entries

name

Person name (url encoded)

organizationId

Organization ID

email

Person email

commonName

Person commonName

phone

Person phone

secondaryEmail

Person Secondary Email

Response body

[{"id":162,"firstName":"Tester","middleName":"","lastName":"","email":"245_nobody@nobody.comodo.od.ua","organizationId":1499,"validationType":"STANDARD","phone":"123456789","secondaryEmails":["321nobody@nobody.comodo.od.ua","100500admin@nobody.comodo.od.ua"],"commonName":"Tester","eppn":"","upn":""}]

Response fields

Path Type Description

[]

Array

List of persons

[].id

Number

Person ID

[].organizationId

Number

Organization ID

[].email

String

Person e-mail

[].firstName

String

Person firstname

[].lastName

String

Person lastname

[].middleName

String

Person middlename

[].validationType

String

Person validation type

[].phone

String

Person Phone

[].commonName

String

Person CommonName

[].secondaryEmails

Array

Person Secondary Emails

[].eppn

String

Person EPPN

[].upn

String

Person UPN

Send invitation to person by id

'V2'

Path parameters

Table 1. /api/person/{version}/{id}/invitation/send
Parameter Description

version

API version

id

Person ID

Request body

{"accountId":41}

Request fields

Path Type Description Constraints

accountId

Number

Client Certificate Web Form Account ID

Example request

$ curl 'https://cert-manager.com/api/person/v2/107/invitation/send' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15122' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -H 'Accept: application/json' \
    -d '{"accountId":41}'

Example response

HTTP/1.1 202 Accepted

'V1'

Path parameters

Table 1. /api/person/{version}/{id}/invitation/send
Parameter Description

version

API version

id

Person ID

Request body

{"profileId":2105,"term":365,"keyType":"RSA - 2048"}

Request fields

Path Type Description Constraints

term

Number

Term for certificate in days

keyType

String

Allowed Key Type

profileId

Number

Profile ID

Example request

$ curl 'https://cert-manager.com/api/person/v1/165/invitation/send' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -H 'Accept: application/json' \
    -d '{"profileId":2105,"term":365,"keyType":"RSA - 2048"}'

Example response

HTTP/1.1 202 Accepted

Import client certificate with private key for person

V2

Request fields

Path Type Description Constraints

p12

String

Base64 encoded pkcs12 file

[]

password

String

Password to access pkcs12 file

Optional

customFields

Array

An array of custom fields if required

Optional

Path parameters

Table 1. /api/person/{version}/{personId}/import-key
Parameter Description

version

API version

personId

Person ID

Example request

$ curl 'https://cert-manager.com/api/person/v2/105/import-key' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'login: admin_customer15106' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"p12":"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","password":"11","customFields":[]}'

Response fields

Path Type Description

entries[]

Array

Key Store entry list

entries[].alias

String

Alias

entries[].clientCertId

Number

Client Certificate ID

entries[].md5

String

MD5 hash

entries[].sha1

String

SHA1 hash

entries[].message

String

Import operation status message. 'Imported successfully' - all is OK, 'Already exists' - key absent in Key Vault, otherwise - error message

V1

Request fields

Path Type Description Constraints

p12

String

Base64 encoded pkcs12 file

[]

password

String

Password to access pkcs12 file

Optional

customFields

Array

An array of custom fields if required

Optional

Path parameters

Table 1. /api/person/{version}/{personId}/import-key
Parameter Description

version

API version

personId

Person ID

Example request

$ curl 'https://cert-manager.com/api/person/v1/182/import-key' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'login: admin_customer15915' \
    -H 'password: Password123' \
    -H 'customerUri: test' \
    -d '{"p12":"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","password":"11","customFields":[]}'

Response fields

Path Type Description

id

Number

ID of created certificate based on imported payload

List available Enrollment Form Endpoints

Path parameters

Table 1. /api/person/{version}/{id}/invitation/endpoint
Parameter Description

version

API version

id

Person ID

Example request

$ curl 'https://cert-manager.com/api/person/v2/104/invitation/endpoint' -i -X GET \
    -H 'login: admin_customer15098' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Request headers

Name Description

login

User login name

password

User password

customerUri

Customer URI part

Response body

[{"id":70,"name":"test SMIME_WEB_FORM15104","url":"https://SMIME_WEB_FORM15105"}]

Response fields

Path Type Description

[]

Array

Array of Enrollment Form Endpoints

[].id

Number

Endpoint ID

[].name

String

Endpoint name

[].url

String

Endpoint url

List available Enrollment Form Accounts for specified Endpoint

Path parameters

Table 1. /api/person/{version}/{id}/invitation/endpoint/{endpointId}/account
Parameter Description

version

API version

id

Person ID

endpointId

Client Certificate Enrollment Form Endpoint ID

Example request

$ curl 'https://cert-manager.com/api/person/v2/103/invitation/endpoint/69/account' -i -X GET \
    -H 'login: admin_customer15090' \
    -H 'password: Password123' \
    -H 'customerUri: test'

Request headers

Name Description

login

User login name

password

User password

customerUri

Customer URI part

Response body

[{"id":37,"name":"Client Cert Enrollment Form Account","profiles":["Client cert SASP -2034846737","Client cert SASP -779060493"]}]

Response fields

Path Type Description

[]

Array

Array of Enrollment Form Endpoint Accounts

[].id

Number

Account ID

[].name

String

Account name

[].profiles[]

Array

Array of profiles names

Domain resource (Ver.1)

Create new domain

Request fields

Path Type Description Constraints

name

String

Domain name

[Must not be null, Size must be between 4 and 255 inclusive]

description

String

Domain description (optional)

[Must not be null, Size must be between 0 and 255 inclusive]

active

Boolean

Required domain state

Set 'false' if you want to create domain in suspended state

delegations[]

Array

Domain delegations list

[Must not be null, Size must be between 1 and 2147483647 inclusive]

delegations[].orgId

Number

Organization ID

delegations[].certTypes

Array

Domain delegation certificate types

Allowed values: [SSL, SMIME, CodeSign]

Example request

$ curl 'https://cert-manager.com/api/domain/v1' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14059' \
    -H 'password: Password123' \
    -H 'customerUri: cst14059' \
    -d '{"name":"testdomain.com","description":"Domain created via REST API","active":true,"delegations":[{"orgId":50,"certTypes":["SSL","CodeSign","SMIME"]}]}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/domain/v1/57

Delete domain

Only MRAO admin can delete domains.

Path parameters

Table 1. /api/domain/{version}/{id}
Parameter Description

id

Domain ID

version

API version

Example request

$ curl 'https://cert-manager.com/api/domain/v1/59' -i -X DELETE \
    -H 'login: admin_customer14069' \
    -H 'password: Password123' \
    -H 'customerUri: cst14069'

Example response

HTTP/1.1 200 OK

Get domain info

Response fields

Path Type Description

id

Number

Domain id

name

String

Domain name

delegationStatus

String

Domain delegation status. Available values are: [ACTIVE, REQUESTED]

state

String

Domain state. Available values are: [SUSPENDED, ACTIVE]

validationStatus

String

Domain validation status. This field is shown only if DCV is enabled for customer. Available values are: [Not validated, Validated, Expired]

dcvExpiration

String

DCV expiration date. This field is shown only if DCV is enabled for customer. Format: yyyy-MM-dd

delegations[]

Array

List of domain delegations, filtered by client admin credentials.

delegations[].orgId

Number

Organization id

delegations[].certTypes

Array

Certificate types. Available values are: [SSL, SMIME, CodeSign]

delegations[].status

String

Delegation status. Available values are: [ACTIVE, REQUESTED]

Example request

$ curl 'https://cert-manager.com/api/domain/v1/50' -i -X GET \
    -H 'login: admin_customer14089' \
    -H 'password: Password123' \
    -H 'customerUri: cst14089'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 206

{"id":50,"name":"testdomain.com","delegationStatus":"ACTIVE","state":"ACTIVE","validationStatus":"VALIDATED","dcvExpiration":"2020-08-08","delegations":[{"orgId":544,"certTypes":["SSL"],"status":"ACTIVE"}]}

Get domain list

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

name

Name filter

state

State filter, possible values [active, inactive]

status

Status filter, possible values [requested, approved]

orgId

Organization ID filter

Example request

$ curl 'https://cert-manager.com/api/domain/v1?size=10&position=0' -i -X GET \
    -H 'login: admin_customer14077' \
    -H 'password: Password123' \
    -H 'customerUri: cst14077'

Response fields

Path Type Description

[]

Array

Array of requested domains

[].id

Number

Domain ID

[].name

String

Domain

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 125

[{"id":0,"name":"example0.com"},{"id":1,"name":"example1.com"},{"id":2,"name":"example2.com"},{"id":3,"name":"example3.com"}]

Get domains count

Request parameters

Parameter Description

size

Count of returned entries

position

Position shift

name

Name filter

state

State filter, possible values [active, inactive]

status

Status filter, possible values [requested, approved]

orgId

Organization ID filter

Example request

$ curl 'https://cert-manager.com/api/domain/v1/count?size=10&position=0' -i -X GET \
    -H 'login: admin_customer14039' \
    -H 'password: Password123' \
    -H 'customerUri: cst14039'

Response fields

Path Type Description

count

Number

Count for domains

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 11

{"count":4}

Activate domain

Example request

$ curl 'https://cert-manager.com/api/domain/v1/56/activate' -i -X PUT \
    -H 'login: admin_customer14011' \
    -H 'password: Password123' \
    -H 'customerUri: cst14011'

Example response

HTTP/1.1 200 OK

Suspend domain

Example request

$ curl 'https://cert-manager.com/api/domain/v1/60/suspend' -i -X PUT \
    -H 'login: admin_customer14121' \
    -H 'password: Password123' \
    -H 'customerUri: cst14121'

Example response

HTTP/1.1 200 OK

Delegate domain

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

[Must be at least 1, Must not be null]

certTypes

Array

Certificate types

Allowed values: [SSL, SMIME, CodeSign]

Example request

$ curl 'https://cert-manager.com/api/domain/v1/50/delegation' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14015' \
    -H 'password: Password123' \
    -H 'customerUri: cst14015' \
    -d '{"orgId":50,"certTypes":["SSL","CodeSign","SMIME"]}'

Example response

HTTP/1.1 200 OK

Remove domain delegation

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

[Must be at least 1, Must not be null]

certTypes

Array

Certificate types

Allowed values: [SSL, SMIME, CodeSign]

Path parameters

Table 1. /api/domain/{version}/{id}/delegation
Parameter Description

id

Domain ID.

version

API version

Example request

$ curl 'https://cert-manager.com/api/domain/v1/50/delegation' -i -X DELETE \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14109' \
    -H 'password: Password123' \
    -H 'customerUri: cst14109' \
    -d '{"orgId":50,"certTypes":["SSL","CodeSign","SMIME"]}'

Example response

HTTP/1.1 200 OK

Approve delegation

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

[Must be at least 1, Must not be null]

Path parameters

Table 1. /api/domain/{version}/{id}/delegation/approve
Parameter Description

id

Domain ID.

version

API version

Example request

$ curl 'https://cert-manager.com/api/domain/v1/50/delegation/approve' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14027' \
    -H 'password: Password123' \
    -H 'customerUri: cst14027' \
    -d '{"orgId":50}'

Example response

HTTP/1.1 200 OK

Reject delegation

Request fields

Path Type Description Constraints

orgId

Number

Organization ID

[Must be at least 1, Must not be null]

Path parameters

Table 1. /api/domain/{version}/{id}/delegation/reject
Parameter Description

id

Domain ID.

version

API version

Example request

$ curl 'https://cert-manager.com/api/domain/v1/50/delegation/reject' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer14097' \
    -H 'password: Password123' \
    -H 'customerUri: cst14097' \
    -d '{"orgId":50}'

Example response

HTTP/1.1 200 OK

Organization resource (Ver.1)

Get organization list

Example request

$ curl 'https://cert-manager.com/api/organization/v1' -i -X GET \
    -H 'login: admin_drao_customer14656' \
    -H 'password: Password123' \
    -H 'customerUri: cst14656'

Response fields

Path Type Description

[]

Array

Array of requested organizations

[].name

String

Organization name

[].id

Number

Organization ID

[].departments[]

Array

Departments array

[].departments[].id

Number

Department ID

[].departments[].name

String

Department name

[].departments[].parentName

String

Department’s parent organization name

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 166

[{"id":843,"name":"org4Test","departments":[{"id":844,"parentName":"org4Test","name":"department4Test"},{"id":845,"parentName":"org4Test","name":"department4Test"}]}]

Get organization list by role

Path parameters

Table 1. /api/organization/{version}/managedBy/{role}
Parameter Description

version

API version

role

Client admin’s requested role

Example request

$ curl 'https://cert-manager.com/api/organization/v1/managedBy/DRAO_SSL' -i -X GET \
    -H 'login: admin_rao_customer14696' \
    -H 'password: Password123' \
    -H 'customerUri: cst14696'

Response fields

Path Type Description

[]

Array

Array of requested organizations

[].id

Number

Organization ID

[].name

String

Organization name

[].parentName

String

Department’s parent organization name

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 121

[{"id":864,"parentName":"org4Test","name":"department4Test"},{"id":865,"parentName":"org4Test","name":"department4Test"}]

Get organization list by report type

Get organization list related to specific certificate profile.

Path parameters

Table 1. /api/organization/v1/report-type/{type}
Parameter Description

type

Certificate type: SSL, Client, Device, CodeSign.

Example request

$ curl 'https://cert-manager.com/api/organization/v1/report-type/SSL' -i -X GET \
    -H 'login: admin_rao_customer14664' \
    -H 'password: Password123' \
    -H 'customerUri: cst14664'

Response fields

Path Type Description

[]

Array

Array of requested organizations

[].id

Number

Organization ID

[].name

String

Organization name

[].departments[]

Array

Departments

[].departments[].id

Number

Department ID

[].departments[].name

String

Department name

[].departments[].parentName

String

Department’s parent organization name

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 166

[{"id":847,"name":"org4Test","departments":[{"id":848,"parentName":"org4Test","name":"department4Test"},{"id":849,"parentName":"org4Test","name":"department4Test"}]}]

Create organization

Request fields

Path Type Description Constraints

parentOrgName

String

Parent organization name

[Must not be blank, Size must be between 0 and 64 inclusive]

name

String

Organization or department name

[Must not be blank, Size must be between 0 and 64 inclusive]

address1

String

Address 1

[Must not be blank, Size must be between 0 and 128 inclusive]

address2

String

Address 2

[Size must be between 0 and 128 inclusive]

address3

String

Address 3

[Size must be between 0 and 128 inclusive]

city

String

City

[Size must be between 0 and 32 inclusive, Either 'city' or 'stateProvince' must not be blank at least]

stateProvince

String

State or Province

[Size must be between 0 and 32 inclusive, Either 'city' or 'stateProvince' must not be blank at least]

postalCode

String

Postal Code

[Size must be between 0 and 10 inclusive]

clientCertificate

Object

Client certificate details

[Must not be null]

clientCertificate.allowKeyRecoveryByMasterAdmins

Boolean

Allow key recovery by Master admins

[]

clientCertificate.allowKeyRecoveryByOrgAdmins

Boolean

Allow key recovery by Org admins

[]

clientCertificate.allowKeyRecoveryByDepartmentAdmins

Boolean

Allow key recovery by Department admins

[]

country

String

Country

[Must not be blank, Size must be between 2 and 2 inclusive]

Example request

$ curl 'https://cert-manager.com/api/organization/v1' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: admin_customer14438' \
    -H 'password: Password123' \
    -H 'customerUri: cst14438' \
    -d '{"parentOrgName":"org4Test","name":"TDINKICSGCGUARQRLPOYYEEJQLKXINXIDFXNHLHTXGXQTWJXLCIUXNSRYEMEGMUC","address1":"MJISYJKYGGAJEIQEVVRXOMESSXIFTWLUGRDIBMPIRYSROGWNDXZFCHRMKRNHGICBVGSVDQOQDVYRFAQLQLPNFKAXKAVUFWCLPRLVNOQFAYBUPSQRZFWLONVSUHTZNOWU","address2":"CMUOQETHXQLBXLMEXOUGHVOPWJVWWLDLDFUKVSCWRBBRGNJLDZDJKQISRRVLHVHVGWPDLWOSGZCGLPBQZMKURVKFZLINAXMZTGOTTDPMRNSMYXFMOGBCISPAFPBYAZUC","address3":"DHSSYQMRKVZXLBBVUIPMPMNKZTZMHDPAVDQHLTKWSSLTJXSFTTSTYXQEBTJGLAGECCENIIPLULJZXWIXXUVNHDYDQJOQPGNLHGSGZDUMZHANVOUKVQCSSWMZYFODCMRP","city":"FMBBNKJDNWRLEMEGZQCFFOHLWETBMHVF","stateProvince":"ZPREURVYAHPXJZSGBLRHZZMPIUDJRMYA","postalCode":"4144256779","country":"MP","clientCertificate":{"allowKeyRecoveryByMasterAdmins":true,"allowKeyRecoveryByOrgAdmins":false,"allowKeyRecoveryByDepartmentAdmins":true}}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/organization/v1/730

Get organization details

Get detailed information about organization.

Path parameters

Table 1. /api/organization/{version}/{id}
Parameter Description

version

API version

id

ID of organization whose details are being requested

Example request

$ curl 'https://cert-manager.com/api/organization/v1/831' -i -X GET \
    -H 'login: admin_rao_customer14632' \
    -H 'password: Password123' \
    -H 'customerUri: cst14632'

Response fields

Path Type Description

name

String

Organization name

id

Number

Organization ID

address1

String

Address details

address2

String

Address details

address3

String

Address details

city

String

City

stateOrProvince

String

State or province

postalCode

String

Postal code

country

String

Country

incorporatingAgency

String

Incorporating agency

mainTelephoneNumber

String

Main telephone number

dunAndBradstreetNumber

String

DUN and bradstreet number

companyRegistrationNumber

String

Company regisstration number

jurisdictionOfIncorporationCity

String

Jurisdiction of incorporation city

stateOfIncorporation

String

State of incorporation

countryOfIncorporation

String

Country of incorporation

dateOfIncorporation

String

Date of incorporation

businessCategory

String

Business category

contractSignerTitle

String

Contract signer title

contractSignerForename

String

Contract signer forename

contractSignerSurname

String

Contract signer surname

contractSignerEmail

String

Contract signer email

contractSignerTelephoneNumber

String

Contract signer telephone number

contractSignerStreet

String

Contract signer street

contractSignerLocality

String

Contract signer locality

contractSignerState

String

Contract signer state

contractSignerPostalCode

String

Contract signer postal code

contractSignerCountry

String

Contract signer country

contractSignerRelationship

String

Contract signer relationship

validationStatus

String

Validation status

secondaryValidationStatus

String

Secondary validation status

clientCertificate.allowKeyRecoveryByMasterAdmins

Boolean

Allow key recovery by Master admins

clientCertificate.allowKeyRecoveryByOrgAdmins

Boolean

Allow key recovery by Org admins

clientCertificate.allowKeyRecoveryByDepartmentAdmins

Boolean

Allow key recovery by Department admins

certTypes[]

Array

Array of allowed certificate types

departments[]

Array

Departments array

departments[].id

Number

Department ID

departments[].name

String

Department name

departments[].parentName

String

Department’s parent organization name

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1267

{"id":831,"name":"org4Test","certTypes":["SSL"],"departments":[{"id":832,"parentName":"org4Test","name":"department4Test"},{"id":833,"parentName":"org4Test","name":"department4Test"}],"address1":"Deribasovskaya 1","address2":"Street 2","address3":"Street 3","city":"Odesa","stateOrProvince":"Odeska oblast","postalCode":"65059","country":"UA","validationStatus":"Not Validated","secondaryValidationStatus":"Not Validated","clientCertificate":{"allowKeyRecoveryByMasterAdmins":true,"allowKeyRecoveryByOrgAdmins":true,"allowKeyRecoveryByDepartmentAdmins":true},"incorporatingAgency":"Inc Agency","mainTelephoneNumber":"22-22-22","dunAndBradstreetNumber":"123","companyRegistrationNumber":"234","jurisdictionOfIncorporationCity":"Jur City","stateOfIncorporation":"Jur State","countryOfIncorporation":"US","dateOfIncorporation":"03/07/2023","businessCategory":"Private Organization","contractSignerTitle":"Title","contractSignerForename":"Forename","contractSignerSurname":"Surname","contractSignerEmail":"some@email.com","contractSignerTelephoneNumber":"33-33-33","contractSignerStreet":"Street","contractSignerLocality":"Locality","contractSignerState":"State","contractSignerPostalCode":"12345","contractSignerCountry":"US","contractSignerRelationship":"Relationship"}

Reports resource (Ver.1)

Several reports can be generated.

Certificate Status Codes

These codes can be used as parameters.

Code

Status

0

Any

1

Requested

2

Issued

3

Revoked

4

Expired

5

Enrolled - Pending Download

6

Not Enrolled

7

Awaiting Approval

8

Approved

9

Applied

10

Downloaded (Deprecated, Issued with "certificateDateAttribute" equal to "Date of Downloading" should be used instead)

11

External (Deprecated, falls back to Issued. Issued with "certificateRequestSource" should be used instead)

Date Attribute Type Codes

These codes can be used as parameters.

Code

Attribute Type

0

Date of Enrollment

1

Date of Downloading

2

Date of Revocation

3

Date of Expiration

4

Date of Request

5

Date of Issuance

6

Date of Invitation

Activity Log Report

Retrieves a log of SCM activities for a customer’s account, including actions on Certificates and actions of Agents.

Example request

$ curl 'https://cert-manager.com/api/report/v1/activity' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15564' \
    -H 'password: Password123' \
    -H 'customerUri: cst15564' \
    -d '{"from":"2019-01-01T00:00:00.000Z","to":"2019-01-31T00:00:00.000Z"}'

Request fields

Path Type Description Constraints

from

String

Activity log includes the events that occurred from this date (ISO format, YYYY-MM-DD)

Filters the audit log records by 'created' date.

to

String

Activity log includes the events that occurred not later than this date (ISO format, YYYY-MM-DD)

Filters the audit log records by 'created' date.

Response body

{"statusCode":0,"reports":[{"id":100500,"action":{"id":42,"actionName":"admin: login success"},"admin":{"login":"admin","fullName":"MRAO admin","email":"admin@somecompany.com"},"accessMethod":"UI access","address":"37.214.176.150","date":"2019-01-02T00:00:00.000+02:00"}]}

Response fields

Path Type Description

statusCode

Number

Report execution status code

reports.[]

Array

Array of reported activity log records with details

reports.[].id

Number

Activity log record ID

reports.[].accessMethod

String

An access method used to perform the action

reports.[].date

String

Action timestamp

reports.[].address

String

Source IP address of the action request

reports.[].description

String

Activity log record description

reports.[].action

Object

Action info

reports.[].action.id

Number

Action ID

reports.[].action.actionName

String

Action name

reports.[].org

Object

Organization info

reports.[].org.name

String

An organization name which this action is associated with

reports.[].org.address1

String

Organization address line 1

reports.[].org.address2

String

Organization address line 2

reports.[].org.address3

String

Organization address line 3

reports.[].person

Object

Person info

reports.[].person.name

String

A person name which this action is associated with

reports.[].person.email

String

Person email

reports.[].person.guid

String

Person GUID

reports.[].admin

Object

Admin user info

reports.[].admin.login

String

An admin login which this action is associated with

reports.[].admin.fullName

String

Admin full name

reports.[].admin.email

String

Admin email

reports.[].smime

Object

Client certificate info

reports.[].smime.subject

String

Client certificate subject

reports.[].smime.orderNumber

Number

The obsolete parameter for the order identifier under which the client certificate request has been processed. backendCertId should be used instead

reports.[].smime.backendCertId

String

Client certificate ID in enrolling backend

reports.[].ssl

Object

SSL certificate info

reports.[].ssl.commonName

String

SSL certificate common name

reports.[].ssl.orderNumber

Number

The obsolete parameter for the order identifier under which the SSL certificate request has been processed. backendCertId should be used instead

reports.[].ssl.backendCertId

String

SSL certificate ID in enrolling backend

reports.[].ssl.term

Number

SSL certificate term (days)

reports.[].ssl.type

String

SSL certificate profile name

reports.[].notif

Object

Notification info

reports.[].notif.description

String

Notification description

SSL Certificates Report

Example request

$ curl 'https://cert-manager.com/api/report/v1/ssl-certificates' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15593' \
    -H 'password: Password123' \
    -H 'customerUri: cst15593' \
    -d '{"from":"2019-01-01T00:00:00.000Z","to":"2019-01-31T00:00:00.000Z","organizationIds":[1102],"certificateStatus":1,"certificateDateAttribute":1,"certificateRequestSource":1,"serialNumberFormat":""}'

Request fields

Path Type Description Constraints

organizationIds

Array

Unique identifiers of the organizations. The report contains SSL certificates associated with these organizations.

[]

commonName

String

The report will contain only certs with Common Name pattern like this

[Must match the regular expression: ^((?!.*[><\\].*).)*$, Size must be between 0 and 256 inclusive]

externalRequester

String

The report will contain only certs with External Requester pattern like this (case sensitive)

[Size must be between 0 and 512 inclusive]

certificateStatus

Number

Status ID of SSL certificates that are included in the report.

The values applicable to this type of report are: [0(Any), 1(Requested), 2(Issued), 3(Revoked), 4(Expired)]. 11(External) - deprecated, see 'Certificate Status Codes' section for details.

certificateDateAttribute

Number

Unique identifier of the date type.

The values applicable to this type of report are: [2(Revocation Date), 3(Expiration Date), 4(Request Date), 5(Issuance Date)]

from

String

The report contains SSL certificates which date, defined by 'certificateDateAttribute' request field, is not earlier than this date.

ISO format, YYYY-MM-DD. Must be earlier than 'to' date.

to

String

The report contains SSL certificates which date, defined by 'certificateDateAttribute' request field, is not later than this date.

ISO format, YYYY-MM-DD. Must not be earlier than 'from' date.

certificateRequestSource

Number

The source a certificate has been requested from.

The values applicable to this type of report are:

0 (Enrollment Form)

1 (Client Admin)

2 (Web API)

3 (Discovery)

4 (Imported)

5 (SCEP)

7 (MS Agent)

9 (Bulk Request)

10 (ACME)

11 (EST)

12 (REST API)

serialNumberFormat

String

Special format of a Serial Number, if required.

If the value specified is 'HEXWithLeadingZeros', then report contains certificate serial numbers in HEX format without leading zeros stripped.

Response body

{"statusCode":0,"reports":[{"id":42,"type":"Extended Wildcard Premium Customized","typeId":1046,"orgId":51,"commonName":"gov.bb","subjAltNames":"dNSName=www.gov.bb","status":"Requested","requester":"admin@somecompany.com","organizationName":"Office of Strategic Influence","serverType":"OTHER","requestedVia":"API","term":365,"comments":"Enrolled by urgent request","requested":"2019-01-02T00:00:00.000+02:00","serialNumber":"","city":"Bridgetown","state":"St. Michael","country":"BB","publicKeyAlg":"RSA","publicKeySize":"2048","publicKeyType":"RSA - 2048","customFields":[{"name":"Priority","value":"Medium"}]}]}

Response fields

Path Type Description

statusCode

Number

Report execution status code

reports.[]

Array

Array of reported SSL certificates with details

reports.[].commonName

String

Certificate common name

reports.[].id

Number

An ID using which this certificate can be renewed or revoked through Enrollment form

reports.[].orgId

Number

An organization ID which this certificate is associated with

reports.[].organizationName

String

An organization name which this certificate is associated with

reports.[].city

String

An organization city which this certificate is associated with

reports.[].state

String

An organization state which this certificate is associated with

reports.[].country

String

An organization country which this certificate is associated with

reports.[].status

String

The status of this certificate

reports.[].orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

reports.[].backendCertId

String

Certificate ID in enrolling backend

reports.[].serverType

String

Deprecated

reports.[].servers

String

Deprecated

reports.[].typeId

Number

Certificate Profile ID

reports.[].type

String

Certificate Profile name

reports.[].term

Number

Term (days)

reports.[].issuer

String

The subject of the issuing CA certificate

reports.[].requester

String

Requester

reports.[].approver

String

Approver

reports.[].externalRequester

String

External requester

reports.[].comments

String

Comments

reports.[].requested

String

Requested date

reports.[].approved

String

Approved date

reports.[].declined

String

Declined date

reports.[].downloaded

String

Downloaded date

reports.[].expires

String

Expiration date

reports.[].revoked

String

Revocation date

reports.[].replaced

String

Replaced date

reports.[].ipAddresses

String

IP addresses

reports.[].publicKeyAlg

String

Key algorithm (deprecated, see "publicKeyType")

reports.[].publicKeySize

String

Key size (deprecated, see "publicKeyType")

reports.[].publicKeyType

String

Key type. For example: RSA - 2048, EC - P-256.

reports.[].subjAltNames

String

Subject alternative names

reports.[].serialNumber

String

SSL Serial Number

reports.[].requestedVia

String

Requested Via. Possible values: 'WEB_FORM', 'CLIENT_ADMIN', 'API', 'DISCOVERY', 'IMPORTED', 'SCEP', 'CD_AGENT', 'MS_AGENT', 'MS_CA', 'BULK_REQUEST', 'ACME', 'EST', 'REST'

reports.[].sha1

String

SHA1 Hash

reports.[].md5

String

MD5 Hash

reports.[].customFields.[]

Array

Custom fields

reports.[].customFields.[].name

String

Custom field name

reports.[].customFields.[].value

String

Custom field value

Client Certificates Report

Example request

$ curl 'https://cert-manager.com/api/report/v1/client-certificates' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15568' \
    -H 'password: Password123' \
    -H 'customerUri: cst15568' \
    -d '{"from":"2019-01-01T00:00:00.000Z","to":"2019-01-31T00:00:00.000Z","organizationIds":[1088],"certificateStatus":3,"certificateDateAttribute":1}'

Request fields

Path Type Description Constraints

organizationIds

Array

Unique identifiers of the organizations. The report contains Client certificates associated with these organizations.

[]

certificateStatus

Number

Status ID of Client certificates that are included in the report.

The values applicable to this type of report are: [0(Any), 2(Enrolled), 3(Revoked), 4(Expired), 5(Enrolled - Pending Download), 6(Not Enrolled)]. 2(Enrolled) - Former 'Enrolled - Downloaded'. Use with "certificateDateAttribute" equal to "Date of Downloading" to get old semantic. Person list (without client certificates) will be present in the report as well for values: [0(Any), 6(Not Enrolled)]

certificateDateAttribute

Number

Unique identifier of the date type.

The values applicable to this type of report are: [0(Enrolled Date), 1(Downloaded Date), 2(Revocation Date), 3(Expiration Date)]

from

String

The report contains Client certificates which date, defined by 'certificateDateAttribute' request field, is not earlier than this date.

ISO format, YYYY-MM-DD. Must be earlier than 'to' date.

to

String

The report contains Client certificates which date, defined by 'certificateDateAttribute' request field, is not later than this date.

ISO format, YYYY-MM-DD. Must not be earlier than 'from' date.

Response body

{"statusCode":0,"reports":[{"id":42,"person":{"name":"MRAO admin","email":"admin@somecompany.com","guid":"b89499c0-6329-359e-8a9f-1a42a7afa0c3"},"organization":{"id":"1","name":"Office of Strategic Influence"},"subject":"MRAO admin<admin@somecompany.com>","email":"admin@somecompany.com","orderNumber":100500,"backendCertId":"100500","enrolled":"2019-01-02T00:00:00.000+02:00","expire":"2019-01-03T00:00:00.000+02:00","enrollType":"Self Enroll"}]}

Response fields

Path Type Description

statusCode

Number

Report execution status code

reports.[]

Array

Array of reported client certificates with details

reports.[].id

Number

An ID using which this certificate can be renewed or revoked through Enrollment form

reports.[].subject

String

Certificate subject

reports.[].email

String

Certificate email

reports.[].orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

reports.[].backendCertId

String

Certificate ID in enrolling backend

reports.[].enrolled

String

Enrolled date

reports.[].expire

String

Expiration date

reports.[].enrollType

String

Enrollment type. Possible values: 'Admin Enroll', 'Self Enroll', 'API Enroll', 'Auto Enroll', 'CSV Enroll', 'SCEP Enroll', 'IdP Enroll', 'MS Agent Enroll', 'Discovery', 'MS CA Enroll', 'Imported', 'EST Enroll', 'REST Enroll API'

reports.[].organization

Object

Organization info

reports.[].organization.id

String

Organization ID

reports.[].organization.name

String

An organization name which this certificate is associated with

reports.[].person

Object

Person info

reports.[].person.name

String

A person name which this certificate is associated with

reports.[].person.email

String

Person email

reports.[].person.guid

String

Person GUID

Device Certificates Report

Example request

$ curl 'https://cert-manager.com/api/report/v1/device-certificates' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15576' \
    -H 'password: Password123' \
    -H 'customerUri: cst15576' \
    -d '{"from":"2023-03-06T22:17:24.880Z","to":"2023-03-08T22:17:24.880Z","certificateStatus":8,"certificateDateAttribute":4,"serialNumberFormat":""}'

Request fields

Path Type Description Constraints

organizationIds

Array

Unique identifiers of the organizations. The report contains Device certificates associated with these organizations.

[]

certificateStatus

Number

Status ID of Device certificates that are included in the report.

The values applicable to this type of report are: [0(Any), 7(Awaiting Approval), 8(Approved), 9(Applied), 2(Issued), 3(Revoked), 4(Expired)]. 10(Downloaded) - deprecated, see 'Certificate Status Codes' section for details.

certificateDateAttribute

Number

Unique identifier of the date type.

The values applicable to this type of report are: [2(Revocation Date), 3(Expiration Date), 4(Request Date), 5(Issuance Date)]

from

String

The report contains Device certificates which date, defined by 'certificateDateAttribute' request field, is not earlier than this date.

ISO format, YYYY-MM-DD. Must be earlier than 'to' date.

to

String

The report contains Device certificates which date, defined by 'certificateDateAttribute' request field, is not later than this date.

ISO format, YYYY-MM-DD. Must not be earlier than 'from' date.

serialNumberFormat

String

Special format of a Serial Number, if required.

If the value specified is 'HEXWithLeadingZeros', then report contains certificate serial numbers in HEX format without leading zeros stripped.

Response body

{"statusCode":0,"reports":[{"id":93,"commonName":"34356576543tnl54hgnu49u90g","organization":{"id":"1092","name":"org4Test"},"deviceCertStatus":"Approved","subject":"C=UA,ST=Odessa,L=Odessa,O=Test,OU=Test,CN=Test,E=test@test.test","email":"Someone@nobody.comodo.od.ua","city":"","state":"","country":"","orderNumber":100500,"backendCertId":"100500","serialNumber":"","certTypeName":"Device cert SASP -907490468","expire":"2024-03-06T22:17:24.843+02:00","enrollType":"API","keyAlgorithm":"RSA","keySize":2048,"keyType":"RSA - 2048","signatureAlgorithm":""}]}

Response fields

Path Type Description

statusCode

Number

Report execution status code

reports.[]

Array

Array of reported device certificates with details

reports.[].id

Number

An ID using which this certificate can be renewed or revoked through Enrollment form

reports.[].commonName

String

Certificate common name

reports.[].subject

String

Certificate subject

reports.[].city

String

An organization city which this certificate is associated with

reports.[].state

String

An organization state which this certificate is associated with

reports.[].country

String

An organization country which this certificate is associated with

reports.[].deviceCertStatus

String

The status of this certificate

reports.[].serialNumber

String

Device certificate serial number

reports.[].email

String

Certificate email

reports.[].orderNumber

Number

The obsolete parameter for the order identifier under which the certificate request has been processed. backendCertId should be used instead

reports.[].backendCertId

String

Certificate ID in enrolling backend

reports.[].enrolled

String

Enrolled date

reports.[].expire

String

Expiration date

reports.[].enrollType

String

Enrollment type. Possible values: 'API', 'DISCOVERY', 'API_APPROVAL', 'SELF_ENROLLMENT', 'SCEP_ENROLL', 'MS_CA', 'MS_CA_ENROLL_ON_BEHALF', 'UI', 'EST_ENROLL', 'REST_ENROLL'

reports.[].keyAlgorithm

String

Key algorithm (deprecated, see "keyType")

reports.[].keySize

Number

Key size (deprecated, see "keyType")

reports.[].keyType

String

Key type. For example: RSA - 2048, EC - P-256.

reports.[].signatureAlgorithm

String

Key type. For example: RSA - 2048, EC - P-256.

reports.[].certTypeName

String

Certificate Profile name

reports.[].keyUsage

String

Key usage extensions define the purpose of the public key contained in a certificate

reports.[].extendedKeyUsage

String

Extended key usage further refines key usage extensions

reports.[].caId

String

Certificate authority ID

reports.[].caName

String

Certificate authority name

reports.[].organization

Object

Organization info

reports.[].organization.id

String

Organization ID

reports.[].organization.name

String

An organization name which this certificate is associated with

Domains Report

Example request

$ curl 'https://cert-manager.com/api/report/v1/domains' -i -X POST \
    -H 'Content-Type: application/json;charset=utf-8' \
    -H 'login: admin_customer15584' \
    -H 'password: Password123' \
    -H 'customerUri: cst15584'

HTTP request

POST /api/report/v1/domains HTTP/1.1
Content-Type: application/json;charset=utf-8
login: admin_customer15584
password: Password123
customerUri: cst15584
Host: cert-manager.com

Response body

{"statusCode":0,"reports":[{"id":42,"name":"gov.bb","status":"ACTIVE","requested":"2019-01-02T00:00:00.000+02:00","dcvStatus":"Validated","stickyUntil":"2019-01-03T00:00:00.000+02:00"}]}

Response fields

Path Type Description

statusCode

Number

Report execution status code

reports.[]

Array

Array of reported domain records with details

reports.[].id

Number

Domain id

reports.[].name

String

Domain name

reports.[].status

String

Domain state. Available values are: [Suspended, Active]

reports.[].requested

String

Domain requested date

reports.[].stickyUntil

String

DCV expiration date

reports.[].dcvStatus

String

Domain control validation status. Possible values: 'Not Initiated', 'Validated', 'Action Required', 'Expired'

ACME account resource (Ver.1)

Create new ACME account

HTTP request

POST /api/acme/v1/account HTTP/1.1
Content-Type: application/json
login: nick-15272
password: Password123
customerUri: cst15267
Content-Length: 536
Host: cert-manager.com

{"acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1043,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"}}

Path parameters

Table 1. /api/acme/{version}/account
Parameter Description

version

API version (v1)

Request fields

Path Type Description Constraints

name

String

ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

acmeServer

String

ACME account server name

[Must not be blank, Size must be between 1 and 1024 inclusive]

organizationId

Number

ACME account organization ID

[Must be at least 1, Must not be null]

evDetails.orgName

String

EV organization name

[Must not be blank, Size must be between 0 and 128 inclusive]

evDetails.orgCountry

String

EV organization country

[Size must be between 2 and 2 inclusive]

evDetails.postOfficeBox

String

EV organization post office box

[Size must be between 0 and 40 inclusive]

evDetails.orgAddress1

String

EV organization address 1

[Size must be between 0 and 128 inclusive]

evDetails.orgAddress2

String

EV organization address 2

[Size must be between 0 and 128 inclusive]

evDetails.orgAddress3

String

EV organization address 3

[Size must be between 0 and 128 inclusive]

evDetails.orgLocality

String

EV organization city

[Size must be between 0 and 128 inclusive]

evDetails.orgStateOrProvince

String

EV organization state/province

[Size must be between 0 and 128 inclusive]

evDetails.orgPostalCode

String

EV organization postal code

[Size must be between 0 and 40 inclusive]

evDetails.orgJoiState

String

EV organization state or province of incorporation

[Size must be between 0 and 128 inclusive]

evDetails.orgJoiCountry

String

EV organization country of incorporation

[Size must be between 2 and 2 inclusive]

evDetails.orgJoiLocality

String

EV organization jurisdiction of incorporation city or town

[Size must be between 0 and 128 inclusive]

evDetails.assumedName

String

EV organization assumed name

[Size must be between 0 and 128 inclusive]

evDetails.businessCategory

String

EV organization business category. Values: [PrivateOrganization, GovernmentEntity, BusinessEntity, NonCommercialEntity]

[]

evDetails.dateOfIncorporation

String

EV organization date of incorporation

[Size must be between 8 and 8 inclusive]

evDetails.companyNumber

String

EV organization registration number

[Size must be between 0 and 25 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15272' \
    -H 'password: Password123' \
    -H 'customerUri: cst15267' \
    -d '{"acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1043,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"}}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/acme/v1/account/60

Response headers

Name Description

Location

New ACME account resource added on Private CA

List ACME accounts

HTTP request

GET /api/acme/v1/account?position=0&size=10&organizationId=1052&name=OV+ACME+Account&acmeServer=OV+ACME+Server&status=Pending HTTP/1.1
login: nick-15335
password: Password123
customerUri: cst15330
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account
Parameter Description

version

API version (v1)

Request parameters

Parameter Description

position

Position shift

size

Count of entries

organizationId

Organization ID. You can append '%2C-2' (e.g. organizationId=105%2C-2) URL-encoded suffix for none departments selection, only organization(e.g. with ID=105) itself.

name

ACME account name

acmeServer

ACME account server name

certValidationType

ACME account server validation type. Values: [DV, OV, EV]

status

ACME account status

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account?position=0&size=10&organizationId=1052&name=OV+ACME+Account&acmeServer=OV+ACME+Server&status=Pending' -i -X GET \
    -H 'login: nick-15335' \
    -H 'password: Password123' \
    -H 'customerUri: cst15330'

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 407

[{"id":71,"accountId":"bf0e6668-265d-46b2-bec0-aa172a4f76f3","macId":"bf0e6668-265d-46b2-bec0-aa172a4f76f3","macKey":"d7215fe4-4be5-4084-a6fe-dcf51c9f538b","acmeServer":"OV ACME Server","name":"OV ACME Account","organizationId":1052,"certValidationType":"OV","status":"Pending","ovOrderNumber":1432381264,"evDetails":{},"contacts":"","domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME accounts existing on SASP public CA side

Response fields

Path Type Description

[]

Array

List of ACME accounts

[].id

Number

ACME account entity ID

[].name

String

ACME account name

[].status

String

ACME account status

[].macKey

String

ACME account HMAC key

[].macId

String

ACME account key ID

[].acmeServer

String

ACME account server name

[].organizationId

Number

ACME account organization ID

[].certValidationType

String

ACME account server validation type. Values: [DV, OV, EV]

[].accountId

String

ACME account ID

[].ovOrderNumber

Number

OV order number

[].contacts

String

ACME account contacts

[].evDetails

Object

ACME account EV details

[].domains[]

Array

ACME account domains

[].domains[].name

String

ACME account domain name

Find ACME account by ID

HTTP request

GET /api/acme/v1/account/67 HTTP/1.1
login: nick-15320
password: Password123
customerUri: cst15315
Accept: application/json
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v1)

id

ACME account entity ID

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account/67' -i -X GET \
    -H 'login: nick-15320' \
    -H 'password: Password123' \
    -H 'customerUri: cst15315' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 807

{"id":67,"accountId":"37d1bfda-84c9-4d50-94d4-2a3be89ced47","macId":"37d1bfda-84c9-4d50-94d4-2a3be89ced47","macKey":"147b3304-6358-4366-8ce4-2f9e47db4576","acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1050,"certValidationType":"EV","status":"Pending","ovOrderNumber":0,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"},"contacts":"","domains":[{"name":"domain.ccmqa.com"}]}

Response fields

Path Type Description

id

Number

ACME account entity ID

name

String

ACME account name

status

String

ACME account status

macKey

String

ACME account HMAC key

macId

String

ACME account key ID

acmeServer

String

ACME account server name

organizationId

Number

ACME account organization ID

certValidationType

String

ACME account server validation type. Values: [DV, OV, EV]

accountId

String

ACME account ID

ovOrderNumber

Number

OV order number

contacts

String

ACME account contacts

evDetails

Object

ACME account EV details

evDetails.orgName

String

EV organization name

evDetails.orgCountry

String

EV organization country

evDetails.postOfficeBox

String

EV organization post office box

evDetails.orgAddress1

String

EV organization address 1

evDetails.orgAddress2

String

EV organization address 2

evDetails.orgAddress3

String

EV organization address 3

evDetails.orgLocality

String

EV organization city

evDetails.orgStateOrProvince

String

EV organization state/province

evDetails.orgPostalCode

String

EV organization postal code

evDetails.orgJoiState

String

EV organization state or province of incorporation

evDetails.orgJoiCountry

String

EV organization country of incorporation

evDetails.orgJoiLocality

String

EV organization jurisdiction of incorporation city or town

evDetails.assumedName

String

EV organization assumed name

evDetails.businessCategory

String

EV organization business category. Values: [PrivateOrganization, GovernmentEntity, BusinessEntity, NonCommercialEntity]

evDetails.dateOfIncorporation

String

EV organization date of incorporation

evDetails.companyNumber

String

EV organization registration number

domains[]

Array

ACME account domains

domains[].name

String

ACME account domain name

Update ACME account

HTTP request

PUT /api/acme/v1/account/76 HTTP/1.1
Content-Type: application/json
login: nick-15365
password: Password123
customerUri: cst15360
Content-Length: 34
Host: cert-manager.com

{"name":"EV ACME Account Updated"}

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v1)

id

ACME account entity ID

Request fields

Path Type Description Constraints

name

String

ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account/76' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15365' \
    -H 'password: Password123' \
    -H 'customerUri: cst15360' \
    -d '{"name":"EV ACME Account Updated"}'

Example response

HTTP/1.1 200 OK

Delete ACME account

HTTP request

DELETE /api/acme/v1/account/62 HTTP/1.1
login: nick-15289
password: Password123
customerUri: cst15284
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v1)

id

ID of ACME account that being deleted

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account/62' -i -X DELETE \
    -H 'login: nick-15289' \
    -H 'password: Password123' \
    -H 'customerUri: cst15284'

Example response

HTTP/1.1 204 No Content

Add domains to ACME account

HTTP request

POST /api/acme/v1/account/52/domains HTTP/1.1
Content-Type: application/json
login: nick-15241
password: Password123
customerUri: cst15236
Content-Length: 73
Host: cert-manager.com

{"domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}

Path parameters

Table 1. /api/acme/{version}/account/{id}/domains
Parameter Description

version

API version (v1)

id

ACME account entity ID

Request fields

Path Type Description Constraints

domains[]

Array

Domains list

[Must not be empty]

domains[].name

String

Domain name

[Must not be blank, Size must be between 1 and 1024 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account/52/domains' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15241' \
    -H 'password: Password123' \
    -H 'customerUri: cst15236' \
    -d '{"domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40

{"notAddedDomains":["domain.ccmqa.com"]}

Response fields

Path Type Description

notAddedDomains[]

Array

Domains not added to the ACME account upon update operation

Remove domains from ACME account

HTTP request

DELETE /api/acme/v1/account/65/domains HTTP/1.1
Content-Type: application/json
login: nick-15304
password: Password123
customerUri: cst15299
Content-Length: 76
Host: cert-manager.com

{"domains":[{"name":"domain.ccmqa.com.ua"},{"name":"sub.domain.ccmqa.com"}]}

Path parameters

Table 1. /api/acme/{version}/account/{id}/domains
Parameter Description

version

API version (v1)

id

ACME account entity ID

Request fields

Path Type Description Constraints

domains[]

Array

Domains list

[Must not be empty]

domains[].name

String

Domain name

[Must not be blank, Size must be between 1 and 1024 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/account/65/domains' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15304' \
    -H 'password: Password123' \
    -H 'customerUri: cst15299' \
    -d '{"domains":[{"name":"domain.ccmqa.com.ua"},{"name":"sub.domain.ccmqa.com"}]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"notRemovedDomains":["domain.ccmqa.com.ua"]}

Response fields

Path Type Description

notRemovedDomains[]

Array

Domains not removed from the ACME account upon update operation

ACME account resource (Ver.2)

Create new ACME account

HTTP request

POST /api/acme/v2/account HTTP/1.1
Content-Type: application/json
login: nick-15411
password: Password123
customerUri: cst15406
Content-Length: 536
Host: cert-manager.com

{"acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1063,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"}}

Path parameters

Table 1. /api/acme/{version}/account
Parameter Description

version

API version (v2)

Request fields

Path Type Description Constraints

name

String

ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

acmeServer

String

ACME account server name

[Must not be blank, Size must be between 1 and 1024 inclusive]

organizationId

Number

ACME account organization ID

[Must be at least 1, Must not be null]

evDetails.orgName

String

EV organization name

[Must not be blank, Size must be between 0 and 128 inclusive]

evDetails.orgCountry

String

EV organization country

[Size must be between 2 and 2 inclusive]

evDetails.postOfficeBox

String

EV organization post office box

[Size must be between 0 and 40 inclusive]

evDetails.orgAddress1

String

EV organization address 1

[Size must be between 0 and 128 inclusive]

evDetails.orgAddress2

String

EV organization address 2

[Size must be between 0 and 128 inclusive]

evDetails.orgAddress3

String

EV organization address 3

[Size must be between 0 and 128 inclusive]

evDetails.orgLocality

String

EV organization city

[Size must be between 0 and 128 inclusive]

evDetails.orgStateOrProvince

String

EV organization state/province

[Size must be between 0 and 128 inclusive]

evDetails.orgPostalCode

String

EV organization postal code

[Size must be between 0 and 40 inclusive]

evDetails.orgJoiState

String

EV organization state or province of incorporation

[Size must be between 0 and 128 inclusive]

evDetails.orgJoiCountry

String

EV organization country of incorporation

[Size must be between 2 and 2 inclusive]

evDetails.orgJoiLocality

String

EV organization jurisdiction of incorporation city or town

[Size must be between 0 and 128 inclusive]

evDetails.assumedName

String

EV organization assumed name

[Size must be between 0 and 128 inclusive]

evDetails.businessCategory

String

EV organization business category. Values: [PrivateOrganization, GovernmentEntity, BusinessEntity, NonCommercialEntity]

[]

evDetails.dateOfIncorporation

String

EV organization date of incorporation

[Size must be between 8 and 8 inclusive]

evDetails.companyNumber

String

EV organization registration number

[Size must be between 0 and 25 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15411' \
    -H 'password: Password123' \
    -H 'customerUri: cst15406' \
    -d '{"acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1063,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"}}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/acme/v2/account/89

Response headers

Name Description

Location

New ACME account resource added on Private CA

List ACME accounts

HTTP request

GET /api/acme/v2/account?position=0&size=10&organizationId=1072&name=OV+ACME+Account&acmeServer=OV+ACME+Server&status=Pending HTTP/1.1
login: nick-15474
password: Password123
customerUri: cst15469
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account
Parameter Description

version

API version (v2)

Request parameters

Parameter Description

position

Position shift

size

Count of entries

organizationId

Organization ID. You can append '%2C-2' (e.g. organizationId=105%2C-2) URL-encoded suffix for none departments selection, only organization(e.g. with ID=105) itself.

name

ACME account name

acmeServer

ACME account server name

certValidationType

ACME account server validation type. Values: [DV, OV, EV]

status

ACME account status

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account?position=0&size=10&organizationId=1072&name=OV+ACME+Account&acmeServer=OV+ACME+Server&status=Pending' -i -X GET \
    -H 'login: nick-15474' \
    -H 'password: Password123' \
    -H 'customerUri: cst15469'

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 335

[{"id":100,"accountId":"fbd06cb3-1684-42d7-acc6-a3d334182210","macId":"fbd06cb3-1684-42d7-acc6-a3d334182210","macKey":"dce0355a-dd84-42ab-b6ac-19421e1523f2","acmeServer":"OV ACME Server","name":"OV ACME Account","organizationId":1072,"certValidationType":"OV","status":"Pending","ovOrderNumber":768113884,"evDetails":{},"contacts":""}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME accounts existing on SASP public CA side

Response fields

Path Type Description

[]

Array

List of ACME accounts

[].id

Number

ACME account entity ID

[].name

String

ACME account name

[].status

String

ACME account status

[].macKey

String

ACME account HMAC key

[].macId

String

ACME account key ID

[].acmeServer

String

ACME account server name

[].organizationId

Number

ACME account organization ID

[].certValidationType

String

ACME account server validation type. Values: [DV, OV, EV]

[].accountId

String

ACME account ID

[].ovOrderNumber

Number

OV order number

[].contacts

String

ACME account contacts

[].evDetails

Object

ACME account EV details

Find ACME account by ID

HTTP request

GET /api/acme/v2/account/96 HTTP/1.1
login: nick-15459
password: Password123
customerUri: cst15454
Accept: application/json
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v2)

id

ACME account entity ID

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/96' -i -X GET \
    -H 'login: nick-15459' \
    -H 'password: Password123' \
    -H 'customerUri: cst15454' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 767

{"id":96,"accountId":"d701a437-324c-4080-80f2-653a3bbb55d4","macId":"d701a437-324c-4080-80f2-653a3bbb55d4","macKey":"d335d0e4-a990-4a3a-b663-4ffe9d45a51e","acmeServer":"EV ACME Server","name":"EV ACME Account","organizationId":1070,"certValidationType":"EV","status":"Pending","ovOrderNumber":0,"evDetails":{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"},"contacts":""}

Response fields

Path Type Description

id

Number

ACME account entity ID

name

String

ACME account name

status

String

ACME account status

macKey

String

ACME account HMAC key

macId

String

ACME account key ID

acmeServer

String

ACME account server name

organizationId

Number

ACME account organization ID

certValidationType

String

ACME account server validation type. Values: [DV, OV, EV]

accountId

String

ACME account ID

ovOrderNumber

Number

OV order number

contacts

String

ACME account contacts

evDetails

Object

ACME account EV details

evDetails.orgName

String

EV organization name

evDetails.orgCountry

String

EV organization country

evDetails.postOfficeBox

String

EV organization post office box

evDetails.orgAddress1

String

EV organization address 1

evDetails.orgAddress2

String

EV organization address 2

evDetails.orgAddress3

String

EV organization address 3

evDetails.orgLocality

String

EV organization city

evDetails.orgStateOrProvince

String

EV organization state/province

evDetails.orgPostalCode

String

EV organization postal code

evDetails.orgJoiState

String

EV organization state or province of incorporation

evDetails.orgJoiCountry

String

EV organization country of incorporation

evDetails.orgJoiLocality

String

EV organization jurisdiction of incorporation city or town

evDetails.assumedName

String

EV organization assumed name

evDetails.businessCategory

String

EV organization business category. Values: [PrivateOrganization, GovernmentEntity, BusinessEntity, NonCommercialEntity]

evDetails.dateOfIncorporation

String

EV organization date of incorporation

evDetails.companyNumber

String

EV organization registration number

Update ACME account

HTTP request

PUT /api/acme/v2/account/105 HTTP/1.1
Content-Type: application/json
login: nick-15504
password: Password123
customerUri: cst15499
Content-Length: 34
Host: cert-manager.com

{"name":"EV ACME Account Updated"}

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v2)

id

ACME account entity ID

Request fields

Path Type Description Constraints

name

String

ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/105' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15504' \
    -H 'password: Password123' \
    -H 'customerUri: cst15499' \
    -d '{"name":"EV ACME Account Updated"}'

Example response

HTTP/1.1 200 OK

Delete ACME account

HTTP request

DELETE /api/acme/v2/account/91 HTTP/1.1
login: nick-15428
password: Password123
customerUri: cst15423
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}
Parameter Description

version

API version (v2)

id

ID of ACME account that being deleted

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/91' -i -X DELETE \
    -H 'login: nick-15428' \
    -H 'password: Password123' \
    -H 'customerUri: cst15423'

Example response

HTTP/1.1 204 No Content

Add domains to ACME account

HTTP request

POST /api/acme/v2/account/81/domain HTTP/1.1
Content-Type: application/json
login: nick-15380
password: Password123
customerUri: cst15375
Content-Length: 73
Host: cert-manager.com

{"domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}

Path parameters

Table 1. /api/acme/{version}/account/{id}/domain
Parameter Description

version

API version (v2)

id

ACME account entity ID

Request fields

Path Type Description Constraints

domains[]

Array

Domains list

[Must not be empty]

domains[].name

String

Domain name

[Must not be blank, Size must be between 1 and 1024 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/81/domain' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15380' \
    -H 'password: Password123' \
    -H 'customerUri: cst15375' \
    -d '{"domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40

{"notAddedDomains":["domain.ccmqa.com"]}

Response fields

Path Type Description

notAddedDomains[]

Array

Domains not added to the ACME account upon update operation

List ACME account’s domains

HTTP request

GET /api/acme/v2/account/115/domain?position=0&size=10&name=.*&expiresWithinNextDays=365&stickyExpiresWithinNextDays=365 HTTP/1.1
login: nick-15549
password: Password123
customerUri: cst15544
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}/domain
Parameter Description

version

API version (v2)

id

SCM internal ID of ACME account whose domains are requested.

Request parameters

Parameter Description

position

Position shift

size

Count of entries

name

The RegExp that can be used as a filter to get ACME account domains whose names match against. Special characters should be URL-encoded e.g. \. ⇒ %5C%2E

expiresWithinNextDays

Number of days(from current date) that is used as a filter to get ACME account’s domains whose 'validUntil' field(date) falls within the specifies time period, so during which ACME account’s domain validation will be or already has(in case of negative number) expired.Zero number of days means today, negative number of days means before today, positive number of days means after today.

stickyExpiresWithinNextDays

Number of days(from current date) that is used as a filter to get ACME account’s domains whose 'stickyUntil' field(date) falls within the specifies time period, so during which ACME account domain validation sticky will be or already has(in case of negative number) expired. Zero number of days means today, negative number of days means before today, positive number of days means after today.

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/115/domain?position=0&size=10&name=.*&expiresWithinNextDays=365&stickyExpiresWithinNextDays=365' -i -X GET \
    -H 'login: nick-15549' \
    -H 'password: Password123' \
    -H 'customerUri: cst15544'

Example response

HTTP/1.1 200 OK
X-Total-Count: 2
Content-Type: application/json
Content-Length: 289

[{"name":"domain.ccmqa.com","validUntil":"2024-03-06T20:17:06.051Z","stickyUntil":"2024-03-06T20:17:06.051Z","ovAnchorOrderNumber":1970510681},{"name":"sub.domain.ccmqa.com","validUntil":"2024-03-06T20:17:06.052Z","stickyUntil":"2024-03-06T20:17:06.052Z","ovAnchorOrderNumber":1970510681}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME account’s domains existing on Public(SASP) CA side

Response fields

Path Type Description

[]

Array

ACME account’s domains

[].name

String

ACME account domain name

[].validUntil

String

ACME account domain validation until date in ISO-8601 format

[].stickyUntil

String

ACME account domain validation sticky until date in ISO-8601 format

[].ovAnchorOrderNumber

Number

ACME account validated domain OV order number from SASP public CA

[].evAnchorOrderNumber

Number

ACME account validated domain EV order number from SASP public CA

Remove domains from ACME account

HTTP request

DELETE /api/acme/v2/account/94/domain HTTP/1.1
Content-Type: application/json
login: nick-15443
password: Password123
customerUri: cst15438
Content-Length: 76
Host: cert-manager.com

{"domains":[{"name":"domain.ccmqa.com.ua"},{"name":"sub.domain.ccmqa.com"}]}

Path parameters

Table 1. /api/acme/{version}/account/{id}/domain
Parameter Description

version

API version (v2)

id

ACME account entity ID

Request fields

Path Type Description Constraints

domains[]

Array

Domains list

[Must not be empty]

domains[].name

String

Domain name

[Must not be blank, Size must be between 1 and 1024 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/94/domain' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15443' \
    -H 'password: Password123' \
    -H 'customerUri: cst15438' \
    -d '{"domains":[{"name":"domain.ccmqa.com.ua"},{"name":"sub.domain.ccmqa.com"}]}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 45

{"notRemovedDomains":["domain.ccmqa.com.ua"]}

Response fields

Path Type Description

notRemovedDomains[]

Array

Domains not removed from the ACME account upon update operation

List ACME account’s clients

HTTP request

GET /api/acme/v2/account/112/client?position=0&size=10&userAgent=acme&ipAddress=10.1&contacts=%40contact.test&status=valid&status=pending&lastActivityWithinPrevDays=0 HTTP/1.1
login: nick-15534
password: Password123
customerUri: cst15529
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}/client
Parameter Description

version

API version (v2)

id

SCM internal ID of ACME account whose clients are requested.

Request parameters

Parameter Description

position

Position shift

size

Count of entries

userAgent

The any substring of ACME account client’s 'userAgent' field to match against

ipAddress

The any substring of ACME account client’s 'ipAddress' field to match against

status

The status string of ACME account client’s 'status' field to equal

lastActivityWithinPrevDays

Number of days(from end of the current day to the past) that is used as a filter to get ACME account’s clients whose 'lastActivity' field(date) falls within the specifies time period, so during which ACME account’s client was last active (connected/requested the SASP public CA).

contacts

The any substring of ACME account client’s 'contacts' field to match against

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/112/client?position=0&size=10&userAgent=acme&ipAddress=10.1&contacts=%40contact.test&status=valid&status=pending&lastActivityWithinPrevDays=0' -i -X GET \
    -H 'login: nick-15534' \
    -H 'password: Password123' \
    -H 'customerUri: cst15529'

Example response

HTTP/1.1 200 OK
X-Total-Count: 2
Content-Type: application/json
Content-Length: 603

[{"id":69,"accountId":"FswPwHxLUh-caoO3AAAAAA==","ipAddress":"10.18.8.143","userAgent":"CertbotACMEClient/1.22.0 (certbot; Ubuntu 18.04.6 LTS) Authenticator/standalone Installer/None (certonly; flags: n) Py/3.6.9","status":"pending","lastActivity":"2023-03-07T20:05:43.492Z","contacts":"client2.1@contact.test, client2.2@contact.test"},{"id":68,"accountId":"FmcZgzSqt6TpAtQFAAAAAA==","ipAddress":"10.17.7.152","userAgent":"lego-cli/4.2.0 xenolf-acme/4.2.0 (release; windows; amd64)","status":"valid","lastActivity":"2023-03-07T20:05:43.492Z","contacts":"client1.1@contact.test, client1.2@contact.test"}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME account’s clients existing on Public(SASP) CA side

Response fields

Path Type Description

[]

Array

ACME account’s clients

[].id

Number

Internal SCM identifier of ACME account client

[].accountId

String

ACME account client’s accountID. Note this identifier is concerning to the ACME client itself, but not to its parent ACME account.

[].userAgent

String

ACME account client’s user agent name

[].ipAddress

String

IP address of host from where the ACME account’s client was last active

[].status

String

ACME account client’s status

[].lastActivity

String

Date when ACME account’s client was last active

[].contacts

String

ACME account client’s contacts

Delete ACME account’s client

HTTP request

DELETE /api/acme/v2/account/109/client/66 HTTP/1.1
login: nick-15519
password: Password123
customerUri: cst15514
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/account/{id}/client/{clientId}
Parameter Description

version

API version (v2)

id

ID of ACME account whose client will being deleted

clientId

ID of ACME account’s client that being deleted

Example request

$ curl 'https://cert-manager.com/api/acme/v2/account/109/client/66' -i -X DELETE \
    -H 'login: nick-15519' \
    -H 'password: Password123' \
    -H 'customerUri: cst15514'

Example response

HTTP/1.1 204 No Content

Private CA’s ACME account resource

Create new Private CA’s ACME account

HTTP request

POST /api/acme/v1/pca/account HTTP/1.1
Content-Type: application/json
login: nick-15144
password: Password123
customerUri: cst15139
Content-Length: 134
Host: cert-manager.com

{"acmeServer":"Universal ACME Server","name":"Universal ACME Account","organizationId":1000,"profileName":"SSL PRIVATE_CA 1265674234"}

Path parameters

Table 1. /api/acme/{version}/pca/account
Parameter Description

version

API version (v1)

Request fields

Path Type Description Constraints

name

String

Universal ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

acmeServer

String

Universal ACME account server name

[Must not be blank, Size must be between 1 and 1024 inclusive]

organizationId

Number

Universal ACME account organization ID

[Must be at least 1, Must not be null]

profileName

String

Universal ACME account profile name

[Must not be empty]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15144' \
    -H 'password: Password123' \
    -H 'customerUri: cst15139' \
    -d '{"acmeServer":"Universal ACME Server","name":"Universal ACME Account","organizationId":1000,"profileName":"SSL PRIVATE_CA 1265674234"}'

Example response

HTTP/1.1 201 Created
Location: https://cert-manager.com/api/acme/v1/pca/account/11

Response headers

Name Description

Location

New ACME account resource added on Private CA

List Private CA’s ACME accounts

HTTP request

GET /api/acme/v1/pca/account?position=0&size=10&organizationId=1008&name=Universal+ACME+Account&acmeServer=Universal+ACME+Server HTTP/1.1
login: nick-15186
password: Password123
customerUri: cst15181
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/pca/account
Parameter Description

version

API version (v1)

Request parameters

Parameter Description

position

Position shift

size

Count of entries

organizationId

Organization ID

name

Universal ACME account name

acmeServer

Universal ACME account server name

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account?position=0&size=10&organizationId=1008&name=Universal+ACME+Account&acmeServer=Universal+ACME+Server' -i -X GET \
    -H 'login: nick-15186' \
    -H 'password: Password123' \
    -H 'customerUri: cst15181'

Example response

HTTP/1.1 200 OK
X-Total-Count: 1
Content-Type: application/json
Content-Length: 297

[{"id":15,"accountId":"b1056e8a-3d26-4e02-b567-a01a3a2c7911","macId":"eyJpZCI6MTUsInR5cGUiOiJQUklWQVRFX0FDTUUifQ==","macKey":"394b8985-78b9-4127-817a-4273f57ecc56","acmeServer":"Universal ACME Server","name":"Universal ACME Account","organizationId":1008,"profileName":"SSL PRIVATE_CA 613330629"}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME accounts existing on Private CA side

Response fields

Path Type Description

[]

Array

List of Universal ACME accounts

[].id

Number

Universal ACME account entity ID

[].name

String

Universal ACME account name

[].macKey

String

Universal ACME account HMAC key

[].macId

String

Universal ACME account key ID

[].acmeServer

String

Universal ACME account server name

[].organizationId

Number

Universal ACME account organization ID

[].accountId

String

Universal ACME account ID

[].profileName

String

Universal ACME account profile name

Find Private CA’s ACME account by ID

HTTP request

GET /api/acme/v1/pca/account/14 HTTP/1.1
login: nick-15175
password: Password123
customerUri: cst15170
Accept: application/json
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/pca/account/{id}
Parameter Description

version

API version (v1)

id

Universal ACME account entity ID

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account/14' -i -X GET \
    -H 'login: nick-15175' \
    -H 'password: Password123' \
    -H 'customerUri: cst15170' \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 295

{"id":14,"accountId":"1afacfb6-5d47-47f2-9058-19693a3e72f0","macId":"eyJpZCI6MTQsInR5cGUiOiJQUklWQVRFX0FDTUUifQ==","macKey":"8311b209-fd7a-40e6-ba4b-b7083a4ba487","acmeServer":"Universal ACME Server","name":"Universal ACME Account","organizationId":1006,"profileName":"SSL PRIVATE_CA 876674632"}

Response fields

Path Type Description

id

Number

Universal ACME account entity ID

name

String

Universal ACME account name

macKey

String

Universal ACME account HMAC key

macId

String

Universal ACME account key ID

acmeServer

String

Universal ACME account server name

organizationId

Number

Universal ACME account organization ID

accountId

String

Universal ACME account ID

profileName

String

Universal ACME account profile name

Update Private CA’s ACME account

HTTP request

PUT /api/acme/v1/pca/account/18 HTTP/1.1
Content-Type: application/json
login: nick-15219
password: Password123
customerUri: cst15214
Content-Length: 41
Host: cert-manager.com

{"name":"Universal ACME Account Updated"}

Path parameters

Table 1. /api/acme/{version}/pca/account/{id}
Parameter Description

version

API version (v1)

id

Universal ACME account entity ID

Request fields

Path Type Description Constraints

name

String

Universal ACME account name

[Must not be blank, Size must be between 1 and 128 inclusive]

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account/18' -i -X PUT \
    -H 'Content-Type: application/json' \
    -H 'login: nick-15219' \
    -H 'password: Password123' \
    -H 'customerUri: cst15214' \
    -d '{"name":"Universal ACME Account Updated"}'

Example response

HTTP/1.1 200 OK

Delete Private CA’s ACME account

HTTP request

DELETE /api/acme/v1/pca/account/12 HTTP/1.1
login: nick-15153
password: Password123
customerUri: cst15148
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/pca/account/{id}
Parameter Description

version

API version (v1)

id

ID of Universal ACME account that being deleted

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account/12' -i -X DELETE \
    -H 'login: nick-15153' \
    -H 'password: Password123' \
    -H 'customerUri: cst15148'

Example response

HTTP/1.1 204 No Content

List Private CA’s ACME account’s clients

HTTP request

GET /api/acme/v1/pca/account/16/client?position=0&size=10&userAgent=acme&ipAddress=10.1&status=valid&status=pending&lastActivityWithinPrevDays=0 HTTP/1.1
login: nick-15197
password: Password123
customerUri: cst15192
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/pca/account/{id}/client
Parameter Description

version

API version (v1)

id

SCM internal ID of Universal ACME account whose clients are requested.

Request parameters

Parameter Description

position

Position shift

size

Count of entries

userAgent

The any substring of Universal ACME account client’s 'userAgent' field to match against

ipAddress

The any substring of Universal ACME account client’s 'ipAddress' field to match against

status

The status string of Universal ACME account client’s 'status' field to equal

lastActivityWithinPrevDays

Number of days(from end of the current day to the past) that is used as a filter to get Universal ACME account’s clients whose 'lastActivity' field(date) falls within the specifies time period, so during which Universal ACME account’s client was last active (connected/requested the private CA).

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account/16/client?position=0&size=10&userAgent=acme&ipAddress=10.1&status=valid&status=pending&lastActivityWithinPrevDays=0' -i -X GET \
    -H 'login: nick-15197' \
    -H 'password: Password123' \
    -H 'customerUri: cst15192'

Example response

HTTP/1.1 200 OK
X-Total-Count: 2
Content-Type: application/json
Content-Length: 541

[{"id":59,"accountId":"FswPwHxLUh-caoO3AAAAAA==","ipAddress":"10.18.8.143","userAgent":"CertbotACMEClient/1.22.0 (certbot; Ubuntu 18.04.6 LTS) Authenticator/standalone Installer/None (certonly; flags: n) Py/3.6.9","status":"pending","lastActivity":"2023-03-07T20:05:43.465Z","contacts":"email@ccmqa.com"},{"id":58,"accountId":"FmcZgzSqt6TpAtQFAAAAAA==","ipAddress":"10.17.7.152","userAgent":"lego-cli/4.2.0 xenolf-acme/4.2.0 (release; windows; amd64)","status":"valid","lastActivity":"2023-03-07T20:05:43.465Z","contacts":"email@ccmqa.com"}]

Response headers

Name Description

X-Total-Count

Total count of filtered ACME account’s clients existing on Private CA side

Response fields

Path Type Description

[]

Array

Universal ACME account’s clients

[].id

Number

Internal SCM identifier of Universal ACME account client

[].accountId

String

Universal ACME account client’s accountID. Note this identifier is concerning to the ACME client itself, but not to its parent Universal ACME account.

[].userAgent

String

Universal ACME account client’s user agent name

[].ipAddress

String

IP address of host from where the Universal ACME account’s client was last active

[].status

String

Universal ACME account client’s status

[].lastActivity

String

Date when Universal ACME account’s client was last active

[].contacts

String

Contact(s) concerning of ACME client operations

Delete Private CA’s ACME account’s client

HTTP request

DELETE /api/acme/v1/pca/account/13/client/52 HTTP/1.1
login: nick-15164
password: Password123
customerUri: cst15159
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/pca/account/{id}/client/{clientId}
Parameter Description

version

API version (v1)

id

ID of Universal ACME account whose client will being deleted

clientId

ID of Universal ACME account’s client that being deleted

Example request

$ curl 'https://cert-manager.com/api/acme/v1/pca/account/13/client/52' -i -X DELETE \
    -H 'login: nick-15164' \
    -H 'password: Password123' \
    -H 'customerUri: cst15159'

Example response

HTTP/1.1 204 No Content

ACME server resource

List ACME servers

HTTP request

GET /api/acme/v1/server?position=0&size=10&name=OV+ACME+Server&url=https%3A%2Facmeserverfortest-OV&certValidationType=OV&caId=40485 HTTP/1.1
login: nick-130
password: Password123
customerUri: cst129
Host: cert-manager.com

Path parameters

Table 1. /api/acme/{version}/server
Parameter Description

version

API version (v1)

Request parameters

Parameter Description

position

Position shift

size

Count of entries

name

ACME server name

url

ACME server URL

certValidationType

ACME server validation type. Values: [DV, OV, EV]

caId

ACME server CA ID

Example request

$ curl 'https://cert-manager.com/api/acme/v1/server?position=0&size=10&name=OV+ACME+Server&url=https%3A%2Facmeserverfortest-OV&certValidationType=OV&caId=40485' -i -X GET \
    -H 'login: nick-130' \
    -H 'password: Password123' \
    -H 'customerUri: cst129'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 169

[{"url":"https:/acmeserverfortest-OV","caId":40485,"name":"OV ACME Server","singleProductId":66362,"multiProductId":23234,"wcProductId":14608,"certValidationType":"OV"}]

Response fields

Path Type Description

[]

Array

List of ACME servers

[].name

String

ACME server name

[].certValidationType

String

ACME server validation type. Values: [DV, OV, EV]

[].url

String

ACME server URL

[].caId

Number

ACME server CA ID

[].singleProductId

Number

ACME server single product ID

[].multiProductId

Number

ACME server multi product ID

[].wcProductId

Number

ACME server WC product ID

ACME EV details resource

ACME EV details validation

Path parameters

Table 1. /api/acme/{version}/evdetails/validation
Parameter Description

version

API version

Example request

$ curl 'https://cert-manager.com/api/acme/v1/evdetails/validation' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'login: nick-15560' \
    -H 'password: Password123' \
    -H 'customerUri: cst15559' \
    -d '{"orgName":"org4Test","orgCountry":"UA","postOfficeBox":"PostOfficeBox","orgAddress1":"Deribasovskaya 1","orgAddress2":"Street 2","orgAddress3":"Street 3","orgLocality":"Odesa","orgStateOrProvince":"Odeska oblast","orgPostalCode":"65059","orgJoiState":"Odeska oblast","orgJoiCountry":"UA","orgJoiLocality":"Odesa","assumedName":"Name DBA","businessCategory":"PrivateOrganization","dateOfIncorporation":"1970-01-01","companyNumber":"23459823565"}'

Request fields

Path Type Description Constraints

orgName

String

EV organization name

[Must not be blank, Size must be between 0 and 128 inclusive]

orgCountry

String

EV organization country

[Size must be between 2 and 2 inclusive]

postOfficeBox

String

EV organization post office box

[Size must be between 0 and 40 inclusive]

orgAddress1

String

EV organization address 1

[Size must be between 0 and 128 inclusive]

orgAddress2

String

EV organization address 2

[Size must be between 0 and 128 inclusive]

orgAddress3

String

EV organization address 3

[Size must be between 0 and 128 inclusive]

orgLocality

String

EV organization city

[Size must be between 0 and 128 inclusive]

orgStateOrProvince

String

EV organization state/province

[Size must be between 0 and 128 inclusive]

orgPostalCode

String

EV organization postal code

[Size must be between 0 and 40 inclusive]

orgJoiState

String

EV organization state or province of incorporation

[Size must be between 0 and 128 inclusive]

orgJoiCountry

String

EV organization country of incorporation

[Size must be between 2 and 2 inclusive]

orgJoiLocality

String

EV organization jurisdiction of incorporation city or town

[Size must be between 0 and 128 inclusive]

assumedName

String

EV organization assumed name

[Size must be between 0 and 128 inclusive]

businessCategory

String

EV organization business category. Values: [PrivateOrganization, GovernmentEntity, BusinessEntity, NonCommercialEntity]

[]

dateOfIncorporation

String

EV organization date of incorporation

[Size must be between 8 and 8 inclusive]

companyNumber

String

EV organization registration number

[Size must be between 0 and 25 inclusive]

Response body

{"domains":[{"name":"domain.ccmqa.com"},{"name":"sub.domain.ccmqa.com"}]}

Response fields

Path Type Description

domains[]

Array

ACME account domains

domains[].name

String

ACME account domain name