Certificate reference

The Certificate reference provides a description of all the certificates required in API Connect.

Before you begin

APICUP sets default certificates for each subsystem during installation. The default certificates are self-signed so may not provide a level of trust suitable for external communication. Custom certificates can be set and managed following the steps described in Setting custom certificates.

The Certificates reference topic lists all certificates that are set by the apicup certs commands. The default certificates can be used for the majority of these certificates. The certificates that are marked as public and user-facing are recommended to be explicitly set as custom certificates because they are presented to an end user through a browser or Command Line Interface (CLI).

The certificates that are described as TLS certificate used by ingress are also considered public in the sense that they interact with a client that sits outside of an API Connect cluster.

The remaining certificates are considered internal because they interact with internal components.

Certificates that are listed as auto-generated cannot be set using the apicup certs set command. For example, the common certificate ingress-ca is auto-generated and used as an intermediate CA for all default ingress certificates. If you set an ingress certificate as a custom certificate, you will need to configure an intermediate CA if desired.

Important:

When setting custom certificates, additional steps must be taken to provide an Extended Key Usage (EKU) serverAuth and ClientAuth and a Subject Alternative Name (SAN) for the required hosts. These certificates are generated automatically by the apicup certs command when using the default certificates.

  • For custom certificates of type server, an additional extended key usage client authentication (EKU serverAuth) certificate is required.
  • For custom certificates of type client, an additional extended key usage server authentication (EKU clientAuth) certificate is required.

