Dieses Thema ist nur als Beispiel vorgesehen. Es wird erläutert, wie Sie ein TLS-Zertifikat von der Zertifizierungsstelle Let's Encrypt abrufen.
Diese Schritte dienen hauptsächlich als Beispiel, wenn Sie keine weitere Möglichkeit haben, ein Zertifikat/Schlüssel-Paar zu erhalten, das von einer CA autorisiert wurde. Das Beispiel zeigt, wie Zertifikate mit der Zertifizierungsstelle Let's Encrypt, dem Certbot-Client und Cloud DNS der Google Cloud Platform generiert werden.
Wo Sie diese Zertifikate verwenden können
Sie müssen TLS-Anmeldedaten für zwei Istio-Eingangsgateways angeben, die außerhalb des Clusters verfügbar sind:
Gateway
TLS-Anforderung
Gateway für eingehenden Traffic für die Laufzeit
Sie können ein selbst signiertes Zertifikat/Schlüsselpaar oder autorisierte TLS-Zertifikate verwenden.
MART-Ingress-Gateway (optional, wenn kein Apigee Connect verwendet wird)
Erfordert ein autorisiertes TLS-Zertifikat/-Schlüsselpaar oder ein Kubernetes-Secret.
Sie benötigen einen Domainnamen, der über einen Domainnamenregistrator ausgestellt wird. Domainnamen können über Google Domains oder über einen beliebigen anderen Registrator angemeldet werden.
Cloud DNS konfigurieren
Um autorisierte TLS-Zertifikate zu erhalten, benötigen Sie einen qualifizierten Domainnamen. In den folgenden Schritten wird erläutert, wie Sie mit Google Cloud DNS einen Domainnamen abrufen und Ihre Domainserver verwalten.
Aktivieren Sie die Cloud DNS API, falls noch nicht geschehen. Siehe APIs aktivieren.
Erstellen Sie eine statische IP-Adresse.
Wenn Sie in GKE sind, folgen Sie der Anleitung unter
Statische externe IP-Adresse reservieren, um statische IP-Adressen zu erstellen, mit denen externe Prozesse mit dem hybriden Laufzeit-Ingress kommunizieren können. Sie können der Adresse einen beliebigen Namen geben, beispielsweise apigee-hybrid-runtime. Nach Abschluss des Vorgangs verwenden Sie die IP-Adresse in der Clusterkonfiguration im nächsten Schritt. Beispiel: 34.66.75.196
Rufen Sie die gerade reservierte externe IP-Adresse ab.
Datensatz für den Istio-Ingress-Endpunkt der Laufzeit erstellen. Dies ist die Adresse für API-Aufrufe an das Hybridgateway. Geben Sie die externe IP-Adresse ein, die Sie im vorherigen Schritt erhalten haben, und fügen Sie dem Domainnamen ein Präfix hinzu, z. B. example-endpoint. Eine Anleitung hierzu finden Sie unter Neuen Eintrag erstellen.
DNS-Name: Der Name der Endpunkt-API-Aufrufe, mit denen der Endpunkt kommuniziert, wie
api-services oder example-endpoint
Resource Record Type: (Ressourceneintragstyp): A
TTL und TTL-Einheit: Übernehmen Sie die Standardeinstellungen.
IP-Adresse: Die von Ihnen erstellte statische IP-Adresse.
In der Ansicht Zonendetails werden vier DNS-Server als NS-Daten für Ihre neue Zone aufgelistet. Kopieren Sie die DNS-Eintragsdaten, wie im folgenden Beispiel gezeigt:
Kehren Sie zu Ihrer Domain bei Ihrem Registrator zurück (z. B. Google Domains).
Wählen Sie Ihre Domain aus.
Wählen Sie DNS aus.
Klicken Sie im Abschnitt Nameserver auf Bearbeiten.
Geben Sie die Domain-Nameserver ein, die Sie von der Seite "Network Services Cloud DNS" kopiert haben: Beispiel:
Nun verwaltet Google Cloud DNS die DNS-Einträge für Ihre Domain.
Installieren Sie Certbot auf einer VM
Nachdem Sie Cloud DNS für die Verwaltung Ihrer Domainserver eingerichtet haben, installieren Sie den Certbot-Client mit dem Plug-in dns_google auf einer Cloud-VM. Mit dem Client können Sie autorisierte Zertifikate für Ihre Domain von einem Let's Encrypt-Endpunkt abrufen.
In der Dienstkontenansicht wird eine Liste der Dienstkonten des Projekts angezeigt.
Klicken Sie oben in der Ansicht auf +Dienstkonto erstellen, um ein neues Dienstkonto zu erstellen.
Die Ansicht Dienstkontodetails wird angezeigt.
Geben Sie im Feld Name des Dienstkontos den Namen des Dienstkontos ein.
Optional können Sie im Feld Dienstkontobeschreibung eine Beschreibung eingeben. Beschreibungen helfen Ihnen, sich genau daran zu erinnern, wofür ein bestimmtes Dienstkonto verwendet wird.
Klicken Sie auf Erstellen.
Google Cloud erstellt ein neues Dienstkonto und zeigt die Ansicht Dienstkontoberechtigungen an. Verwenden Sie diese Ansicht, um Ihrem neuen Dienstkonto eine Rolle zuzuweisen.
Klicken Sie auf die Drop-down-Liste Rolle auswählen.
Wählen Sie die Rolle Projektinhaber aus.
Klicken Sie auf Weiter.
Klicken Sie auf Fertig.
Wählen Sie in der Google Cloud Console Compute Engine > VM-Instanzen aus.
Erstellen Sie eine VM-Instanz mit dem Namen certmanager.
Wählen Sie im Abschnitt "Bootlaufwerk" CentOS7 und 20 GB als nichtflüchtigen SSD-Speicher aus.
Legen Sie als Dienstkonto das oben erstellte fest.
Installieren Sie Certbot und das Plug-in dns_google auf dem Computer und führen Sie den Certbot-Client aus:
Aktualisieren Sie Ihre Überschreibungsdatei so, dass sie auf das Zertifikat und den privaten Schlüssel verweist.
Beispiel:
...
envs:
- name: test
serviceAccountPaths:
synchronizer: "your_keypath/synchronizer-manager-service-account.json
udca: "your_keypath/analytic-agent-service-account.json
virtualhosts:
- name: my-env-group
sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem"
sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem"
mart: # Assuming you are not using Apigee Connect
nodeSelector:
key: cloud.google.com/gke-nodepool
value: apigee-runtime
sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem"
sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem"
replicaCountMin: 1
replicaCountMax: 1
Oder wenn Sie Kubernetes-Secrets verwenden:
...
envs:
- name: test
serviceAccountPaths:
synchronizer: "your_keypath/synchronizer-manager-service-account.json
udca: "your_keypath/analytic-agent-service-account.json
virtualhosts:
- name: my-env-group
tlsMode: SIMPLE # Note: SIMPLE is the default, MUTUAL is also an available value.
sslSecret: myorg-test-policy-secret"
mart: # Assuming you are not using Apigee Connect
nodeSelector:
key: cloud.google.com/gke-nodepool
value: apigee-runtime
sslSecret: myorg-test-policy-secret"
replicaCountMin: 1
replicaCountMax: 1
...
Änderungen anwenden:
Wenn Sie die Konfiguration mart geändert haben, wenden Sie die Änderungen an:
apigeectl apply -f your_overrides_file --all-envs
Wenn Sie die Konfiguration envs geändert haben, wenden Sie die Änderungen an:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-28 (UTC)."],[[["\u003cp\u003eThis document provides an example of how to obtain TLS certificates from Let's Encrypt, using Certbot and Google Cloud DNS, for use with Apigee hybrid.\u003c/p\u003e\n"],["\u003cp\u003eTLS certificates are required for the MART ingress gateway and are highly recommended for the runtime ingress gateway in production environments.\u003c/p\u003e\n"],["\u003cp\u003eA domain name from a registrar is necessary, and Google Cloud DNS can be used to manage the domain servers.\u003c/p\u003e\n"],["\u003cp\u003eThe process involves creating a static IP address, setting up DNS records, installing Certbot on a Cloud VM, and obtaining the certificates.\u003c/p\u003e\n"],["\u003cp\u003eThe certificates can be used directly by referencing their paths in the overrides file, or can be stored as Kubernetes secrets and referenced that way.\u003c/p\u003e\n"]]],[],null,["# Obtain TLS certificates: An example\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\n\nThis topic is intended as an example only. It explains how to obtain a TLS certificate from\nthe certificate authority (CA) [Let's Encrypt](https://letsencrypt.org).\nThese steps are provided primarily as an example to follow if you do not have\nanother ready way to obtain a certificate/key\npair that is authorized by a CA. The example shows how to generate certificates\nusing the [Let's Encrypt](https://letsencrypt.org) CA, the\n[Certbot client](https://certbot.eff.org/about/), and Google Cloud Platform [Cloud DNS](https://cloud.google.com/dns/docs/).\n| **Note:** See also this [Apigee Community article](https://community.apigee.com/articles/86322/free-trusted-ssl-certificates-for-apigee-hybrid-in.html) on using Let's Encrypt with Apigee hybrid.\n\nWhere you can use these certificates\n------------------------------------\n\n\nYou must provide TLS certificates for two Istio ingress gateways that are exposed\noutside the cluster:\n\nSee also [External connections](/apigee/docs/hybrid/v1.6/ports#external).\n\nRequirements\n------------\n\nYou will need a domain name obtained through a domain name registrar. You can register a domain name through\nGoogle Domains or another domain registrar of your choice.\n\nConfigure Cloud DNS\n-------------------\n\nTo obtain authorized TLS certificates, you must have a qualified domain name. The following steps explain how to use [Google Cloud DNS](https://cloud.google.com/dns/) to obtain a domain name and manage your domain servers.\n\n1. Open the [Google Cloud console](https://console.cloud.google.com) and log in with the account you created in [Step 1: Create a Google Cloud account](/apigee/docs/hybrid/v1.6/precog-gcpaccount).\n2. Select the project that you created in [Step 2: Create a Google Cloud project](/apigee/docs/hybrid/v1.6/precog-gcpproject).\n3. If you have not already done so, enable the **Cloud DNS API** . See [Enabling APIs](https://cloud.google.com/apis/docs/getting-started#enabling_apis).\n4. Create a static IP address:\n - If you are on GKE, follow the instructions in [Reserving a static external IP address](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address) to create a static IP addresses that external processes can use to communicate with the hybrid runtime ingress. You can give the address any name you wish, for example: `apigee-hybrid-runtime`. When you finish, you will use the IP number in the cluster configuration in the next step. For example: `34.66.75.196`\n - If you are on Anthos GKE, follow instructions in the [Anthos GKE documentation](/anthos/clusters/docs/on-prem/1.6/how-to/create-admin-cluster#network) to create a static IP address.\n5. Get the External IP you just reserved.\n6. Create record set for the runtime Istio ingress endpoint. This is the address for making API calls to the hybrid gateway. Enter the External IP you obtained in the previous step and add a prefix to the domain name, such as `example-endpoint`. For instructions, see [Create a new record](https://cloud.google.com/dns/docs/set-up-dns-records-domain-name#create_a_new_record).\n 1. Create a managed public zone. For instructions, see [Create a managed public zone](https://cloud.google.com/dns/docs/set-up-dns-records-domain-name#create_a_managed_public_zone).\n 2. Create a new record set with:\n - **DNS Name** : The name of the endpoint external API calls will communicate with, like `\n api-services` or `example-endpoint`\n - **Resource Record Type** : **A**\n - **TTL** and **TTL Unit**: Accept defaults\n - **IP Adddress**: The static IP you created.\n7. The **Zone details** view will list foour DNS servers as the NS data for your new zone. Copy the DNS record data, as shown in the following example:\n\n8. Return to your domain page at your registrar (for example, [Google\n Domains](https://domains.google.com)).\n9. Select your domain.\n10. Select **DNS**.\n11. In the Name Servers section, click **Edit**.\n12. Enter the domain name servers that you copied from the Network Services Cloud DNS\n page. For example:\n\n\nNow, your Google Cloud DNS will manage the DNS records for your domain.\n\nInstall Certbot on a VM\n-----------------------\n\n\nNow that you have Cloud DNS set up to manage your domain servers, you will install the\nCertbot client with the\n[dns_google](https://certbot-dns-google.readthedocs.io/en/stable/) plugin on a Cloud VM. The client enables\nyou to get authorized certificates for your domain from a Let's Encrypt endpoint.\n\n1. Open the [Google Cloud console](https://console.cloud.google.com) and log in with the account you created in [Step 1: Create a Google Cloud account](/apigee/docs/hybrid/v1.6/precog-gcpaccount).\n2. Select the project that you created in [Step 2: Create a Google Cloud project](/apigee/docs/hybrid/v1.6/precog-gcpproject).\n3. Select **IAM \\& admin \\\u003e Service accounts** .\n\n The **Service accounts view** displays a list of the project's service accounts.\n4. To create a new service account, click **+Create Service Account** at the top of the view.\n\n The **Service account details** view displays.\n5. In the **Service account name** field, enter the name of the service account.\n\n You can optionally add a description in the **Service account description**\n field. Descriptions are helpful at reminding you what a particular service account is used\n for.\n6. Click **Create** .\n\n Google Cloud creates a new service account and displays the **Service account\n permissions** view. Use this view to assign a role to your new service account.\n7. Click the **Select a role** drop-down list.\n8. Select the **Project Owner** role.\n9. Click **Continue**.\n10. Click **Done**.\n11. In the Google Cloud console, select **Compute Engine \\\u003e VM Instances**.\n12. Create a VM instance named **certmanager**.\n13. Under the Boot Disk section, choose CentOS7 and 20 GB for the SSD persistent drive.\n14. Set the Service Account to the one you created above.\n15. Install Certbot and the [dns_google](https://certbot-dns-google.readthedocs.io/en/stable/) plugin on the machine and run the Certbot client: \n\n sudo su -\n yum -y install yum-utils\n yum install certbot -y\n yum install certbot-dns-google -y\n certbot certonly --dns-google -d *.\u003cvar translate=\"no\"\u003eyour_domain_name\u003c/var\u003e,*.\u003cvar translate=\"no\"\u003eyour_domain_name\u003c/var\u003e --server https://acme-v02.api.letsencrypt.org/directory\n \n\n For example: \n\n sudo su -\n yum -y install yum-utils\n yum install certbot -y\n yum install certbot-dns-google -y\n certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory\n\n16. You can now find your authorized certificate and private key files in this directory: `cd /etc/letsencrypt/live/`\u003cvar translate=\"no\"\u003eyour_domain_name\u003c/var\u003e`/`\n\n\n For example: \n\n cd /etc/letsencrypt/live/apigee-hybrid-docs.net\n ls\n cert.pem chain.pem fullchain.pem privkey.pem README\n\n17. Copy the files `fullchain.pem` and `privkey.pem` to your local machine.\n18. *Optional* : Create a Kubernetes secret with the certificate/key pair. See the instructions in [Option 2: Kubernetes Secret](/apigee/docs/hybrid/v1.6/ingress-tls#option-2:-kubernetes-secret) in [Configuring TLS and mTLS on the Istio ingress](/apigee/docs/hybrid/v1.6/ingress-tls).\n19. Update your overrides file to point to the certificate and private key.\n For example:\n\n ```scdoc\n ...\n envs:\n - name: test\n serviceAccountPaths:\n synchronizer: \"your_keypath/synchronizer-manager-service-account.json\n udca: \"your_keypath/analytic-agent-service-account.json\n\n virtualhosts:\n - name: my-env-group\n sslCertPath: \"$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem\"\n sslKeyPath: \"$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem\"\n\n mart: # Assuming you are not using Apigee Connect\n nodeSelector:\n key: cloud.google.com/gke-nodepool\n value: apigee-runtime\n sslCertPath: \"$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem\"\n sslKeyPath: \"$HOME/hybrid/apigee-hybrid-setup/tls/privkey.pem\"\n replicaCountMin: 1\n replicaCountMax: 1\n ```\n\n\n Or if using Kubernetes secrets: \n\n ```scdoc\n ...\n envs:\n - name: test\n serviceAccountPaths:\n synchronizer: \"your_keypath/synchronizer-manager-service-account.json\n udca: \"your_keypath/analytic-agent-service-account.json\n\n virtualhosts:\n - name: my-env-group\n tlsMode: SIMPLE # Note: SIMPLE is the default, MUTUAL is also an available value.\n sslSecret: myorg-test-policy-secret\"\n\n mart: # Assuming you are not using Apigee Connect\n nodeSelector:\n key: cloud.google.com/gke-nodepool\n value: apigee-runtime\n sslSecret: myorg-test-policy-secret\"\n replicaCountMin: 1\n replicaCountMax: 1\n\n ... \n ```\n20. Apply the changes:\n If you changed the `mart` configuration, apply the changes:\n\n ```\n apigeectl apply -f your_overrides_file --all-envs\n ```\n\n\n If you changed the `envs` configuration, apply the changes: \n\n ```\n apigeectl apply -f your_overrides_file --all-envs\n ```\n\nTest the configuration\n----------------------\n\n21. Deploy and test a proxy, as explained in [Create and deploy a new API proxy](/apigee/docs/hybrid/v1.6/test-new-proxy)."]]