clb — Cloud Load Balancer
clb · 2018-03-17

UpLoadCert

POST

Upload a server certificate and its private key to the certificate store, returning the certificate identifier used by HTTPS listeners.

Wire call

Converge Cloud is RPC over HTTP. There is one path — / — and the action travels in the X-TC-Action header. The /clb/UpLoadCert path used in the OpenAPI document is a documentation convenience so each action is addressable; it is not a route on the server.

curl
curl -sS https://clb.api3.convergecloud.com/ \
  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \
  -H 'Content-Type: application/json; charset=utf-8' \
  -H 'Host: clb.api3.convergecloud.com' \
  -H 'X-TC-Action: UpLoadCert' \
  -H 'X-TC-Version: 2018-03-17' \
  -H 'X-TC-Timestamp: <unix-seconds>' \
  -H 'X-TC-Region: luzon' \
  -d '{"CertAlias":"<CertAlias>","CertType":"<CertType>","CertContent":"<CertContent>"}'

Request parameters

This action takes no parameters.

Response

Fields are returned inside the Response envelope. Converge Cloud answers HTTP 200 for errors as well as successes, so read Response.Error rather than the status code — and test for the presence of that object, because Code is occasionally the empty string.

No response fields are documented for this action beyond the envelope.

Success
{
  "Response": {
    // action-specific fields,
    "RequestId": "…"
  }
}
Error
{
  "Response": {
    "Error": { "Code": "…", "Message": "…" },
    "RequestId": "…"
  }
}

Try it

CredentialThe key never leaves this tab — it signs the request here. The signed request goes to /api-relay/clb.
Request bodyvalid JSONPOST clb.api3.convergecloud.com · UpLoadCert

What failure looks like

Example error responses for this action. Match on Code.

Recorded error 1
{
  "Response": {
    "Error": {
      "Code": "FailedOperation",
      "Message": "Upload certificate failed, please check that the certificate meets the standard."
    },
    "RequestId": "99096d86-1094-11df-6d88-770b629870e2"
  }
}
Recorded error 2
{
  "Response": {
    "RequestId": "1cdb81b2-4638-288c-2fc3-d70e1a48c1f4",
    "Error": {
      "Code": "InvalidParameter",
      "Message": "[Type 3002] : CertAlias is required; : Additional property Alias is not allowed; "
    }
  }
}

Behaviour

The action name contains a capital L and dispatch is case-sensitive. CertType is SVR for a server certificate. CertContent should contain the full chain. Self-signed certificates are rejected with FailedOperation; the store requires a certificate issued by a recognised authority. The response field is CertID while requests take CertId.