---
title: Catalog.SSL.Certificates
slug: ps/help/en_us/vtm/controlapi/catalogsslcertificates
docTags: 
createdAt: 2026-08-02T08:52:21.885Z
---

URI: http\://soap.zeus.com/zxtm/1.1/Catalog/SSL/Certificates/

The Catalog.SSL.Certificates interface allows management of SSL Certificates which are used for SSL decryption of services. Using this interface, you can create, delete and rename SSL Certificate objects.

### Methods

### createSelfSignedCertificate( names, details ) throws InvalidObjectName, ObjectAlreadyExists, InvalidInput, DeploymentError

Create new self-signed certificates.

```bash
void createSelfSignedCertificate(
String[] names
Catalog.SSL.Certificates.CertificateDetails[] details
)
```

### createSelfSignedECDSACertificate( names, details ) throws InvalidObjectName, ObjectAlreadyExists, InvalidInput, DeploymentError

Create new self-signed ECDSA certificates.

```bash
void createSelfSignedECDSACertificate(
String[] names
Catalog.SSL.Certificates.ECCertificateDetails[] details
)
```

### deleteCertificate( names ) throws InvalidObjectName, ObjectDoesNotExist, InvalidOperation, DeploymentError

Delete the named certificates.

```bash
void deleteCertificate(
String[] names
)
```

### deleteCertificateHW( names ) throws InvalidObjectName, ObjectDoesNotExist, InvalidOperation, DeploymentError

Delete the named certificates even if they are stored on secure hardware and could be in use by other clients of the hardware.

```bash
void deleteCertificateHW(
String[] names
)
```

### getCertificateInfo( names ) throws ObjectDoesNotExist

Get the information about the named certificates.

```bash
Certificate[] getCertificateInfo(
String[] names
)
```

### getCertificateNames()

Get the names of the installed certificates.

```bash
String[] getCertificateNames()
```

### getCertificateRequest( names ) throws ObjectDoesNotExist

Get Certificate signing requests for the named certificates.

```bash
String[] getCertificateRequest(
String[] names
)
```

### getRawCertificate( names ) throws ObjectDoesNotExist

Get the raw (PEM-encoded) certificates.

```bash
String[] getRawCertificate(
String[] names
)
```

### importCertificate( names, keys ) throws InvalidObjectName, ObjectAlreadyExists, InvalidInput

Create a new certificate, importing the certificate and private key.

```bash
void importCertificate(
String[] names
CertificateFiles[] keys
)
```

### renameCertificate( names, new\_names ) throws InvalidObjectName, ObjectAlreadyExists, ObjectDoesNotExist

Rename the named certificates.

```bash
void renameCertificate(
String[] names
String[] new_names
)
```

### setRawCertificate( names, certs ) throws ObjectDoesNotExist

Set the (PEM-encoded) certificate. This should be used after getting a Certificate request signed by a certificate authority.

```bash
void setRawCertificate(
String[] names
String[] certs
)
```

### Structures

### Catalog.SSL.Certificates.CertificateDetails

This structure contains the information used when generating self-signed test certificates.

```bash
struct Catalog.SSL.Certificates.CertificateDetails {
# The subject of the new certificate. The common_name of the subject should
# match the DNS name of the service this certificate is to be used for.
X509Name subject;
# The number of days this certificate should be value for (e.g. 365 for 1
# years validity)
Integer valid_days;
# The size of the generated private key. Use 2048 for normal use, or 3072 for
# more security
Integer key_size;
}
```

### Catalog.SSL.Certificates.ECCertificateDetails

This structure contains the information used when generating self-signed test certificates with ECDSA keys.

```bash
struct Catalog.SSL.Certificates.ECCertificateDetails {
# The subject of the new certificate. The common_name of the subject should
# match the DNS name of the service this certificate is to be used for.
X509Name subject;
# The number of days this certificate should be value for (e.g. 365 for 1
# years validity)
Integer valid_days;
# The name of the curve used to generate the private key. Possible values
# include P256, P384 and P521 in order of increasing strength.
String curve;
}
```

### Certificate

This structure contains information (such as the subject and issuer) about a certificate.

```bash
struct Certificate {
# The version of the X509 Certificate
Integer version;
# The serial number of the Certificate
String serial;
# The issuer (i.e. who signed it) of the Certificate
X509Name issuer;
# The subject (i.e. who it is for) of the Certificate
X509Name subject;
# The time the certificate is valid from.
Time valid_from;
# The time the certificate is valid to.
Time valid_to;
# The type of key used in the certificate.
String key_type;
# The DSA public key 'y' used in the certificate.
String y;
# The first coordinate of the public key Q for an ECDSA key used in the
# certificate.
String Q_x;
# The second coordinate of the public key Q for an ECDSA key used in the
# certificate.
String Q_y;
# The name of the curve used by the ECDSA key used in the certificate.
String curve;
# The RSA modulus of the certificate.
String modulus;
# The RSA exponent of the certificate.
String exponent;
# Whether the certificate is self-signed (i.e. the issuer is the same as the
# subject)
Boolean self_signed;
}
```

### CertificateFiles

This structure contains a public certificate and private key. It is used when importing certificates into the traffic manager.

```bash
struct CertificateFiles {
# The PEM-encoded public certificate (containing the BEGIN CERTIFICATE and
# END CERTIFICATE tags)
String public_cert;
# The PEM-encoded private key (containing the BEGIN RSA PRIVATE KEY and END
# RSA PRIVATE KEY tags)
String private_key;
}
```

### X509Name

This structure contains a representation of an X509 Name object. These are used inside Certificate objects to represent the issuer and subject of the certificate.

```bash
struct X509Name {
# The common name (CN). This is usually the name of the site the certificate
# is issued to (e.g. "secure.example.com")
String common_name;
# The two-letter country code.
String country;
# The location (town or city).
String location;
# The state, this is only needed if the country is 'US'.
String state;
# The name of the organization
String organization;
# The unit inside the organization
String unit;
# An email address. This is usually empty.
String email;
}
```
