Issue Certificate

The API initiates a request to issue certificate.

Before you begin

Ensure the following before attempting to renew certificate from any CA through AppViewX:

Request Structure

Endpoint: v1/pki/ca/issue/cert
Type: POST
Sample URL:
https://<IP/HostName/TenantName>:<GWPORT>/avxapi/v1/pki/ca/issue/cert?gwsource=external

To understand the elements of the sample URL, click here.

Headers
Content-Type: application/json
Table 1. Input Parameters
Name Description
sessionId

Header

(Mandatory) Session Id received after login.

Type: String

Constraint: Required if username and password are not provided.

username

Header

(Mandatory) AppViewX login username.

Type: String

Constraint: Required if sessionId is not provided.

password

Header

(Mandatory) AppViewX login password.

Type: String

Constraint: Required if sessionId is not provided.

Payload

Table 2. Payload
Name Description
caName (Mandatory) Name of the Certificate Authority to issue the certificate from.

Type: String

templateName (Mandatory) The certificate template to use.

Type: String

validityUnit (Mandatory) Unit for the certificate's validity (e.g., months, years).

Type: String

validityUnitValue (Mandatory) Action to triggered with the request

Type: Integer

csrContent (Mandatory) Base64-encoded CSR (Certificate Signing Request)

Type: String

certificateType (Mandatory) Type of certificate to be issued (e.g., End Certificate, Client, etc.)

Type: String

pathLength (Optional) Specifies the maximum number of subordinate CAs allowed below this certificate in the chain. The selected value must be less than the root issuing CA's path length.

Type: String

Response Structure

Response returns string of type application/json with the following body parameters:

Table 3. Parameters
Name Description
response Contains the response attributes for the issue certificate request.
message Success message - Issue certificate action triggered successfully.

Type: String

appStatusCode Application specific status code for the response. It is a non-null value for a failure response.

Type: String

tags Additional information in case of failure response.

Status Codes

HTTP Code appStatusCode Response Message
200 Accepted null Issue certificate action has been triggered successfully.
401 Unauthorized AVX_GW_003 Authentication failed, reason - Invalid Credentials.

Remediation: Ensure that valid username and password or a valid sessionId is provided as header parameters.

417 Expectation Failed CA_CONFIG_NOT_FOUND Occurs when specified CA is not present.

Remediation: Ensure that specified CA is present.

500 Internal Server Error TEMPLATE_NAME_NOT_AVAILABLE_IN_DB Occurs when specified Template is not present.

Remediation: Ensure that specified template is present.

400 Bad Request VALIDATION_ERROR_0004 Occurs when csrContent field is not present.

Remediation: Ensure that csrContent field is present.

Sample Request/Response

Request Payload
{
  "caName": "RootCaMay8",
  "templateName": "WebServer",
  "validityUnit": "months",
  "validityUnitValue": 1,
  "csrContent": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ3h6Q0NBYThDQVFBd0dURVhNQlVHQTFVRUF3d09kM2QzTG1kdmIyZHNaUzVqYjIwd2dnRWlNQTBHQ1NxRwpTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDVUhxWnI1bVhlWCtjOXk0bTg1R2VIUXR2S3EyQVpjVHRxCi9UM1lzMlE3M3k0YWEvN1pncW5IM2lTM0hTWCs4RjlYOHFuSVphUlIvTzJ6Z1A1MVc1dXE5QkNGTEFMZ0pRclEKenBhTEhQekorOEtUMmJSblczRmtVTitUeG1MZkhXSnFYRy9iRUZWM3FOdUVmTGtQcXlWZU5wWE95YlJCWkNLbwpQNkViY1g0THhUN241NzAwVTRQQ242aDE4WmVFOWtIV2NIb0FVejJpV1NOVVF3U3NmTnljSnZib09GdUxmN1hZCkFPY0xLTWltSHd1OWdaVkZtaTZDNm5TVFl4WmhMV3VhUFFtcDdzdTUzUkJ1WjRsWTlldE11Z0VWMEo1cks4TXkKZmRMbVIvRHZWUXhxMkI2djZDOGg2ckU5QVdxOVJYQ1dKR3lXdWVSSlJNRG5wVUJhTU5wTkFnTUJBQUdnYVRCbgpCZ2txaGtpRzl3MEJDUTR4V2pCWU1Bd0dBMVVkRXdFQi93UUNNQUF3RGdZRFZSMFBBUUgvQkFRREFnV2dNQmtHCkExVWRFUVFTTUJDQ0RuZDNkeTVuYjI5bmJHVXVZMjl0TUIwR0ExVWRKUVFXTUJRR0NDc0dBUVVGQndNQkJnZ3IKQmdFRkJRY0RBakFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBUGh2aXcvc0hYR1BEdzAwaURRcUtTdjRrT1VncApINmw3SC9aOTF0eEhvVEZteGlRRGxXYlJJYU9KeGlqbElvMlowQ1NHK0x3SC9yUFpBbDk1a0I1NFdYLzQ3aklICnBGVE1KczhyMFFRZ25uRE5TdFQyc1BGZ3g1R0ZnMWlkSmw3Zk1GUmhxb0QyejR2QnNSUUtPS25yR2Jhb0dLZ2YKbzFXN2NXR2REZVBoOHJmZHB4RjlBMjRUcHMwekpPcDNLUnN4V0pzeTNXaE9Qd0IxRWx6RDloS040Szh6Sis5egpuc2hUL0tORE5VNVYwakRxbkhOdS9vdmlSZDA4TVl0K2xzano2cUk0dXNGZU5rVmZBcUpKNUl0cmZsYmN0WmpsCmEvdnVZdHhSU2hOdVcrc1FIOS9GcFpHR3o5T3o3aVJOcjRLNGFXTFFFZndnUTI1WmdPekQ5M1lDS2c9PQotLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0=",
  "certificateType": "End Certificate",
  "pathLength": "2"
}
Response

