This step explains how to create the TLS credentials
that are required for Apigee hybrid to operate.
Create TLS certificates
You are required to provide TLS certificates for the runtime ingress gateway in your
Apigee hybrid configuration. For the purpose of this quickstart (a non-production trial installation),
the runtime gateway can accept self-signed credentials. In the following steps,
openssl is used to generate the self-signed credentials.
In this step, you will create the TLS credential files and add them to
the base_directory/hybrid-files/certs directory.
In Step 7: Configure the
hybrid runtime, you will add the file paths to the cluster configuration file.
This command creates a self-signed certificate/key pair that you can use for the quickstart
installation.
Check to make sure the files are in the ./certs directory using the following command:
ls ./certs
keystore.key
keystore.pem
Where keystore.pem is the self-signed TLS certificate file and keystore.key
is the key file.
You now have the credentials needed to manage Apigee hybrid
in your Kubernetes cluster. Next, you will create a file that is used by Kubernetes
to deploy the hybrid runtime components to the cluster.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eThis guide provides instructions for creating TLS credentials, which are essential for the operation of Apigee hybrid.\u003c/p\u003e\n"],["\u003cp\u003eFor non-production trial installations, self-signed certificates can be used, and the guide demonstrates generating them using \u003ccode\u003eopenssl\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIn a production environment, signed certificates are required, and they can be obtained either as a certificate and key pair or through a Kubernetes secret, such as using Let's Encrypt as the CA.\u003c/p\u003e\n"],["\u003cp\u003eThe generated TLS certificate (\u003ccode\u003ekeystore.pem\u003c/code\u003e) and key (\u003ccode\u003ekeystore.key\u003c/code\u003e) files must be saved in the \u003ccode\u003e<var translate="no">base_directory</var>``/hybrid-files/certs\u003c/code\u003e directory.\u003c/p\u003e\n"],["\u003cp\u003eThe domain name saved in the \u003cstrong\u003e\u003ccode\u003eDOMAIN\u003c/code\u003e\u003c/strong\u003e environment variable during this process must be the same as the one used for the environment group created in a previous step.\u003c/p\u003e\n"]]],[],null,["# Step 6: Create TLS certificates\n\n| You are currently viewing version 1.6 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nThis step explains how to create the TLS credentials\nthat are required for Apigee hybrid to operate.\n\nCreate TLS certificates\n-----------------------\n\n\nYou are required to provide TLS certificates for the runtime ingress gateway in your\nApigee hybrid configuration. For the purpose of this quickstart (a non-production trial installation),\nthe runtime gateway can accept self-signed credentials. In the following steps,\n[openssl](https://www.openssl.org/) is used to generate the self-signed credentials.\n| **Note:** In a production environment, you will need to use signed certificates. You can either use either a certificate and key pair or a Kubernetes secret. For an example on how to obtain a TLS certificate from the *Lets Encrypt* certificate authority (CA), see [Obtain TLS credentials: An example](/apigee/docs/hybrid/v1.6/lets-encrypt).\n\n\nIn this step, you will create the TLS credential files and add them to\nthe \u003cvar translate=\"no\"\u003ebase_directory\u003c/var\u003e`/hybrid-files/certs` directory.\nIn [Step 7: Configure the\nhybrid runtime](/apigee/docs/hybrid/v1.6/install-configure-cluster), you will add the file paths to the cluster configuration file.\n\n1. Be sure that you are in the \u003cvar translate=\"no\"\u003ebase_directory\u003c/var\u003e`/hybrid-files` directory you configured in [Set up the project directory structure](#setup-directory).\n2. Make sure to save a domain name to the **`DOMAIN`** environment variable using the following command: \n\n ```\n echo $DOMAIN\n ```\n3. Execute the following command from inside the `hybrid-files` directory: \n\n ```\n openssl req -nodes -new -x509 -keyout ./certs/keystore.key -out \\\n ./certs/keystore.pem -subj '/CN='$DOMAIN'' -days 3650\n ```\n\n\n Where **`DOMAIN`** is the same one you used for your environment in\n [Part 1, Step 5: Create an\n environment group](/apigee/docs/hybrid/v1.6/precog-add-environment).\n\n\n This command creates a self-signed certificate/key pair that you can use for the quickstart\n installation.\n4. Check to make sure the files are in the `./certs` directory using the following command: \n\n ```\n ls ./certs\n ``` \n\n ```text\n keystore.key\n keystore.pem\n ```\n\n\n Where `keystore.pem` is the self-signed TLS certificate file and `keystore.key`\n is the key file.\n\n\nYou now have the credentials needed to manage Apigee hybrid\nin your Kubernetes cluster. Next, you will create a file that is used by Kubernetes\nto deploy the hybrid runtime components to the cluster.\n[1](/apigee/docs/hybrid/v1.6/install-create-cluster) [2](/apigee/docs/hybrid/v1.6/install-cert-manager) [3](/apigee/docs/hybrid/v1.6/install-asm) [4](/apigee/docs/hybrid/v1.6/install-apigeectl) [5](/apigee/docs/hybrid/v1.6/install-service-accounts) [6](/apigee/docs/hybrid/v1.6/install-create-tls-certificates) [(NEXT) Step 7: Configure the hybrid runtime](/apigee/docs/hybrid/v1.6/install-configure-cluster) [8](/apigee/docs/hybrid/v1.6/install-enable-synchronizer-access) [9](/apigee/docs/hybrid/v1.6/install-hybrid-runtime)\n\n\u003cbr /\u003e"]]