Dieses Thema ist nur als Beispiel vorgesehen. Es wird erläutert, wie Sie ein TLS-Zertifikat von der Zertifizierungsstelle (certificate authority, CA) Let's Encrypt abrufen. Diese Schritte dienen hauptsächlich als Beispiel, dem Sie folgen können, wenn Ihnen keine andere Möglichkeit zur Verfügung steht, ein Zertifikat-/Schlüssel-Paar zu erhalten, das von einer CA autorisiert wurde. Das Beispiel zeigt, wie Zertifikate mit der CA 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-Zertifikate für zwei Istio-Ingress-Gateways angeben, die außerhalb des Clusters verfügbar sind:
Gateway | TLS-Anforderung |
---|---|
Ingress-Gateway für die Laufzeit | Sie können ein selbst signiertes Zertifikat-/Schlüsselpaar oder autorisierte TLS-Zertifikate verwenden. |
MART-Ingress-Gateway (optional, wenn Apigee Connect nicht verwendet wird) | Erfordert ein autorisiertes TLS-Zertifikat-/Schlüsselpaar oder ein Kubernetes-Secret. |
Voraussetzungen
Sie benötigen einen Domainnamen, der über einen Domainnamenregistrar ausgestellt wird. Domainnamen können über Google Domains oder über einen beliebigen anderen Domainregistrar registriert 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.- Öffnen Sie die Google Cloud Console und melden Sie sich mit dem Konto an, das Sie in Schritt 1: Google Cloud-Konto erstellen erstellt haben.
- Wählen Sie das Projekt aus, das Sie in Schritt 2: Google Cloud-Projekt erstellen erstellt haben.
- 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-Nummer in der Clusterkonfiguration im nächsten Schritt. Beispiel:34.66.75.196
- Wenn Sie in Anthos GKE sind, folgen Sie der Anleitung unter Dokumentation zu Anthos GKE, um eine statische IP-Adresse zu erstellen.
- 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:
- Rufen Sie die gerade reservierte externe IP-Adresse ab.
- Erstellen Sie einen Datensatz für den Istio-Ingress-Endpunkt der Laufzeit. 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.- Verwaltete öffentliche Zone erstellen Eine Anleitung hierzu finden Sie unter Verwaltete öffentliche Zone erstellen.
- Erstellen Sie einen neuen Datensatz mit:
- DNS-Name: Der Name des Endpunkts, mit dem externe API-Aufrufe kommunizieren werden, wie
api-services
oderexample-endpoint
- Ressourceneintragstyp: A
- TTL und TTL-Einheit: Übernehmen Sie die Standardeinstellungen.
- IP-Adresse: Die von Ihnen erstellte statische IP-Adresse.
- DNS-Name: Der Name des Endpunkts, mit dem externe API-Aufrufe kommunizieren werden, wie
- 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 Domainseite bei Ihrem Registrar 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 Ihr 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.
- Öffnen Sie die Google Cloud Console und melden Sie sich mit dem Konto an, das Sie in Schritt 1: Google Cloud-Konto erstellen erstellt haben.
- Wählen Sie das Projekt aus, das Sie in Schritt 2: Google Cloud-Projekt erstellen erstellt haben.
- Wählen Sie IAM und Verwaltung > Dienstkonten aus.
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 Dienstkontoname 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 Project Owner 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:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directory
Beispiel:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory
- Sie finden jetzt Ihr autorisiertes Zertifikat und Ihre privaten Schlüsseldateien in diesem Verzeichnis:
cd /etc/letsencrypt/live/your_domain_name/
Beispiel:
cd /etc/letsencrypt/live/apigee-hybrid-docs.net
ls
cert.pem chain.pem fullchain.pem privkey.pem README - Kopieren Sie die Dateien
fullchain.pem
undprivkey.pem
auf Ihren lokalen Rechner. - Optional: Sie erstellen ein Kubernetes-Secret mit dem Zertifikat-/Schlüsselpaar. Weitere Informationen finden Sie unter Option 2: Kubernetes-Secret in TLS und mTLS auf dem Istio-Ingress konfigurieren.
- 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 ...
- Übernehmen Sie die Änderung:
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:apigeectl apply -f your_overrides_file --all-envs
Konfiguration testen
Stellen Sie einen Proxy bereit und testen Sie ihn, wie unter Neuen API-Proxy erstellen und bereitstellen beschrieben.