Let’s Encrypt

Lets Encrypt Request Objects

Table 1. Lets Encrypt caConnectorInfo
Name Description
certificateAuthority (Mandatory) Name of the certificate authority that issues the certificate.

Type: String

Constraint: The value should be Lets Encrypt.

isAutoRenewal (Optional) Determines whether the certificate will be renewed before its expiration date. If enabled (true), renewal is initiated before the expiry date, following the specified number of days in "renewBefore."

Type: Boolean

Constraint: The value should be disabled (false) if autoRegenerateEnabled is true.

renewBefore (Optional) Specifies the number of days prior to expiration when the renewal request should be triggered.

Type: Integer

Constraint: The value must be provided if isAutoRenewal is true.

autoRegenerateEnabled (Optional) Determines whether the certificate will be regenerated before its expiration date, as indicated by the "regenerateBeforeInDays" field. If enabled (true), regeneration occurs before expiry, according to the specified number of days in "regenerateBeforeInDays."

Type: Boolean

Constraint: The value should be disabled (false) if isAutoRenewal is true.

regenerateBeforeInDays (Optional) Specifies the number of days prior to expiration when the regenerate request should be triggered.

Type: Integer

caSettingName (Mandatory) Name of the CASetting created in AppViewX for the chosen certificate authority.

Type: String

description (Optional) Information about the certificate.

Type: String

csrParameters (Optional) Parameters required for generating a CSR.

Type: LetsEncrypt CSR Parameters

genericFields (Optional) Custom fields configured for the CA/customer.

Type: LetsEncrypt genericFields

vendorSpecificDetails (Optional) Data specific to the LetsEncrypt vendor.

Type: LetsEncrypt vendorSpecificDetails

validityInDays (Optional) Specifies the validity in days.

Type: Integer

name (Optional) Name for the CA connector.

Type: String

Table 2. Lets Encrypt CSR Parameters
Name Description
commonName (Mandatory) A fully qualified domain name (FQDN) of the server for which certificate is requested.

Type: String

Constraint: It must be compliant with the common name specified in the policy, if the policy is set as ‘Strict.’

organization (Optional) Legal name of the organization.

Type: String

Constraint: Default value - the value configured in the policy.

organizationUnit (Optional) Division or department of the organization handling the certificate.

Type: String

Constraint: Default value - the value configured in the policy.

locality (Optional) City where the organization is located. The value should not be abbreviated.

Type: String

Constraint: Default value - the value configured in the policy.

state (Optional) State or region where the organization is located. The value should not be abbreviated.

Type: String

Constraint: Default value - the value configured in the policy.

country (Optional) A two-letter code for the country where the organization is located.

Type: String

Constraint: Default value - the value configured in the policy.

mailAddress (Optional) Email address of the organization.

Type: String

hashFunction (Optional) The hash function to be used in the Certificate, e.g. SHA160. It should be chosen from the possible values configured in the certificate policy.

Type: String

Constraint: Default value - the first value will be chosen from the policy.

keyType (Optional) The algorithm to be used for key generation, e.g. RSA, DSA, or EC. It should be chosen from the possible values configured in the certificate policy.

Type: String

Constraint: Default value - the first value will be chosen from the policy.

bitLength (Optional) The bit length for the key is dependent on the key type chosen. It should be chosen from the possible values configured in the certificate policy.

Type: String

Constraint: Default value - the first value will be chosen from the policy

certificateCategories (Mandatory) Purpose or intended use of the generated certificate

Type: Array of string

Possible value: Server, Client, Code Signing, and Email

Recommendation: Assign only one of the possible values as the input. For example, if intended certificate category is client, set this parameter to Client.

ellipticCurve (Optional) If the keyType chosen is EC, then the ellipticCurve must be specified depending on the bit length selected. It should be chosen from the possible values configured in the certificate policy.

Type: String

Constraint: Default value - the first value will be chosen from the policy

enhancedSANTypes (Optional) The subject alternative names (SAN) for the certificate. The sub-parameter is dNSNames.
dNSNames

enhancedSANTypes

(Optional) List of subject alternative names for the certificate.

Type: Array of String

Table 3. Lets Encrypt genericFields
Name Description
device_name_LetsEncrypt (Optional) Server device name for which certificate is requested.

Type: String

vs_ip_LetsEncrypt (Optional) Server IP address for which certificate is requested.

Type: String

f5_device (Optional) F5 device name/IP address.

Type: String

data_group_name (Optional) Data group name.

Type: String

infoblox_device (Optional) Infoblox device name/IP address.

Type: String

validation_ip (Optional) Validation IP address.

Type: String

Table 4. Lets Encrypt vendorSpecificDetails
Name Description
challengeType (Mandatory) The challenge validation type.

Type: String

Possible values: DNS or HTTP.

Sample Request/Response

Request Payload
{
 "csrGenerationSource": "appviewx",
 "caConnectorInfo": {
 "certificateAuthority": "LetsEncrypt",
 "isAutoRenewal": "false",
 "autoRegenerateEnabled": true,
 "regenerateBeforeInDays": "30",
 "caSettingName": "LetsEncrypt",
 "description": "",
 "csrParameters": {
 "commonName": "testcert.testdomain.net",
 "hashFunction": "SHA256",
 "keyType": "RSA",
 "bitLength": "4096",
 "certificateCategories": ["Server"],
 "ellipticCurve": "",
 "enhancedSANTypes": {
 "dNSNames": ["test.lab.appviewx.net"]
 }
 },
 "genericFields": {
 "device_name_LetsEncrypt": "",
 "vs_ip_LetsEncrypt": "",
 "f5_device": "",
 "data_group_name": "",
 "infoblox_device": "",
 "validation_ip": ""
 },
 "vendorSpecificDetails": {
 "challengeType": "DNS"
 },
 "validityInDays": 90
 },
 "certificateGroup": {
 "name": "Default"
 }
 }
Response
{
 "response": {
 "resourceId": "5f510caa70040d33314f13d7",
 "requestId": "204"
 },
 "message": "Certificate submission triggered successfully.",
 "appStatusCode": null,
 "tags": {},
 "headers": null
 }