{
    "response": 
     "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZsakNDQTRDZ0F3SUJBZ0lRYl
     RRcm1ySFpsQllBZUw2NFprYXdsREFMQmdrcWhraUc5dzBCQVFzd1hqRUxNQWtHQTFVRUJoTUNTVTR4
     Q3pBSkJnTlZCQWdNQWxST01Rd3dDZ1lEVlFRSERBTkRRa1V4RmpBVUJnTlZCQW9NRFVGd2NGWnBaWGRZSUVsdVl5 
     NHhDekFKQmdOVkJBc01BbEJGTVE4d0RRWURWUVFEREFaU2IyOTBRMEV3SGhjTk1qVXdOVEV6TURrMU5UVTJXaGNOTWp
     Vd05qRXpNak0xT1RVNVdqQVpNUmN3RlFZRFZRUUREQTUzZDNjdVoyOXZaMnhsTG1OdmJUQ0NBU0l3RFFZSktvWklod
     mNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpRZXBtdm1aZDVmNXozTGliemtaNGRDMjhxcllCbHhPMnI5UGRpelpEdmZMa
     HByL3RtQ3FjZmVKTGNkSmY3d1gxZnlxY2hscEZIODdiT0EvblZibTZyMEVJVXNBdUFsQ3RET2xvc2MvTW43d3BQWnRHZGJjV1
     JRMzVQR1l0OGRZbXBjYjlzUVZYZW8yNFI4dVErckpWNDJsYzdKdEVGa0lxZy9vUnR4Zmd2RlB1Zm52VFJUZzhLZnFIWHhsNFQy
     UWRad2VnQlRQYUpaSTFSREJLeDgzSndtOXVnNFc0dC90ZGdBNXdzb3lLWWZDNzJCbFVXYUxvTHFkSk5qRm1FdGE1bzlDYW51e
     TduZEVHNW5pVmoxNjB5NkFSWFFubXNyd3pKOTB1Wkg4TzlWREdyWUhxL29MeUhxc1QwQmFyMUZjSllrYkphNTVFbEV3T2VsUUZ
     vdzJrMENBd0VBQWFPQ0FaY3dnZ0dUTUIwR0ExVWREZ1FXQkJTQ1E5UldNZTU2elBVd0x0UTIxRThpT0NaYmtUQWZCZ05WSFNNRUd
     EQVdnQlRFUUF6SHM3SktveHdKalpmb2NHZXZicXVXcnpBT0JnTlZIUThCQWY4RUJBTUNCYUF3REFZRFZSMFRBUUgvQkFJd0FEQVR
     CZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBVEJSQmdOVkhSOEVTakJJTUVhZ1JLQkNoa0JvZEhSd2N6b3ZMekU1TWk0eE5qZ3VNV
     FExTGpnMk9qTXhORFF6TDJGMmVHRndhUzlrYjNkdWJHOWhaQzFqY213dlVtOXZkRU5CTVM5amNtd3VZM0pzTUlIS0JnZ3JCZ0V
     GQlFjQkFRU0J2VENCdWpBNkJnZ3JCZ0VGQlFjd0FZWXVhSFIwY0RvdkwzQmxMV055ZVhCMGJ5MWhjSFo0TFc0MkxteGhZaTVoY0h
     CMmFXVjNlQzV1WlhRdmIyTnpjREI4QmdnckJnRUZCUWN3QW9ad2FIUjBjSE02THk4eE9USXVNVFk0TGpFME5TNDROam96TVRRME1
     5OWhkbmhoY0drdlpHOTNibXh2WVdRdGFYTnpkV1Z5TDFKdmIzUkRRVEUvYzJWeWFXRnNUblZ0WW1WeVBURXpNakkzTVRneU5qVT
     JORFUzTWpNd01EZ3hOREV6TVRRMk5qTTRPVFEzTWpVNU9EWTFPREFMQmdrcWhraUc5dzBCQVFzRGdnSUJBR0ZJN24xRnY4SkN3RlRMN
     Hc3OEZTcDZDZmdTZXVaWTNsaysweVBSOWlSczdINW9yOGFVcWJvTUJ6dVlYYkd1R2wvU0kzRnEvYUF3MDRtZDNsRGdYQkt0OWZYMWg1
     SFZUTE9IeFNGMkQ0K20zOW9OVEx5RlJ3cy9PRENOcTZ3U25BbXk5WHRMTFFBWWgzc1pQR2tPUVVla1lMN1Y2VXRKeW8rT3RYTTE0Nn
     VGakhKTHA2eDBTQjNNeDhJR3B5ZEw2ME4zMDF3eXNXYloxSHJpdWJLWjdNb0hCVDBhSERBTitXRWNVQU44ajRoSTNFTFdpekFme
     DFBQ013V25iMjJVUFdhQnR6elVHOUhvbWZ5VGNYWVlJNW1RMkhoWExZazlqZzFzRTZjTmdNOUpDUHdTOENXdXVqSk9pYTg0Z2pmbzkr
     SnA3WXVFQUxBQi9oR2hlYlpXMmNDclBpS2U1UmpaSGJiQ2RyVGY2bmtDUGNod0VwNTB2VnhZalQ4YzFadnk4Z0kxVHJKNVpBdGg0dHdXY
     3ZiTUttbHduZldtU2x2cFhvcnZpRzR2YWVPbHA4VnZ3YkNHMFFsazdFU1N3WjJROUJ0cUtjb2grbk9SQ1NZd1IxTGtBNGtqMG5lWGhpb
     3BsMGJ3YmhFdTh6eEFmZWZLRFQrcGtFNHVOQThNNHpETjh1NnVVZXFMUGNDbFdnMmVlV0hPR0x6bzhqRjVzZWZKelRJR3gwVUE5ME0wYWs
     3ZDRBVEU3ZUNRWTBYMG9ERHZQWGtUSEY5YlpRRTM3S0h5Qm41U3g5V2crZUQwYmZFN1p6Mm5SOUJYWjk1V2VGRm9vZGxmUkdRWmNWMm90
     MkIvTTJqRkdKSWJneEZtblJMTkdpWDc0M0ZmVW5IbTFORU5RK2krMHhNTzZNazUKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
    "message": null,
    "appStatusCode": null,
    "tags": {},
    "headers": null
}

References

Understanding the sample URL
  • IP/HostName/TenantName: Replace with the actual IP address, hostname, or tenant name based on the specific configuration in AppViewX.
    • IP: A unique identifier assigned to each device connected to a computer network that uses the Internet Protocol for communication

      The IP address will be included in the endpoint URL for an on-prem deployment.

    • HostName: A human-readable label assigned to a device (host) on a network

      The hostname will be included in the endpoint URL for an on-prem deployment.

    • TenantName: An identifier label for a tenant given to indicate which tenant's data the API request will access/modify

      The tenant name will be included in the endpoint URL for a SaaS deployment.

  • GWPORT: AppViewX gateway port

    A gateway port refers to a network port through which data is sent and received to communicate with a gateway in an on-prem deployment.

    Example: 31443

  • avxapi: Path parameter value (static) that is part of the endpoint's URL
  • Endpoint: Endpoint of the API, for example: execute-hook
  • gwsource: Source or origin of a gateway, for example: external.