Procedure

  1. Common certificates - The following certificates are common to all subsystems in a deployment. Subsystems require the common certificates to allow them to register with the management subsystem. The common certificates are identical across subsystems. When installing any one subsystem, the common certificates will be set for that subsystem and for all the other subsystems. Custom common certificates must be set prior to setting any custom subsystem certificates.

    Common certificates cannot be changed between subsystem installs. For example, you cannot set a common certificate for the management subsystem, install the management subsystem, then change a common certificate for the analytics subsystem, then install the analytics subsystem. This scenario will result in a failed installation because the common certificates are not identical.

    Table 1. Common certificates
    Certificate name (value used in apicup certs) Type Usage Requirements Description
    root-ca CA internal   CA certificate which forms the root of the certificate chain
    ingress-ca CA internal signed by: root-ca Auto-generated intermediate certificate used to generate certificates for subsystem ingress endpoints if not provided by user.

    The ingress-ca intermediate certificate cannot be set explicitly, it is always only generated. TLS certificates for the ingresses are not required to use ingress-ca as an intermediate certificate, but if a given ingress TLS certificate is left to be auto-generated then it will be signed by this ingress-ca.

    mgmt-db-ca CA internal signed by: root-ca Intermediate CA certificate used to sign certificates used by Cassandra.
    portal-client Client internal Must be signed by the same authority as the one used for the matching ingress TLS certificate portal-admin-ingress. Client certificate used by management subsystem to authenticate with the Portal admin endpoint. Requires EKU clientAuth.
    analytics-client-client Client internal Must be signed by the same authority as the one used for the matching ingress TLS certificate analytics-client-ingress . Client certificate used by management subsystem to authenticate with analytics client endpoint. Requires EKU clientAuth.
    analytics-ingestion-client Client internal Must be signed by the same authority as the one used for the matching ingress TLS certificate analytics-ingestion-ingress . Client certificate used by gateway subsystem to authenticate with analytics ingestion endpoint. Requires EKU clientAuth.
  2. Management certificates

    These certificates apply to a single Management subsystem.

    The Management subsystem has four endpoints: api-manager-ui, cloud-admin-ui, platform-api, and consumer-api. Distinct TLS certificates can be set for each endpoint. However, if any two endpoints identical, only one TLS certificate will be effective. The order of precedence is: api-manager-ui, cloud-admin-ui, platform-api, consumer-api.

    Following are examples for how precedence is determined for TLS certificates for endpoints:
    • If all four endpoints are distinct, then all four TLS certificates will be effective for their respective endpoints.
    • If all four endpoints are identical, then only the api-manager-ui TLS certificate will be effective for all endpoints, as it is first in the precedence order.
    • If the api-manager-ui, cloud-admin-ui, and platform-api endpoints are the same, and consumer-api is a different endpoint, then the api-manager-ui TLS certificate will be effective for the api-manager-ui/cloud-admin-ui/platform-api endpoints, while the consumer-api TLS certificate will be effective for the consumer-api endpoint

    The encryption-secret certificate is unique in that it is a secure random number. It is used to provide field level encryption in management (Cassandra) database. To set the encryption secret for the management database, use the following command: apicup certs set SUBSYS CERT_NAME [KEY_FILE] For example: apicup certs set mgmt1 encryption-secret /path/to/keyfile. See Setting the encryption-secret for the management database

    Table 2. Management certificates
    Certificate name Type Usage Requirements Description
    encryption-secret secure random bytes   length: 128 bytes Encryption secret used to do field level encryption in management (Cassandra) database
    platform-api Server public and user-facing The host names for which the certificate is valid must include the platform-api endpoint. A wildcard certificate can be used as the first element in a host name, for example, if the endpoint is: store.acme.com, the certificate can be one that is valid for host names matching *.acme.com. TLS certificate used by ingress. Requires EKU serverAuth. Public and user-facing.
    consumer-api Server public and user-facing The host names for which the certificate is valid must include the consumer-api endpoint. A wildcard certificate can be used as the first element in a host name, for example, if the endpoint is: store.acme.com, the certificate can be one that is valid for host names matching *.acme.com. TLS certificate used by ingress. Requires EKU serverAuth. Public and user-facing.
    api-manager-ui Server public and user-facing The host names for which the certificate is valid must include the api-manager-ui endpoint. A wildcard certificate can be used as the first element in a host name, for example, if the endpoint is: store.acme.com, the certificate can be one that is valid for host names matching *.acme.com. TLS certificate used by ingress. Requires EKU serverAuth. Public and user-facing.
    cloud-admin-ui Server public and user-facing The host names for which the certificate is valid must include the cloud-admin-ui endpoint. A wildcard certificate can be used as the first element in a host name, for example, if the endpoint is: store.acme.com, the certificate can be one that is valid for host names matching *.acme.com. TLS certificate used by ingress. Requires EKU serverAuth. Public and user-facing.
    mgmt-ca CA internal signed by: root-ca Intermediate CA used to sign management subsystem certificates
    service-server Server internal signed by: mgmt-ca Required hosts:

    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    Server certificates used by management services. Requires EKU serverAuth.
    service-client Client internal signed by: mgmt-ca Client certificate used by management services. Requires EKU clientAuth.
    db-server Server internal signed by: mgmt-db-ca

    Required hosts:
    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    Server certificate used by management (Cassandra) database to communicate with other nodes. Requires EKU serverAuth.
    db-client Client internal signed by: mgmt-db-ca Client certificate used by management services. Requires EKU clientAuth.
    service-plugin Client internal signed by: mgmt-ca Client certificate used by plugin services to talk to management subsystem. Requires EKU clientAuth.
    migration-client Client   signed by: mgmt-ca This certificate is deprecated and no longer used, and can be ignored.
  3. Portal certificates

    These certificates apply to a single portal subsystem.

    Table 3. Portal certificates
    Certificate name Type Usage Requirements Description
    portal-admin-ingress Server internal host must match admin endpoint TLS certificate used by ingress. The portal-client common certificate must be set prior to setting the portal-admin-ingress certificate. Requires EKU serverAuth.

    The portal-admin-ingress TLS certificate does not have any specific requirement on the authority signing it. If the certificate is auto-generated, it is signed by the ingress-ca.

    portal-www-ingress Server public and user-facing host must match www endpoint TLS certificate used by ingress. Requires EKU serverAuth.
    portal-ca CA internal signed by: root-ca Intermediate CA used to sign portal subsystem certificates
    portal-db-ca CA internal signed by: portal-ca Intermediate CA certificate used to sign certificates used by portal DB
    service-server Server internal signed by: portal-ca

    Required hosts:
    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    Server certificates used by portal services. Requires EKU serverAuth.
    service-client Client internal signed by: portal-ca Client certificate used by portal services. Requires EKU clientAuth.
    apim-client Client internal signed by: portal-ca Client certificate used by portal services to talk to management subsystem. Requires EKU clientAuth.
  4. Analytics certificates

    These certificates apply to a single analytics subsystem.

    Table 4. Analytics certificates
    Certificate name Type Usage Requirements Description
    analytics-client-ingress Server internal Required hosts:
    • client ingress endpoint
    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    TLS certificate used by ingress. The analytics-client-client common certificate must be set prior to setting the analytics-client-ingress certificate. Requires EKU serverAuth.

    The analytics-client-ingress TLS certificate does not have any specific requirement on the authority signing it. If the certificate is auto-generated, it is signed by the ingress-ca.

    analytics-ingestion-ingress Server internal Required hosts:
    • ingestion ingress endpoint
    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    TLS certificate used by ingress. The analytics-ingestion-client common certificate must be set prior to setting the analytics-ingestion-ingress certificate. Requires EKU serverAuth.

    The analytics-ingestion-ingress TLS certificate does not have any specific requirement on the authority signing it. If the certificate is auto-generated, it is signed by the ingress-ca.

    analytics-ca CA internal signed by: root-ca Intermediate CA used to sign analytics subsystem certificates
    service-server Server internal signed by: analytics-ca

    Required hosts:
    • *.<namespace>
    • *.<namespace>.svc
    • *.<namespace>.svc.cluster.local
    Server certificates used by analytics services. Requires EKU serverAuth.
    service-client Client internal signed by: analytics-ca Client certificate used by analytics services; requires EKU clientAuth.
  5. Gateway certificates

    These certificates apply to a single gateway subsystem.

    Table 5. Gateway certificates
    Certificate name Type Usage Requirements Description
    api-gateway-ingress Server public and user-facing host must match api-gateway endpoint TLS certificate used by ingress. Requires EKU serverAuth. (deprecated, see Note.)
    apic-gw-service-ingress Server public host must match apic-gw-service endpoint TLS certificate used by ingress. Requires EKU serverAuth.
    gw-ca CA internal signed by: root-ca Intermediate CA used to sign gateway subsystem certificates
    gateway-peering Server internal signed by: gw-ca Server certificates used by gateway services. Requires EKU serverAuth.
    Note: The api-gateway-ingress certificate is a legacy certificate which has been deprecated. It is no longer used to terminate TLS at the api-gateway endpoint. You configure a TLS profile for the termination of the api-gateway endpoint using the Cloud Manager API Invocation Endpoint and SNI settings when registering the gateway. The profiles used during configuration can be updated as needed. See Registering a gateway service