Download OpenAPI specification:Download
The CA Gateway API is a RESTful Web service API that provides a range of certificate issuance and management functions. The API fronts multiple issuing Certification Authorities (CAs) and accommodates a range of public key algorithms, request/response formats, and certificate contents. A suitable authenticated client of the API can:
The following terms are used throughout the documentation and the API.
Issuing Certification Authority: The CA that signs certificates and revocation lists. Each CA has a unique identifying name within the API.
Root Certification Authority: The trust anchor CA that forms the root of trust. The root CA may be the same CA as the issuing CA, or it may be a separate superior CA. If the root CA is the same CA as the issuing CA, the issuing CA's certificate will be self-signed. A trust chain is formed from the series of certificates from the issued certificate up to the root CA's self-signed certificate.
Certificate Revocation List (CRL): A list of certificate serial numbers signed by the issuing CA. The list is formed from certificates that are no longer trusted by the CA, either temporarily through suspension (certificate hold) or permanently through revocation. New CRLs containing the updated list are issued frequently for distribution to relying parties.
Certificate Profile: An object available through the API that describes a particular type of certificate intended for a particular purpose. For example, a device authentication certificate profile defines a certificate for authenticating devices over a network. For another example, an S/MIME email encryption certificate profile defines a certificate for encrypting email messages. Certificate requests are associated with the desired certificate profile, and the certificate returned will reflect the purpose defined by the certificate profile. Each Certificate Profile contains information that must be provided by the client in the certificate request, such as naming information. Each Certificate Profile also specifies information used to generate the certificate, such as algorithms, key lengths, policy, and so on. Each Certificate Profile has a unique identifying name within the API.
Subject Distinguished Name: The name in certificates that identifies the owner or holder of the certificate. For example, "cn=John Doe, ou=Issuing CA, o=Example, c=US".
Issuer Distinguished Name: The name in certificates that identifies the issuing CA. For example, "ou=Issuing CA, o=Example, c=US".
Subject Alternative Name: A list of alternative names for the end entity certificate owner which are also to be contained within the certificate. There may be several Subject Alternative Names depending on the type of certificate, and they reflect the application or purpose of the certificate. For example, Subject Alternative Names can include Email addresses (RFC 822 addresses), DNS Names, IP Addresses, and so on.
Certificate Request (PKCS #10 CSR): When requesting a certificate using a profile that specifies that the key pair should be generated by the client, then the public key is submitted to the API in PKCS #10 CSR format. The CSR should be signed by the private key in order to prove that the client is in possession of the private key.
CA Identifiers used in the URI of a request must be encoded in UTF8 and percent encoded.
Certificate issuer and subject identities are represented by distinguished names (DNs), as specified in the X.500 standard. For example: "ou=Issuing CA, o=Example, c=US". Subject DNs are supplied to the API as strings, and any Subject DNs containing non-alphanumeric characters or punctuation must be encoded according to RFC 2253 (https://tools.ietf.org/html/rfc2253). These characters can be escaped by enclosing them within double quotes, for example:
The following characters are supported in a Subject Distinguished Name by the CA Gateway but must be RFC2253 encoded:
When a certificate's serial number is used in an URI, the serial number must:
Use Case: Submitting a CSR containing the public key to be certified.
When the keys and certificate are intended to be used for authentication or signing alone, then the key pair will most commonly be generated at the client. Generating the key pair at the client provides a stronger binding between the certificate and the certificate owner. For example, a network device will generate a key pair and certificate request before becoming operational. For another example, a Web server that requires a certificate for its TLS endpoint will generate its own key pair and certificate request.
The sequence of events is typically as follows:
During the above process, the private key never leaves the device. This enhances nonrepudiation.
Step 2 above can be accomplished over the CA Gateway API with the following sequence of API calls:
In the current release, all certificates will be issued synchronously.
Use Case: Requesting S/MIME certificate in PKCS #12 format for email encryption
An S/MIME certificate will typically be dual-usage so it can be used for both email signing/verification and encryption/decryption. For business continuity reasons, the Certificate Profile for an S/MIME certificate will specify that the private key will be backed up by the CA. Backing up the private key allows subsequent recovery of the private key in case it is ever lost.
The sequence of events is typically as follows:
The steps above can be accomplished over the CA Gateway API in the following sequence of API calls:
In the current release, all certificates will be issued synchronously.
Returns general information about this installation of the CA Gateway. You can use this query to ping the gateway or get the number of available CAs.
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "InfoResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "information": {
- "version": "string",
- "product": "string",
- "specificationVersion": "string",
- "configuredCACount": 0,
- "timestamp": "2023-01-11T17:19:11Z"
}
}
Lists the CAs available through this gateway. The list will include only the CAs that the API user has permissions to use.
$fields | string The $fields parameter allows you to specify which fields to return. Currently, only the following extra fields can be requested:
None of these fields are returned by default. All other fields are returned by default. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CAListResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "caList": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "status": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "certificate": {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:11Z",
- "revocationDate": "2023-01-11T17:19:11Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:11Z",
- "revocationDate": "2023-01-11T17:19:11Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
], - "licenseInfo": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
]
}
Detailed information about a CA can be requested, such as:
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
$fields | string The $fields parameter allows you to specify which fields to return. Currently, only the following extra fields can be requested:
None of these fields are returned by default. All other fields are returned by default. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CAResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "ca": {
- "id": "string",
- "name": "string",
- "description": "string",
- "status": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "certificate": {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:11Z",
- "revocationDate": "2023-01-11T17:19:11Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:11Z",
- "revocationDate": "2023-01-11T17:19:11Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
], - "licenseInfo": [
- {
- "property1": "string",
- "property2": "string"
}
]
}
}
Returns a list of capabilities that a CA supports. Capabilities determine which API calls, parameter values, and features that a particular CA supports.
The capabilities will be grouped into different categories. The full name of a capability shall be the category name, a dot, and the capability name.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CapabilitiesResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "capabilities": {
- "property1": [
- {
- "type": "BooleanCapability",
- "name": "Key Backup",
- "value": true
}
], - "property2": [
- {
- "type": "BooleanCapability",
- "name": "Key Backup",
- "value": true
}
]
}
}
Gets a specified capability by full capability name. The full capability name consists of the category name, a dot, and the capability name. For example, certificates.SearchBySerial
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
name required | string Example: EnrollmentByCSR Name of a capability. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CapabilityResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "capability": {
- "type": "BooleanCapability",
- "name": "Key Backup",
- "value": true
}
}
A Certificate Profile describes a particular type of certificate intended for a particular purpose. For example, a device authentication certificate profile defines a certificate for authenticating devices over a network. For another example, an S/MIME email encryption certificate profile defines a certificate for encrypting email messages. Each certificate request is associated with one certificate profile, and the certificate returned will reflect the purpose defined by the certificate profile. Each Certificate Profile contains information that must be provided by the client in the certificate request, such as naming information. Each Certificate Profile also specifies information used to generate the certificate, such as algorithms, key lengths, policy, and so on. Each Certificate Profile has a unique identifying name within the API.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "ProfilesResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "profiles": [
- {
- "name": "string",
- "id": "string",
- "protocols": [
- "string"
], - "subjectVariableRequirements": [
- {
- "name": "string",
- "description": "string",
- "required": true
}
], - "subjectAltNameRequirements": [
- {
- "type": "otherName",
- "required": true
}
], - "requestedProperties": [
- {
- "name": "string",
- "description": "string",
- "type": "string",
- "options": "string",
- "required": true
}
], - "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
A Certificate Profile describes a particular type of certificate intended for a particular purpose. For example, a device authentication certificate profile defines a certificate for authenticating devices over a network. For another example, an S/MIME email encryption certificate profile defines a certificate for encrypting email messages. Each certificate request is associated with one certificate profile, and the certificate returned will reflect the purpose defined by the certificate profile. Each Certificate Profile can contain information that must be provided by the client in the certificate request, such as naming information. Each Certificate Profile also specifies information used to generate the certificate, such as algorithms, key lengths and so on. Also included may be CA policy information such as whether the private key will be backed up and whether the key pair must be generated by the client or by the CA. Such policy information can be used by the client to avoid enrolment errors. Each Certificate Profile has a unique identifying name within the API.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
profileId required | string Example: 11111111-2222-3333-4444-555555555555 ID of the profile. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "ProfileResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "profile": {
- "name": "string",
- "id": "string",
- "protocols": [
- "string"
], - "subjectVariableRequirements": [
- {
- "name": "string",
- "description": "string",
- "required": true
}
], - "subjectAltNameRequirements": [
- {
- "type": "otherName",
- "required": true
}
], - "requestedProperties": [
- {
- "name": "string",
- "description": "string",
- "type": "string",
- "options": "string",
- "required": true
}
], - "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
Returns whether the CA is up or down.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "string",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "status": "string",
- "serviceStatus": {
- "property1": "string",
- "property2": "string"
}
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
$fields | string Comma-separated list of fields to include in the response. |
$offset | string Used for pagination. |
$limit | string Used for pagination. |
$filter | string Used for filtering. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "EnrollmentsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "enrollments": [
- {
- "id": "string",
- "serialNumber": "string",
- "subjectName": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
]
}
The following enrollment use cases are supported:
Certificate Subject DN information will be used from the following locations in the specified order subject to CA capabilities and whether provided in the request:
In all enrollment use cases, Subject Alternative Names may be supplied.
Note that clients who are acting under a Policy Constrained Role are not able to override values for the following:
Note: To achieve a successful enrollement request, the body should at least have the three required fields: "profileId", "CSR" and "requiredFormat".
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Enrollment request.
profileId required | string The unique Certificate Profile name covering the required certificate type. A list of available certificate profiles can be obtained through |
requiredFormat required | object (CertificateFormat) Information about the requested format of a certificate. |
subjectVariables | Array of objects (SubjectVariable) A list of subject variable name-value pairs. The Subject DN is constructed from the subject variables according to the builder configured in the Certificate Profile. The Certificate Profile obtained through Subject variable types are case sensitive and should match the case in the Certificate Profile. For example: "subjectVariables": [ {"type":"cn", "value":"Test User"}, {"type":"ou", "value":"myorgunit"}, {"type":"o", "value":"myorg"}, {"type":"c", "value":"US"} ] |
subjectAltNames | Array of objects (SubjectAltName) Optional Subject Alternative Names can be supplied. These supplied Subject Alternative Names are in addition to any included in the CSR. For example, an S/MIME email certificate request will typically include an "rfc822Name" email address, whereas a network device or web server authentication certificate used for TLS would contain "dNSName" or "iPAddress". TLS handshake rules require that a server certificate must contain a "dNSName" or "iPAddress" that matches the URL used by the client. The following Subject Alternative Name types require a simple string value to be supplied as the "value" field:
Requests for the above six types should include both "type" and "value" string fields. The "otherName" type consists of an unbounded number of possible subtypes which often cannot be represented as simple strings. When requesting a Subject Alternative Name of the otherName type supply the Base64/DER encoded GeneralName structure for the Subject Alternative Name in the "der" field. The string "value" field should be omitted.
The above "der" represents the following GeneralName ASN.1 structure which in turn is of the permanentIdentifier otherName type: [0] (2 elem) The Subject Alternative Name types "ediPartyName" and "x400Address" are not supported by this version of the CA Gateway. The CA may or may not allow certain Subject Alternative Names with the Certificate Profile being used. |
previousSubjectDn | string The previous subject DN. Triggers a DN change operation as part of the enrollment request, meaning any key and certificate history will be transferred. |
properties | object A list of additional non-certificate properties. These properties may have been requested by the CA. Some properties may be required by the CA. The client can send additional properties that have not been requested, but there is no guarantee that they will have any effect. |
csr required | string <base64> Optional Certificate Signing Request (CSR) in PKCS #10 format. If the certificate profile indicates that client key generation is required, then the CSR should be supplied. Typically, the CSR will be generated by the device, end entity, or software requiring the certificate. The CSR should contain the public key being certified. Extension requests are optional, and may or may not be processed according to the CA's policy. The Subject DN inside the CSR will be ignored. The certificate Subject DN will be formed using the supplied values for the subjectVariables (see below). |
includeCa | boolean A Boolean indication of whether to include CA certificates in the enrollment response. Note that the default for this flag for PKCS12 responses is true, whereas the default for other responses is false. The chain will be returned in the most appropriate way for the requested response format. For PKCS12 formatted responses the chain will be included inside the returned PKCS12. For PEM formatted responses the chain will be included in the body with issued certificate separated by the PEM headers/footers. For X509 formatted responses the chain will be included as a separate chain array in the response. |
optionalCertificateRequestDetails | object (CertificateRequestDetails) Optional certificate request details section. |
Successful enrollment.
Enrollment accepted.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "profileId": "string",
- "requiredFormat": {
- "format": "string",
- "protection": {
- "type": "PasswordProtection",
- "password": "S3cret"
}
}, - "subjectVariables": [
- {
- "type": "string",
- "value": "string"
}
], - "subjectAltNames": [
- {
- "type": "otherName",
- "value": "string",
- "der": "string"
}
], - "previousSubjectDn": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "csr": "string",
- "includeCa": true,
- "optionalCertificateRequestDetails": {
- "subjectDn": "string",
- "extensions": [
- {
- "oid": "string",
- "critical": false,
- "value": "string"
}
], - "validityPeriod": "string",
- "privateKeyUsagePercentage": 1,
- "encodedPublicKey": "string",
- "encodedPrivateKey": "string",
- "forceIssuance": false,
- "useSANFromCSR": true,
- "performPOP": true
}
}
{- "type": "EnrollmentResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "enrollment": {
- "id": "string",
- "serialNumber": "string",
- "subjectName": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
enrollmentId required | string <string> Example: 11111111-2222-3333-4444-555555555555 ID of the enrollment request. |
$fields | string Comma-separated list of fields to include in the response. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "EnrollmentResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "enrollment": {
- "id": "string",
- "serialNumber": "string",
- "subjectName": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
}
Modifies an enrollment request. This operation can be used to approve or deny a request, or perform other permitted alterations.
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
enrollmentId required | string <string> Example: 11111111-2222-3333-4444-555555555555 ID of the enrollment request. |
$fields | string Comma-separated list of fields to include in the response. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Successful recovery.
Recovery request accepted.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "RecoveryResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "recovery": {
- "id": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
Certificates can be looked up by their serial number. The serial number must be in hexadecimal format.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
serial required | string <string> Example: 00112233 The certificate serial number of the certificate, in hexadecimal format. A certificate issued to a known subject DN can be queried using the |
$fields | string The $fields parameter allows you to specify which fields to return. Currently, only the following extra fields can be requested:
None of these fields are returned by default. All other fields are returned by default. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CertificateResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "certificate": {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}, - "chain": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
serial required | string <string> Example: 00112233 The certificate serial number of the certificate, in hexadecimal format. A certificate issued to a known subject DN can be queried using the |
$fields | string Comma-separated list of fields to include in the response. |
$offset | string Used for pagination. |
$limit | string Used for pagination. |
$filter | string Used for filtering. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "ActionsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "actions": [
- {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
]
}
After certificates have been issued, it is possible to publicly change their trust status by making revocation, hold, and unhold requests to the API. These requests will cause the CA to alter its published revocation list, which it periodically signs and makes available to relying parties. Certificates requiring a status change are uniquely identified by the CA ID and the serial number, both of which are supplied as path parameters to the POST /v1/certificate-authorities/{caId}/certificates/{serial}/actions.
To list the supported CA-specific certificate actions, run the GET /v1/certificate-authorities/{caId}/capabilities/{name} call with name set to certificate.CertificateAction. Parameters for the CA-specific actions can be sent as properties.
The POST body is one of:
or any supported CA-specific action.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
serial required | string <string> Example: 00112233 The certificate serial number of the certificate, in hexadecimal format. A certificate issued to a known subject DN can be queried using the |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
action required | object (Action) An action to be performed. This class should not be used directly, but rather one of its subclasses. To specify an action, use the appropriate subclass. The applicable subclasses are specified in the Body section above. The type of action is specified by setting one of those names in the "type" field. |
Action complete.
Action accepted.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "action": {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
{- "type": "ActionResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "action": {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
serial required | string <string> Example: 00112233 The certificate serial number of the certificate, in hexadecimal format. A certificate issued to a known subject DN can be queried using the |
actionId required | string <string> Example: 11111111-2222-3333-4444-555555555555 ID of the action. |
$fields | string Comma-separated list of fields to include in the response. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "ActionResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "action": {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
The certificate-events API returns paged sets of events related to changes in certificate state. This feature of CA Gateway is intended to support the maintenance of an external inventory/database of certificates and corresponding state. The following state changes result in an event:
Note that the returned events are those known to the CA and will include visible events that have been triggered out-of-band to CA Gateway via other enrollment mechanisms for example.
Clients of the certificate-events API should implement the following algorithm. This describes one round of fetching events after which the client can pause for a period before executing the next round during which new events are created at the CA.:
As the name of the parameter suggests preferredPageSize is just that, i.e. a preference of the client. CA Gateway makes no guarantee that the preference will be honored precisely. The certificate-events API may return less than that amount, more than that amount or indeed no events at all, even when morePages is true. These semantics are deliberate and allow the various CA types supported by CA Gateway leeway in how they filter and organise events internally.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
preferredPageSize | integer Example: preferredPageSize=1000 The preferred number of certificate event records to return. If nextPageIndex is provided this value is ignored. Note that the actual number returned may not be equal to this and may even be zero, even if there are still more pages available. |
startDate | string <date-time> Example: startDate=2019-10-31T00:00:00+00:00 The starting point for the event search in ISO 8601 Datetime format (e.g. 2019-10-31T00:00:00+00:00). If nextPageIndex is provided this value is ignored. |
nextPageIndex | string Example: nextPageIndex=opaque data An opaque index to include in the call for the next page. This was returned in the call for the previous page. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CertificateEventsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "morePages": true,
- "nextPageIndex": "string",
- "events": [
- {
- "action": "issued",
- "event": 0,
- "eventDate": "2023-01-11T17:19:12Z",
- "certificate": "string",
- "serialNumber": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "detail": "string",
- "reason": "unspecified"
}
]
}
The ca-events API returns paged sets of events related to changes on the Certificate Authority (CA). This feature of CA Gateway is intended to support the monitoring, maintenance and synchronization of external in response to changes on the CA. Different CAs support different events. Some of the following state changes may result in an event:
Note that the returned events are those known to the CA and will include visible events that have been triggered out-of-band to CA Gateway via other enrollment mechanisms for example.
Clients of the ca-events API should implement the following algorithm. This describes one round of fetching events after which the client can pause for a period before executing the next round during which new events are created at the CA.:
As the name of the parameter suggests preferredPageSize is just that, i.e. a preference of the client. CA Gateway makes no guarantee that the preference will be honored precisely. The ca-events API may return less than that amount, more than that amount or indeed no events at all, even when morePages is true. These semantics are deliberate and allow the various CA types supported by CA Gateway leeway in how they filter and organise events internally.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
preferredPageSize | integer Example: preferredPageSize=1000 The preferred number of certificate event records to return. If nextPageIndex is provided this value is ignored. Note that the actual number returned may not be equal to this and may even be zero, even if there are still more pages available. |
startDate | string <date-time> Example: startDate=2019-10-31T00:00:00+00:00 The starting point for the event search in ISO 8601 Datetime format (e.g. 2019-10-31T00:00:00+00:00). If nextPageIndex is provided this value is ignored. |
nextPageIndex | string Example: nextPageIndex=opaque data An opaque index to include in the call for the next page. This was returned in the call for the previous page. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "CAEventsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "morePages": true,
- "nextPageIndex": "string",
- "events": [
- {
- "event": 0,
- "eventDate": "2023-01-11T17:19:12Z",
- "properties": {
- "property1": "string",
- "property2": "string"
}, - "details": "string",
- "description": "string"
}
]
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. |
$fields | string Comma-separated list of fields to include in the response. |
$offset | string Used for pagination. |
$limit | string Used for pagination. |
$filter | string Used for filtering. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "SubjectsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "subjects": [
- {
- "dn": "string",
- "serialNumbers": [
- "string"
], - "certificates": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
]
}
Constructs a subject DN based on the supplied request parameters. This operation is idempotent.
The DN will be constructed based on the supplied name-value pairs in the order that they are received.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
profileId required | string Example: CA-PROF-1001 The identifier of the profile used to generate the subject. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Subject request.
subjectVariables | Array of objects (SubjectVariable) A list of subject variable name-value pairs. The Subject DN is constructed from the subject variables according to the builder configured in the Certificate Profile. The Certificate Profile obtained through Subject variable types are case sensitive and should match the case in the Certificate Profile. For example: "subjectVariables": [ {"type":"cn", "value":"Test User"}, {"type":"ou", "value":"myorgunit"}, {"type":"o", "value":"myorg"}, {"type":"c", "value":"US"} ] |
csr | string <base64> An optional PEM-encoded CSR for the subject request. |
metadata | object Metadata to associate with the individual request. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "profileId": "cacacc73-31a7-4eed-bc30-3eae3554302f",
- "subjectVariables": {
- "dn": "User",
- "ou": "CA01",
- "o": "Example",
- "c": "US"
}
}
{- "type": "SubjectResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "subject": {
- "dn": "string",
- "serialNumbers": [
- "string"
], - "certificates": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
}
Certificates can be looked up by Subject DN. This operation is useful when you know the Subject DN of the certificate that you want to perform an action on, and you need the serial number to perform that action.
The response contains a subject. Each subject has the DN, a list of serial numbers, and optionally a list of certificates.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
dn required | string <string> Example: cn=testuser,ou=CA01,o=Example,c=US DN of the subject. |
$fields | string The $fields parameter allows you to specify which fields to return. Currently, the subject in the subject response can contain the following fields:
Currently, the only valid options for this field are:
All other values will be ignored. By default, the certificates in the certificates field will include all details. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "SubjectResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "subject": {
- "dn": "string",
- "serialNumbers": [
- "string"
], - "certificates": [
- {
- "status": "normal",
- "versionNumber": "string",
- "serialNumber": "string",
- "signatureAlgID": "string",
- "issuerName": "string",
- "validityPeriod": "string",
- "subjectName": "string",
- "rfc2253EncodedSubjectName": "string",
- "rfc2253EscapedSubjectName": "string",
- "subjectPublicKeyInfo": {
- "publicKeyAlg": "string",
- "subjectPublicKey": "string"
}, - "issuerUniqueIdentifier": "string",
- "subjectUniqueIdentifier": "string",
- "certificateSignatureAlg": "string",
- "revocationInfo": {
- "comment": "string",
- "compromiseDate": "2023-01-11T17:19:12Z",
- "revocationDate": "2023-01-11T17:19:12Z",
- "reason": "unspecified"
}, - "certificateData": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
}
After certificates have been issued, it is possible to publicly change their trust status by making revocation, hold, or unhold requests to the API. These requests will cause the CA to alter its published revocation list. The CA periodically signs its revocation list and makes it available to relying parties. Additionally, the user entry itself can be deactivated and the certificates can be put on hold or revoked. Certificates requiring a status change are uniquely identified by the CA ID and the subject DN, both of which are supplied as path parameters to POST /v1/certificate-authorities/{caId}/subjects/{dn}/actions
.
Performing actions by DN will potentially affect the state of multiple certificates. Any failures or warnings associated with individual certificate state changes will not result in the whole operation failing. The caller should inspect the returned message/details array where any problems associated with individual certificates will be reported. For example if the CA has issued three certificates for the same DN and two are on hold but one is valid, then an attempt to unhold these certificates by DN will result in a COMPLETED status with one warning contained in the message/details section of the ActionResponse.
Note: If a DN change is in progress but has not yet been completed by the user, the user and certificate information have not been fully migrated over from the previous DN to the new DN. If a DN change is in progress, the REST client may provide the new DN in the request, and the requested action will be applied to the previous DN.
The POST body is one of:
Note: Not all actions are applicable to all CAs.
Find out the applicable actions by invoking the GET /cagw/v1/certificate-authorities/{caId}/capabilities/{name} resource on a CA supplying {name} as "subjects.SubjectDNAction".
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
dn required | string <string> Example: cn=testuser,ou=CA01,o=Example,c=US DN of the subject. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Action request.
action required | object (Action) An action to be performed. This class should not be used directly, but rather one of its subclasses. To specify an action, use the appropriate subclass. The applicable subclasses are specified in the Body section above. The type of action is specified by setting one of those names in the "type" field. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "action": {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
{- "type": "ActionResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "action": {
- "type": "RevokeAction",
- "reason": "affiliationChanged",
- "comment": "A comment",
- "issueCrl": "true",
- "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
$fields | string Comma-separated list of fields to include in the response. |
$offset | string Used for pagination. |
$limit | string Used for pagination. |
$filter | string Used for filtering. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "RecoveriesResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "recoveries": [
- {
- "id": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
The CA keeps a secure copy of the private key for certificate profiles that identify the key as being backed up. The CA typically keeps a secure copy of the private key for encryption keys and certificates such as dual-usage S/MIME certificates. For these keys and certificates, losing the private key would result in losing the business data that was protected with it, such as secure email content. After losing a private key, it is possible to engage in a recovery process to recover the key and certificate. The recovery operation requires the client to supply the Subject DN and optionally the certificate profile name. If no certificate profile is referenced, then all keys and certificate types belonging to the subject will be recovered. The recovered keys and certificates are returned to the client in a PKCS #12-formatted response. A passcode must be supplied to the API. The passcode will be used to protect the private keys inside the PKCS #12 response.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Recovery request.
subjectDn required | string The subject's DN. |
recoverAll | boolean If If If unspecified, the default is false. |
protection | object (Protection) Describes the means of protecting a payload, such as a PKCS #12 file. The following types of protection are supported: |
properties | object Additional properties that may or may not have an effect depending on the CA and its capabilities. |
profileId | string This optional parameter is used to constrain the recover operation to one specified Certificate Profile if the Subject has been issued with certificates from multiple Certificate Profiles. |
includeCa | boolean Default: true A Boolean indication of whether to include CA certificates in the response. |
Successful recovery.
Recovery request accepted.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "subjectDn": "string",
- "recoverAll": true,
- "protection": {
- "type": "PasswordProtection",
- "password": "S3cret"
}, - "properties": {
- "property1": "string",
- "property2": "string"
}, - "profileId": "string",
- "includeCa": true
}
{- "type": "RecoveryResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "recovery": {
- "id": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
Note: This API is not implemented yet. It's designed for future use.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
recoveryId required | string <string> Example: 11111111-2222-3333-4444-555555555555 ID of the enrollment request. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "RecoveryResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "recovery": {
- "id": "string",
- "status": "REJECTED",
- "body": "string",
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
Lists the domains available for the CA through this gateway. This resource is only applicable to publicly trusted CAs. $offset and $limit can be used for paging of the results if the targetted CA is capable of paging. Similarly the $filter field can be used to send CA specific search constraints to the CAs - query the CAs "domains.Filter" capability to see what constraints are possible for the CA.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
$fields | string Comma-separated list of fields to include in the response. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "DomainsResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "metadata": {
- "currentCount": 0,
- "totalCount": 0,
- "currentOffset": 0,
- "currentLimit": 0
}, - "domains": [
- {
- "name": "string",
- "id": "string",
- "verificationStatus": "string",
- "verificationMethod": "string",
- "ovEligible": true,
- "ovExpiry": "2023-01-11T17:19:12Z",
- "evEligible": true,
- "evExpiry": "2023-01-11T17:19:12Z",
- "dnsVerificationInfo": {
- "recordDomain": "string",
- "recordType": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "emailVerificationInfo": {
- "emailAddresses": [
- "string"
]
}, - "webServerVerificationInfo": {
- "url": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Adds a new domain to the CA. For commercial publicly trusted CA services adding a domain is typically a billable entitlement.
Supply the following information:
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
Domain add request.
name required | string The domain name. |
verificationMethod | string For example email, webServer or dns. This is optional and non-binding as the CA may not let the client decide anyway. |
emailVerificationInfo | object (VerificationInfoEmail) |
properties | object Additional properties that may or may not have an effect depending on the CA and its capabilities. |
Successful enrollment.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "name": "string",
- "verificationMethod": "string",
- "emailVerificationInfo": {
- "emailAddresses": [
- "string"
]
}, - "properties": {
- "property1": "string",
- "property2": "string"
}
}
{- "type": "DomainResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "domain": {
- "name": "string",
- "id": "string",
- "verificationStatus": "string",
- "verificationMethod": "string",
- "ovEligible": true,
- "ovExpiry": "2023-01-11T17:19:12Z",
- "evEligible": true,
- "evExpiry": "2023-01-11T17:19:12Z",
- "dnsVerificationInfo": {
- "recordDomain": "string",
- "recordType": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "emailVerificationInfo": {
- "emailAddresses": [
- "string"
]
}, - "webServerVerificationInfo": {
- "url": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
Information held at the CA about the domain, including domain verification information.
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
domain required | string Example: entrust.com Domain name |
$fields | string The $fields parameter allows you to specify which fields to return. Currently, only the following extra fields can be requested:
None of these fields are returned by default. All other fields are returned by default. |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
OK.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "type": "DomainResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "domain": {
- "name": "string",
- "id": "string",
- "verificationStatus": "string",
- "verificationMethod": "string",
- "ovEligible": true,
- "ovExpiry": "2023-01-11T17:19:12Z",
- "evEligible": true,
- "evExpiry": "2023-01-11T17:19:12Z",
- "dnsVerificationInfo": {
- "recordDomain": "string",
- "recordType": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "emailVerificationInfo": {
- "emailAddresses": [
- "string"
]
}, - "webServerVerificationInfo": {
- "url": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
After a domain has been added the actions resource can be used to perform actions on that domain. The list of possible actions is defined by the CA's capabilities.
To list the supported CA-specific domain actions, run the GET /v1/certificate-authorities/{caId}/capabilities/domain.DomainAction.
Currently only ReverifyDomainAction is supported.
Supply the following information:
caId required | string Example: CA-1001 ID of the CA. This is a free-form string that is configured with the CA configuration and returned by GET /v1/certificate-authorities. |
domain required | string <string> Example: entrust.com The domain name |
correlationId | string A free-form identifier that will be logged with this query if any logging occurs. |
action required | object (DomainAction) A domain action to be performed. This class should not be used directly, but rather one of its subclasses. To specify an action, use the appropriate subclass of this class: ReverifyDomainAction. The type of action is specified by setting one of those names in the "type" field. |
Action complete.
Action accepted.
Something was wrong with the request.
Unauthorized.
The specified resource was not found.
An internal error occurred on the gateway.
Operation is not implemented in this gateway.
{- "action": {
- "type": "ReverifyDomainAction",
- "verificationMethod": "email",
- "emailVerificationInfo": {
- "emailAddresses": [
- "admin@domain.com"
]
}, - "properties": {
- "additionalProp1": "property value 1",
- "additionalProp2": "property value 2",
- "additionalProp3": "property value 3"
}
}
}
{- "type": "DomainResponse",
- "message": {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "details": [
- {
- "code": "string",
- "message": "string",
- "target": "string",
- "value": "string",
- "property1": "string",
- "property2": "string"
}
], - "property1": "string",
- "property2": "string"
}, - "domain": {
- "name": "string",
- "id": "string",
- "verificationStatus": "string",
- "verificationMethod": "string",
- "ovEligible": true,
- "ovExpiry": "2023-01-11T17:19:12Z",
- "evEligible": true,
- "evExpiry": "2023-01-11T17:19:12Z",
- "dnsVerificationInfo": {
- "recordDomain": "string",
- "recordType": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "emailVerificationInfo": {
- "emailAddresses": [
- "string"
]
}, - "webServerVerificationInfo": {
- "url": "string",
- "tokenValue": "string",
- "tokenExpiration": "2023-01-11T17:19:12Z"
}, - "properties": {
- "property1": "string",
- "property2": "string"
}
}
}
A List of error codes that can be produced by CAGW: