Any domain added to CCM must pass Domain Control Validation (DCV) before Comodo 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 Domain Control Validation using HTTP method.
Path | Type | Description |
---|---|---|
|
| URL |
|
| First line |
|
| Second line |
$ curl 'https://ccm.com/api/dcv/v1/validation/start/domain/http' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14050' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14050' \
-d '{"domain":"ccmqa.com"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 197
{"url":"http://ccmqa.com/.well-known/pki-validation/3C3E3EA27BA07C02BF05303D6E968A78.txt","firstLine":"85a3fea963084d33b54420f5a465a57bf6c377ae40d8be36ff88ed5f393df970","secondLine":"comodoca.com"}
Start Domain Control Validation using HTTPS method.
Path | Type | Description |
---|---|---|
|
| URL |
|
| First line |
|
| Second line |
$ curl 'https://ccm.com/api/dcv/v1/validation/start/domain/https' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14058' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14058' \
-d '{"domain":"ccmqa.com"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 198
{"url":"https://ccmqa.com/.well-known/pki-validation/3C3E3EA27BA07C02BF05303D6E968A78.txt","firstLine":"85a3fea963084d33b54420f5a465a57bf6c377ae40d8be36ff88ed5f393df970","secondLine":"comodoca.com"}
Start Domain Control Validation using CName method.
Path | Type | Description |
---|---|---|
|
| Host |
|
| Point |
$ curl 'https://ccm.com/api/dcv/v1/validation/start/domain/cname' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14034' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14034' \
-d '{"domain":"ccmqa.com"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 145
{"host":"_3c3e3ea27ba07c02bf05303d6e968a78.ccmqa.com.","point":"85a3fea963084d33b54420f5a465a57b.f6c377ae40d8be36ff88ed5f393df970.comodoca.com."}
Start Domain Control Validation using Email method.
Path | Type | Description |
---|---|---|
|
| Array of e-mails |
$ curl 'https://ccm.com/api/dcv/v1/validation/start/domain/email' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14042' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14042' \
-d '{"domain":"ccmqa.com"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 155
{"emails":["[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]"]}
Submit a request for Domain Control Validation using HTTP method.
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain to validate | [Must not be empty, Size must be between 0 and 255 inclusive] |
$ curl 'https://ccm.com/api/dcv/v1/validation/submit/domain/http' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14050' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14050' \
-d '{"domain":"ccmqa.com"}'
Path | Type | Description |
---|---|---|
|
| Order status |
|
| Message |
|
| Status |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 119
{"status":"NOT_VALIDATED","orderStatus":"SUBMITTED","message":"DCV status: Not Validated; DCV order status: Submitted"}
Submit a request for Domain Control Validation using HTTPS method.
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain to validate | [Must not be empty, Size must be between 0 and 255 inclusive] |
$ curl 'https://ccm.com/api/dcv/v1/validation/submit/domain/https' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14058' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14058' \
-d '{"domain":"ccmqa.com"}'
Path | Type | Description |
---|---|---|
|
| Order status |
|
| Message |
|
| Status |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 119
{"status":"NOT_VALIDATED","orderStatus":"SUBMITTED","message":"DCV status: Not Validated; DCV order status: Submitted"}
Submit a request for Domain Control Validation using CName method.
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain to validate | [Must not be empty, Size must be between 0 and 255 inclusive] |
$ curl 'https://ccm.com/api/dcv/v1/validation/submit/domain/cname' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14034' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14034' \
-d '{"domain":"ccmqa.com"}'
Path | Type | Description |
---|---|---|
|
| Order status |
|
| Message |
|
| Status |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 119
{"status":"NOT_VALIDATED","orderStatus":"SUBMITTED","message":"DCV status: Not Validated; DCV order status: Submitted"}
Submit a request for Domain Control Validation using Email method.
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain to validate | [Must not be empty, Size must be between 0 and 255 inclusive] |
String | [Must be a well-formed email address, Must not be empty] |
$ curl 'https://ccm.com/api/dcv/v1/validation/submit/domain/email' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14042' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14042' \
-d '{"domain":"ccmqa.com","email":"[email protected]"}'
Path | Type | Description |
---|---|---|
|
| Order status |
|
| Message |
|
| Status |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 119
{"status":"NOT_VALIDATED","orderStatus":"SUBMITTED","message":"DCV status: Not Validated; DCV order status: Submitted"}
Obtain the result of Domain Control Validation procedure as a validation status of the subject domain.
V2
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain which status is requested | [Must not be empty, Size must be between 0 and 255 inclusive] |
<b>POST</b> /api/dcv/v2/validation/status HTTP/1.1
Content-Type: application/json
login: admin_customer14066
password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=
customerUri: cst14066
Accept: application/json
Host: ccm.com
Content-Length: 23
{"domain":"ccmdev.com"}
$ curl 'https://ccm.com/api/dcv/v2/validation/status' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14066' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14066' \
-H 'Accept: application/json' \
-d '{"domain":"ccmdev.com"}'
$ echo '{"domain":"ccmdev.com"}' | http POST 'https://ccm.com/api/dcv/v2/validation/status' \
'Content-Type:application/json' \
'login:admin_customer14066' \
'password:mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
'customerUri:cst14066' \
'Accept:application/json'
Path | Type | Description |
---|---|---|
|
| Validation status |
|
| Validation order status |
|
| Validation expiration date |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 76
{"status":"EXPIRED","orderStatus":"SUBMITTED","expirationDate":"2018-12-20"}
V1
Path | Type | Description | Constraints |
---|---|---|---|
domain | String | Domain to validate | [Must not be empty, Size must be between 0 and 255 inclusive] |
<b>POST</b> /api/dcv/v1/validation/status HTTP/1.1
Content-Type: application/json
login: admin_customer13958
password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=
customerUri: cst13958
Host: ccm.com
Content-Length: 22
{"domain":"ccmqa.com"}
$ curl 'https://ccm.com/api/dcv/v1/validation/status' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13958' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13958' \
-d '{"domain":"ccmqa.com"}'
$ echo '{"domain":"ccmqa.com"}' | http POST 'https://ccm.com/api/dcv/v1/validation/status' \
'Content-Type:application/json' \
'login:admin_customer13958' \
'password:mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
'customerUri:cst13958'
Path | Type | Description |
---|---|---|
|
| Validation status |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 26
{"status":"NOT_VALIDATED"}
Obtain the result of Domain Control Validation procedure as a validation statuses.
Parameter | Description |
---|---|
| Position shift |
| Count of entries |
| Domain |
| Organization ID |
| Department ID |
| DCV Status |
| DCV Order status |
| Expires in (days) |
<b>GET</b> /api/dcv/v1/validation?size=10&position=0&org=&department=&domain=ccmqa.com&expiresIn=10&dcvStatus=NOT_VALIDATED&orderStatus=NOT_INITIATED&org=&department= HTTP/1.1
login: admin_customer13966
password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=
customerUri: cst13966
Accept: application/json
Host: ccm.com
$ curl 'https://ccm.com/api/dcv/v1/validation?size=10&position=0&org=&department=&domain=ccmqa.com&expiresIn=10&dcvStatus=NOT_VALIDATED&orderStatus=NOT_INITIATED&org=&department=' -i \
-H 'login: admin_customer13966' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13966' \
-H 'Accept: application/json'
$ http GET 'https://ccm.com/api/dcv/v1/validation?size=10&position=0&org=&department=&domain=ccmqa.com&expiresIn=10&dcvStatus=NOT_VALIDATED&orderStatus=NOT_INITIATED&org=&department=' \
'login:admin_customer13966' \
'password:mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
'customerUri:cst13966' \
'Accept:application/json'
Path | Type | Description |
---|---|---|
|
| Array of DCV domains |
|
| Domain |
|
| DCV Status |
|
| DCV Order status |
|
| DCV Method |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 102
[{"domain":"ccmqa.com","dcvStatus":"NOT_VALIDATED","dcvOrderStatus":"NOT_INITIATED","dcvMethod":null}]
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.
Path | Type | Description |
---|---|---|
|
| Order status |
|
| Message |
|
| Status |
$ curl 'https://ccm.com/api/dcv/v1/validation/clear' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13950' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13950' \
-d '{"domain":"ccmqa.com"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 127
{"status":"NOT_VALIDATED","orderStatus":"NOT_INITIATED","message":"DCV status: Not Validated; DCV order status: Not Initiated"}
Enables the administrator to create the custom field for a particular type of certificate.
V2
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| List of access methods for which this field is mandatory |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v2' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13334' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13334' \
-d '{"name":"test","certType":"ssl","state":"ACTIVE","mandatories":["ADMIN_UI","REST_API","SOAP_API","WEB_FORM"]}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 117
{"id":-1,"name":"test","certType":"ssl","state":"ACTIVE","mandatories":["WEB_FORM","ADMIN_UI","REST_API","SOAP_API"]}
V1
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| Custom field mandatory attribute |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v1' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13314' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13314' \
-d '{"name":"test","mandatory":true,"certType":"ssl","state":"ACTIVE"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 74
{"id":-1,"name":"test","mandatory":true,"certType":"ssl","state":"ACTIVE"}
Enables the administrator to get the list of all existing custom fields with their details.
V2
Path | Type | Description |
---|---|---|
|
| Array of custom fields |
|
| Custom field ID |
|
| Custom field name |
|
| List of access methods for which this field is mandatory |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v2' -i \
-H 'login: admin_customer13342' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13342' \
-H 'Accept: application/json'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 126
[{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":["WEB_FORM","ADMIN_UI","REST_API","SOAP_API"]}]
V1
Path | Type | Description |
---|---|---|
|
| Array of custom fields |
|
| Custom field ID |
|
| Custom field name |
|
| Custom field mandatory attribute |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v1' -i \
-H 'login: admin_customer13322' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13322' \
-H 'Accept: application/json'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 83
[{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}]
Enables the administrator to get the list of all custom fields with their details existing for a particular type of certificate.
V2
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| List of access methods for which this field is mandatory |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v2/ssl' -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13346' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13346'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 126
[{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":["WEB_FORM","ADMIN_UI","REST_API","SOAP_API"]}]
V1
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| Custom field mandatory attribute |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v1/ssl' -i \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13326' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13326'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 83
[{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}]
Allows the administrator to edit the custom field.
V2
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| List of access methods for which this field is mandatory |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v2' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13350' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13350' \
-d '{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":[]}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{"id":101,"name":"Test field","certType":"ssl","state":"ACTIVE","mandatories":[]}
V1
Path | Type | Description |
---|---|---|
|
| Custom field ID |
|
| Custom field name |
|
| Custom field mandatory attribute |
|
| Custom field certificate type |
|
| State |
$ curl 'https://ccm.com/api/customField/v1' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13330' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13330' \
-d '{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 81
{"id":101,"name":"Test field","mandatory":true,"certType":"ssl","state":"ACTIVE"}
Allows the administrator to delete the custom field which is no longer needed.
V2
Table 1. /customField/v2/{id}
Parameter | Description |
---|---|
| Custom field ID |
$ curl 'https://ccm.com/api/customField/v2/1' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13338' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13338'
HTTP/1.1 204 No Content
V1
Table 1. /customField/v1/{id}
Parameter | Description |
---|---|
| Custom field ID |
$ curl 'https://ccm.com/api/customField/v1/1' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'login: admin_customer13318' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13318'
HTTP/1.1 204 No Content
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.
Enables administrators to create a scan task for the private and/or public network(s) in search of SSL certificates.
Path | Type | Description |
---|---|---|
|
| Task ID |
$ curl 'https://ccm.com/api/discovery/v1/task' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13650' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13650' \
-d '{"name":"VRQVAXMXENNSWKQLMQSHFOHIOGSFHDAY","agent":"org4Testud5","ranges":[{"address":"214.100.130.153/32","ports":"3"}],"rules":["Assignment rule 13654 [organization: org4Test, customer ID: 704]"],"frequency":"Daily","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":0,"minutes":0}}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 13
{"taskId":-1}
Enables administrators to edit a network scan task.
Path | Type | Description | Constraints |
---|---|---|---|
taskId | Number | Task ID | [Must not be null, Size must be between 1 and 256 inclusive] |
name | String | Task name | [Must not be null, 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 | |
rules | Array | Array of rules | [Must not be empty] |
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 | [] |
$ curl 'https://ccm.com/api/discovery/v1/task' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13749' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13749' \
-d '{"taskId":3894,"name":"MMJZMUDOZPHROVAMYUBLUUKYWJSTQWYT","agent":"org4Test81k","ranges":[{"address":"5.150.148.107/32","ports":"0"}],"rules":["Assignment rule 13754 [organization: org4Test, customer ID: 746]"],"frequency":"Monthly","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":0,"minutes":0}}'
HTTP/1.1 200 OK
Enables the administrator to get the parameters of a particular task of network scanning which he/she is authorized to view and manage.
Path | Type | Description |
---|---|---|
|
| Task name |
|
| Agent name |
|
| Array of ranges |
|
| Range address |
|
| Range port |
|
| Array of rules |
|
| Task frequency |
|
| Time zone |
|
| Time |
|
| Hours |
|
| Minutes |
$ curl 'https://ccm.com/api/discovery/v1/task/3288' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13733' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13733'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 164
{"name":"Discovery task 0","agent":"","ranges":[],"rules":[],"frequency":"Daily","timeZone":"UTC+00:00 - GMT, UCT, UTC, WET, EGST","time":{"hours":12,"minutes":25}}
Enables the administrator to get the number of tasks of scanning the network(s) which he/she is authorized to view and manage.
Path | Type | Description |
---|---|---|
|
| Task count |
$ curl 'https://ccm.com/api/discovery/v1/task/count' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13725' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13725'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 13
{"count":202}
Enables the administrator to get the list of IDs of existing tasks of scanning the network(s) which he/she is authorized to view and manage.
Path | Type | Description |
---|---|---|
|
| Array of task IDs |
$ curl 'https://ccm.com/api/discovery/v1/task?size=10&position=0' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13926' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13926'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 51
[9954,9955,9956,9957,9958,9959,9960,9961,9962,9963]
Enables administrators to start a network(s) scan for a specific task
$ curl 'https://ccm.com/api/discovery/v1/task/start' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13938' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13938' \
-d '{"taskId":1}'
Path | Type | Description | Constraints |
---|---|---|---|
taskId | Number | Task ID | [Must be at least 1, Must not be null] |
<pre><code>HTTP/1.1 204 No Content</code></pre>
Enables administrators to stop network(s) scan for a specific task
$ curl 'https://ccm.com/api/discovery/v1/task/stop' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13946' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13946' \
-d '{"taskId":1}'
Path | Type | Description | Constraints |
---|---|---|---|
taskId | Number | Task ID | [Must be at least 1, Must not be null] |
<pre><code>HTTP/1.1 204 No Content</code></pre>
Enables administrators to get the status of a specific task
Path | Type | Description |
---|---|---|
|
| Task ID |
$ curl 'https://ccm.com/api/discovery/v1/task/status/1' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13942' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13942'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 23
{"status":"IN_PROCESS"}
Enables administrators to delete a specific network scanning task.
$ curl 'https://ccm.com/api/discovery/v1/task/10156' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13930' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13930'
Table 1. /discovery/v1/task/{taskId}
Parameter | Description |
---|---|
| Task ID |
<pre><code>HTTP/1.1 204 No Content</code></pre>
Enables the administrator to get ID of the task of scanning by its name.
Path | Type | Description |
---|---|---|
|
| Array of task IDs |
$ curl 'https://ccm.com/api/discovery/v1/task/findByName' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13838' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13838' \
-d '{"name":"Discovery task 0"}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 6
[7530]
Enables administrators to get the result of a task by task ID.
Path | Type | Description |
---|---|---|
|
| Array of scan results |
|
| Scan result ID |
|
| Date |
|
| Status |
|
| Number of found certificates |
$ curl 'https://ccm.com/api/discovery/v1/history/10' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13513' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13513'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 568
[{"scanResultId":68,"date":"12/21/2018 10:22:38 GMT","status":"IN_PROCESS","sslCertsFound":0},{"scanResultId":69,"date":"12/21/2018 10:22:38 GMT","status":"FAILED","sslCertsFound":1},{"scanResultId":70,"date":"12/21/2018 10:22:38 GMT","status":"CANCELED","sslCertsFound":2},{"scanResultId":71,"date":"12/21/2018 10:22:37 GMT","status":"SUCCESSFUL","sslCertsFound":3},{"scanResultId":72,"date":"12/21/2018 10:22:37 GMT","status":"PARTIAL_SUCCESSFUL","sslCertsFound":4},{"scanResultId":73,"date":"12/21/2018 10:22:37 GMT","status":"PROCESSING_RESULT","sslCertsFound":5}]
Enables administrators to get result of discovered SSL certificates from the last run scan by its ID.
Path | Type | Description |
---|---|---|
|
| Array of SSL results |
|
| IP address |
|
| Host name |
|
| Common name |
|
| Valid to |
|
| Issuer name |
|
| Subject |
|
| Valid from |
|
| Subject alternative name |
|
| Key algorithm |
|
| Key size |
|
| Signature algorithm |
|
| Inventory |
|
| Serial number |
|
| MD5 fingerprint |
|
| SHA1 fingerprint |
|
| Found Time |
|
| Cipher |
|
| Key usages |
|
| Extended key usages |
$ curl 'https://ccm.com/api/discovery/v1/history/lastresult/55/?position=0&size=0' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13521' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13521'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 892
[{"ipAddress":"127.0.0.1:443","hostName":"","commonName":"*.ccmqa.com","validTo":"01/25/2018 23:59:59 GMT","issuer":"CN=COMODO RSA Organization Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB","subject":"CN=*.ccmqa.com,OU=PremiumSSL Wildcard,OU=Hosted by Comodo Certificate Manager Demo,OU=QA Odessa,O=QA_ccm_Odessa,STREET=Bazarnaya 63,L=Odessa,ST=Odessa,PostalCode=65000,C=UA","validFrom":"01/25/2017 00:00:00 GMT","subjectAltName":"ccmqa.com,","keyAlgorithm":"RSA","keySize":2048,"signatureAlgorithm":"SHA256withRSA","inventory":"","serialNumber":"EC337202326A4E9D296A9A53F99BBEC2","md5Fingerprint":"a3629c93ec6bb5db79e3d91279854de4","foundTime":"12/21/2018 10:24:25 GMT","sha1Fingerprint":"590ad2ab0808560926dfc1d2c42d547241000a1e","cipher":"","keyUsage":"Digital Signature\nKey Encipherment","extendedKeyUsage":"1.3.6.1.5.5.7.3.1\n1.3.6.1.5.5.7.3.2"}]
Enables the administrator to get the result of scanning by its ID.
Path | Type | Description |
---|---|---|
|
| Array of SSL results |
|
| IP address |
|
| Host name |
|
| Common name |
|
| Valid to |
|
| Issuer name |
|
| Subject |
|
| Valid from |
|
| Subject alternative name |
|
| Key algorithm |
|
| Key size |
|
| Signature algorithm |
|
| Inventory |
|
| Serial number |
|
| MD5 fingerprint |
|
| SHA1 fingerprint |
|
| Found Time |
|
| Cipher |
|
| Key usages |
|
| Extended key usages |
$ curl 'https://ccm.com/api/discovery/v1/history/result/79' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13517' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13517'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 434
[{"ipAddress":"127.0.0.1","hostName":"","commonName":"test.com","validTo":"","issuer":"Issuer","subject":"Subject","validFrom":"12/21/2018 10:24:25 GMT","subjectAltName":"test2.com","keyAlgorithm":"SHA256","keySize":0,"signatureAlgorithm":"SHA256","inventory":"","serialNumber":"SERIAL","md5Fingerprint":"","foundTime":"12/21/2018 10:24:25 GMT","sha1Fingerprint":"","cipher":"","keyUsage":"keyusage","extendedKeyUsage":"extkeyusage"}]
Assignment Rules are associated with discovery tasks to assign 'Unmanaged' certificates (those not issued by CCM) to a particular Organization or Department
Path | Type | Description |
---|---|---|
|
| Assignment rule ID |
$ curl 'https://ccm.com/api/discovery/v1/assignmentrule' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer14' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst14' \
-d '{"name":"SJZVVMDYEPGFSJBKOSWMMZAERRTJODMF","orgId":377,"filters":[{"filterType":"ORGANIZATION","matchType":"MATCHES","value":"org4Test"}]}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 16
{"ruleId":13181}
Enables the administrator to edit the existing assignment rule.
$ curl 'https://ccm.com/api/discovery/v1/assignmentrule/25100' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'login: admin_customer12422' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst12422' \
-d '{"ruleId":0,"name":"AHYMEUHWQJATKURMGYFFKJWHIEIALWFH","orgId":477,"filters":[{"filterType":"ORGANIZATION","matchType":"STARTS_WITH","value":"org4Test"}]}'
Table 1. /discovery/v1/assignmentrule/{ruleId}
Parameter | Description |
---|---|
| Assignment rule ID |
<pre><code>HTTP/1.1 204 No Content</code></pre>
Enables the administrator to find the assignment rule by its ID.
Path | Type | Description |
---|---|---|
|
| Assignment rule name |
|
| Assignment rule organization ID |
|
| Array of rule filters |
|
| Rule filter type |
|
| Rule match type |
|
| Rule value |
$ curl 'https://ccm.com/api/discovery/v1/assignmentrule/17626' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer4756' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst4756' \
-d '{"ruleId":16414,"name":"VQGLNYXMHWPMCZDQAPSSWNWMPMGTYWHO","orgId":411,"filters":[{"filterType":"ORGANIZATION","matchType":"STARTS_WITH","value":"org4Test"}]}'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 99
{"name":"Assignment rule 4760 [organization: org4Test, customer ID: 415]","orgId":425,"filters":[]}
Enables administrators to get the number of existing assignment rules for the organization or department delegated to them.
Path | Type | Description |
---|---|---|
|
| Assignment rules count |
$ curl 'https://ccm.com/api/discovery/v1/assignmentrule/count' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer4134' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst4134'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 13
{"count":202}
Enables Admins to get the list of existing assignment rules IDs for the organization or department delegated to them.
Path | Type | Description |
---|---|---|
|
| Array of assignment rule IDs |
$ curl 'https://ccm.com/api/discovery/v1/assignmentrule/?size=10&position=0' -i \
-H 'Content-Type: application/json' \
-H 'login: admin_customer12216' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst12216'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 61
[24898,24899,24900,24901,24902,24903,24904,24905,24906,24907]
Enables the administrator to delete a particular assignment rule that is applicable to the organization or department delegated to them.
Table 1. /discovery/v1/assignmentrule/{ruleId}
Parameter | Description |
---|---|
| Assignment rule ID |
State of Client Admin’s password
Path | Type | Description |
---|---|---|
|
| State of Client Admin. Possible values: 'ALIVE', 'EXPIRED' and 'NEVER_EXPIRE' |
|
| Expiration date of Client Admin’s password |
$ curl 'https://ccm.com/api/admin/v1/password' -i \
-H 'login: admin_customer13254' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13254' \
-H 'Accept: application/json'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 47
{"expirationDate":"2019-03-21","state":"ALIVE"}
Change of Client Admin’s password. Possible only within a month from expiration.
$ curl 'https://ccm.com/api/admin/v1/changepassword' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13246' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13246' \
-H 'Accept: application/json' \
-d '{"newPassword":"newPass122345"}'
HTTP/1.1 204 No Content
Path | Type | Description |
---|---|---|
|
| Code of error if error has occurred |
|
| Error message |
$ curl 'https://ccm.com/api/admin/v1/changepassword' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13250' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13250' \
-H 'Accept: application/json' \
-d '{"newPassword":"new"}'
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: 79
{"code":-976,"description":"New password must be between 8 and 32 characters."}
A GET
request will return ID for a person with given email.
Table 1. /person/v1/id/byEmail/{email}
Parameter | Description |
---|---|
| 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. |
$ curl 'https://ccm.com/api/person/v1/id/byEmail/[email protected]' -i \
-H 'login: admin_customer13543' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: test' \
-H 'Accept: application/json'
{"personId":51}
Path | Type | Description |
---|---|---|
|
| Person ID |
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 | [Must be at least 1, Must not be null] |
delegations[].certTypes | Array | Domain delegation certificate types | Allowed values: [SSL, SMIME, CodeSign] |
$ curl 'https://ccm.com/api/domain/v1' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13431' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13431' \
-d '{"name":"testdomain.com","description":"Domain created via REST API","active":true,"delegations":[{"orgId":50,"certTypes":["CodeSign","SSL","SMIME"]}]}'
HTTP/1.1 201 Created
Location: https://ccm.com/api/domain/v1/53
Table 1. /api/domain/{version}/{id}
Parameter | Description |
---|---|
| Domain ID |
| API version |
$ curl 'https://ccm.com/api/domain/v1/1' -i -X DELETE \
-H 'login: admin_customer13439' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13439'
HTTP/1.1 200 OK
Path | Type | Description |
---|---|---|
|
| Domain id |
|
| Domain name |
|
| Domain delegation status. Available values are: [REQUESTED, ACTIVE, AWAITING_ME] |
|
| Domain state. Available values are: [SUSPENDED, ACTIVE] |
|
| Domain validation status. This field is shown only if DCV is enabled for customer. Available values are: [Not validated, Validated, Expired] |
|
| DCV expiration date. This field is shown only if DCV is enabled for customer. Format: yyyy-MM-dd |
|
| List of domain delegations, filtered by client admin credentials. |
|
| Organization id |
|
| Certificate types. Available values are: [SSL, SMIME, CodeSign] |
|
| Delegation status. Available values are: [REQUESTED, ACTIVE, AWAITING_ME] |
$ curl 'https://ccm.com/api/domain/v1/50' -i \
-H 'login: admin_customer13459' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13459'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 206
{"id":50,"name":"testdomain.com","delegationStatus":"ACTIVE","state":"ACTIVE","validationStatus":"VALIDATED","dcvExpiration":"2020-08-08","delegations":[{"orgId":635,"certTypes":["SSL"],"status":"ACTIVE"}]}
Parameter | Description |
---|---|
| Count of returned entries |
| Position shift |
| Name filter |
| State filter |
| Status filter |
| Organization ID filter |
$ curl 'https://ccm.com/api/domain/v1?size=10&position=0' -i \
-H 'login: admin_customer13447' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13447'
Path | Type | Description |
---|---|---|
|
| Array of requested domains |
|
| Domain |
|
| Domain ID |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 125
[{"id":0,"name":"example0.com"},{"id":1,"name":"example1.com"},{"id":2,"name":"example2.com"},{"id":3,"name":"example3.com"}]
Parameter | Description |
---|---|
| Count of returned entries |
| Position shift |
| Name filter |
| State filter |
| Status filter |
| Organization ID filter |
$ curl 'https://ccm.com/api/domain/v1/count?size=10&position=0' -i \
-H 'login: admin_customer13411' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13411'
Path | Type | Description |
---|---|---|
|
| Count for domains |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 11
{"count":4}
$ curl 'https://ccm.com/api/domain/v1/2/activate' -i -X PUT \
-H 'login: admin_customer13383' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13383'
HTTP/1.1 200 OK
$ curl 'https://ccm.com/api/domain/v1/2/suspend' -i -X PUT \
-H 'login: admin_customer13491' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13491'
HTTP/1.1 200 OK
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] |
$ curl 'https://ccm.com/api/domain/v1/50/delegation' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13387' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13387' \
-d '{"orgId":50,"certTypes":["CodeSign","SSL","SMIME"]}'
HTTP/1.1 200 OK
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] |
Table 1. /api/domain/{version}/{id}/delegation
Parameter | Description |
---|---|
| Domain ID. |
| API version |
$ curl 'https://ccm.com/api/domain/v1/50/delegation' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13479' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13479' \
-d '{"orgId":50,"certTypes":["CodeSign","SSL","SMIME"]}'
HTTP/1.1 200 OK
Path | Type | Description | Constraints |
---|---|---|---|
orgId | Number | Organization ID | [Must be at least 1, Must not be null] |
Table 1. /api/domain/{version}/{id}/delegation/approve
Parameter | Description |
---|---|
| Domain ID. |
| API version |
$ curl 'https://ccm.com/api/domain/v1/50/delegation/approve' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13399' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13399' \
-d '{"orgId":50}'
HTTP/1.1 200 OK
Path | Type | Description | Constraints |
---|---|---|---|
orgId | Number | Organization ID | [Must be at least 1, Must not be null] |
Table 1. /api/domain/{version}/{id}/delegation/reject
Parameter | Description |
---|---|
| Domain ID. |
| API version |
$ curl 'https://ccm.com/api/domain/v1/50/delegation/reject' -i -X POST \
-H 'Content-Type: application/json' \
-H 'login: admin_customer13467' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13467' \
-d '{"orgId":50}'
HTTP/1.1 200 OK
$ curl 'https://ccm.com/api/organization/v1' -i \
-H 'login: admin_rao_customer13531' \
-H 'password: mLZxWzJh1+DZAPjHgnwzxaU/KVo=' \
-H 'customerUri: cst13531'
Path | Type | Description |
---|---|---|
|
| Array of requested organizations |
|
| Organization name |
|
| Organization ID |
|
| Array of allowed certificate types |
|
| Departments array |
|
| Department name |
|
| Department ID |
|
| Array of allowed certificate types |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 173
[{"id":670,"name":"org4Test","certTypes":[],"departments":[{"id":672,"name":"department4Test","certTypes":["SSL"]},{"id":673,"name":"department4Test","certTypes":["SSL"]}]}]