Wenn Sie HTTPS verwenden möchten, beachten Sie:
- Ihr Container sollte weiterhin
$PORT
überwachen. Sie müssen angeben, wie TLS-Zertifikate bereitgestellt werden sollen:
- Verwenden Sie verwaltete TLS-Zertifikate, bei denen TLS-Zertifikate bei Bedarf automatisch erstellt und automatisch verlängert werden. Auf dieser Seite wird dieses Feature beschrieben, das für die unterstützten Google Kubernetes Engine-Versionen verfügbar ist.
- Verwenden Sie eigene Zertifikate, bei denen Sie für die Anforderung und Verlängerung von Zertifikaten verantwortlich sind. In einigen Situationen, die unter Einschränkungen beschrieben werden, müssen Sie Ihre eigenen Zertifikate verwenden.
Wenn Sie verwaltete Zertifikate verwenden, müssen Sie außerdem Ihre benutzerdefinierte Domain zuordnen, um das Feature für verwaltete Zertifikate nutzen zu können.
HTTPS und HTTP verwenden
Wenn Sie verwaltete Zertifikate verwenden, sind Cluster oder Cloud Run for Anthos-Dienste mit verwalteten Zertifikaten standardmäßig sowohl für HTTP- als auch für HTTPS-Traffic verfügbar. Wenn Sie nur HTTPS-Traffic verwenden möchten, können Sie HTTPS-Weiterleitungen aktivieren, um zu erzwingen, dass der gesamte Traffic nur HTTPS verwendet.
Problembehebung
Wenn bei der Verwendung von verwalteten TLS-Zertifikaten Probleme auftreten, erhalten Sie weitere Informationen auf der Seite Fehlerbehebung für verwaltete TLS.
Beschränkungen
Die folgenden Überlegungen gelten für die Verwendung des Features für verwaltete TLS-Zertifikate:
- Verwaltete TLS-Zertifikate werden für private Cloud Run for Anthos-Cluster in Google Cloud nicht unterstützt und sind deaktiviert.
- Damit das Feature für verwaltete Zertifikate genutzt werden kann, muss der Dienst extern verfügbar sein: Er darf weder ein lokal im Cluster vorhandener Dienst sein, noch ein Dienst, der mithilfe von Virtual Private Cloud verfügbar gemacht wird.
- Das Feature „Verwaltete Zertifikate“ funktioniert nur mit Istio, wenn es beim Einrichten Ihres Clusters für Cloud Run for Anthos automatisch installiert wird. Es funktioniert nicht mit dem Istio-Add-on oder mit anderen Istio-Konfigurationen. Wenn Sie das Istio-Add-on nutzen, müssen Sie möglicherweise Ihre eigenen TLS-Zertifikate verwenden.
- Für dieses Feature wird LetsEncrypt verwendet. Hierfür gilt ein anfängliches Kontingentlimit von 50 TLS-Zertifikaten pro Woche und registrierter Domain. Wenn Sie eine Kontingenterhöhung wünschen, können Sie der LetsEncrypt-Dokumentation folgen.
- Wenn Sie einen Cloud Run for Anthos-Cluster auf anderen Plattformen ausführen, etwa lokalen Plattformen oder AWS, ist dieses Feature deaktiviert. Damit Sie dieses Feature verwenden können, muss Ihr Cluster auf LetsEncrypt zugreifen können und Ihr Istio-Ingress-Dienst (
istio-ingress
-Dienst untergke-system
) über das öffentliche Internet zugänglich sein. - Wenn Sie verwaltete Zertifikate verwenden, können Sie beim Zuordnen von Domains keinen Domainnamen zuordnen, der genau mit der URL des Dienstes übereinstimmt, dem Sie die Domains zuordnen. Wenn die URL Ihres Dienstes beispielsweise
test.default.example.com
lautet, können Sie den DomainMapping-Namen nicht auftest.default.example.com
festlegen.
Hinweis
Bei den Anweisungen auf dieser Seite wird Folgendes vorausgesetzt:
- Ihr Cloud Run for Anthos-Cluster verwendet eine der Clusterversionen, die verwaltete TLS unterstützen.
- Sie haben Ihren Cloud Run for Anthos-Dienst im Cluster bereitgestellt.
- Sie besitzen eine Domain. Wenn Sie keine Domain haben, können Sie diese von Google oder von einem anderen Domainanbieter beziehen.
- Sie haben eine Domainzuordnung für Ihren Dienst erstellt und Ihren DNS-Eintrag entsprechend der Anleitung auf der Seite zur Domainzuordnung aktualisiert.
- Wenn Sie Ihre Domain von Google Domains erhalten haben, verwenden Sie diese als DNS-Server. Andernfalls verwenden Sie Cloud DNS oder einen DNS-Server Ihrer Wahl. Am einfachsten ist es, eine Domain von Google Domains zu verwenden.
Unterstützte Cluster-Versionen
Bei Version 1.17.7-gke.15 und höher sind verwaltete Zertifikate für öffentliche Cluster in Google Cloud standardmäßig aktiviert.
Für die folgenden Clusterversionen ist das Feature für verwaltete Zertifikate standardmäßig deaktiviert. Sie können jedoch verwaltete Zertifikate aktivieren, wenn Sie sie verwenden möchten:
- 1.16.0
- 1.15.7-gke.23
- 1.14.10-gke.17
- 1.14.9-gke.23
- 1.14.8-gke.33
So ermitteln Sie die aktuelle Clusterversion:
Rufen Sie in der Google Cloud Console die Seite "Google Kubernetes Engine" auf:
Klicken Sie auf den Cluster, um die dazugehörige Detailseite zu öffnen.
Suchen Sie nach der Clusterversion neben dem Label Master-Version.
Verwaltete TLS-Zertifikate und HTTPS für einen gesamten Cluster deaktivieren
Deaktivieren Sie verwaltete TLS für einen Cluster, indem Sie die ConfigMap config-domainmapping
aktualisieren:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Verwaltete TLS und HTTPS für eine bestimmte Domainzuordnung deaktivieren
Bei Bedarf können Sie verwaltete TLS für eine bestimmte Domainzuordnung deaktivieren:
Fügen Sie die Annotation
domains.cloudrun.com/disableAutoTLS: "true"
hinzu:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
Prüfen Sie, ob HTTPS nicht funktioniert:
curl https://DOMAIN
Überprüfen Sie, ob HTTP für den Dienst verwendet wird:
gcloud run domain-mappings describe --domain DOMAIN
Ersetzen Sie DOMAIN durch Ihren eigenen Domainnamen. Beispiel:
example.com
Überprüfen Sie das Feld
url:
in der Rückgabe des obigen Befehls: Die URL musshttp
enthalten, nichthttps
.
Verwaltete TLS-Zertifikate und HTTPS wieder aktivieren
So aktivieren Sie verwaltete TLS wieder:
Falls noch nicht geschehen, erstellen Sie eine Domainzuordnung für Ihren Dienst und aktualisieren Sie Ihren DNS-Eintrag entsprechend der Anleitung auf der Seite „Domainzuordnung“.
Aktivieren Sie verwaltete TLS-Zertifikate und HTTPS, indem Sie die ConfigMap
config-domainmapping
aktualisieren:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Warten Sie nach erfolgreicher Ausführung des Befehls einige Minuten und prüfen Sie dann, ob das Zertifikatsfeature funktioniert:
kubectl get kcert
Wenn das Zertifikat bereit ist, sollte eine Meldung wie die folgende angezeigt werden:
NAME READY REASON example.com True
Es kann 20 Sekunden bis 2 Minuten dauern, bis
Kcert
bereit ist. Falls Probleme auftreten, lesen Sie die Anleitung zur Fehlerbehebung für dieses Feature.
Erfolg überprüfen
Überprüfen Sie mit dem folgenden Befehl, ob der DNS-Eintrag wirksam ist:
gcloud run domain-mappings describe --domain DOMAIN
Ersetzen Sie DOMAIN durch Ihren eigenen Domainnamen. Beispiel:
example.com
Überprüfen Sie das Feld
url:
in der Rückgabe des obigen Befehls: Die URL musshttps
enthalten, nichthttp
.Überprüfen Sie die IP-Adresse aus dem obigen Befehl, die unter
resourceRecords:rrdata
aufgeführt ist, und vergleichen Sie sie mit dem Wert, den Sie sehen, wenn Sie den Befehlhost DOMAIN
ausführen. Beide müssen identisch sein.
HTTPS-Weiterleitungen für Cloud Run for Anthos aktivieren
Wenn Sie das Feature für verwaltete TLS-Zertifikate verwenden, ist der Cluster aus Gründen der Abwärtskompatibilität standardmäßig sowohl für HTTP- als auch für HTTPS-Traffic verfügbar. Wenn Sie erzwingen möchten, dass der gesamte Traffic nur HTTPS verwendet, können Sie mit dem folgenden Befehl HTTPS-Weiterleitungen für eine vorhandene Domainzuordnung aktivieren:
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
Dabei ist DOMAIN der Name der Domainzuordnung.
Weitere Informationen
- Fehlerbehebung für verwaltete TLS mit Details zum Prüfen von Domainzuordnungen, Zertifikatskontingenten, Bestellstatus und Zeitüberschreitungen bei Bestellungen sowie Autorisierungsfehlern
- Eigene TLS-Zertifikate verwenden für Anleitungen zur Verwendung Ihrer eigenen TLS-Zertifikate anstelle der verwalteten TLS-Zertifikate