Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Auf dieser Seite wird erläutert, wie Sie verwaltete TLS-Zertifikate deaktivieren und wieder aktivieren. Dieses Feature stellt TLS-Zertifikate automatisch bereit und verlängert sie, um HTTPS-Verbindungen in Knative Serving zu unterstützen.
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 Knative Serving-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.
Fehlerbehebung
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 von verwalteten TLS-Zertifikaten:
Verwaltete TLS-Zertifikate werden für private Knative Serving-Cluster in Google Cloud nicht unterstützt und sind deaktiviert.
Damit verwaltete Zertifikate genutzt werden können, 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.
Verwaltete Zertifikate funktionieren nur mit Cloud Service Mesh. Das Istio-Add-on oder andere Istio-Konfigurationen werden nicht unterstützt.
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 Let’s Encrypt-Dokumentation folgen.
Wenn Sie einen Knative Serving-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 Let’s Encrypt zugreifen können und Ihr Cloud Service Mesh-Dienst für eingehenden Traffic über das öffentliche Internet zugänglich sein.
Vorbereitung
Bei den Anweisungen auf dieser Seite wird Folgendes vorausgesetzt:
Sie haben 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.
Andernfalls verwenden Sie Cloud DNS oder einen DNS-Server Ihrer Wahl.
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:
Überprüfen Sie, ob HTTP für den Dienst verwendet wird:
gcloudrundomain-mappingsdescribe--domainDOMAIN
Ersetzen Sie DOMAIN durch Ihren eigenen Domainnamen. Beispiel: your-domain.com
Überprüfen Sie das Feld url: in der Rückgabe des obigen Befehls: Die URL muss http enthalten, nicht https.
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:
Warten Sie nach erfolgreicher Ausführung des Befehls einige Minuten und prüfen Sie dann, ob das Zertifikatsfeature funktioniert:
kubectlgetkcert
Wenn das Zertifikat bereit ist, sollte eine Meldung wie die folgende angezeigt werden:
NAMEREADYREASON
your-domain.comTrue
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:
gcloudrundomain-mappingsdescribe--domainDOMAIN
Ersetzen Sie DOMAIN durch Ihren eigenen Domainnamen. Beispiel: your-domain.com
Überprüfen Sie das Feld url: in der Rückgabe des obigen Befehls: Die URL muss https enthalten, nicht http.
Ü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 Befehl host DOMAIN ausführen. Sie müssen identisch sein.
HTTPS-Weiterleitungen für Knative Serving 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:
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
[[["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: 2024-12-20 (UTC)."],[],[],null,["# Using managed TLS certificates and HTTPS\n\nThis page shows how to turn off and re-enable the managed TLS certificates feature that automatically provides and renews TLS certificates to support HTTPS connections on Knative serving.\n\n\u003cbr /\u003e\n\nIf you want to use HTTPS,\n\n- Your container should continue listening on `$PORT`\n- You must choose how you are supplying TLS certificates:\n\n - Use managed TLS certificates, where TLS certificates are automatically created as needed, and are automatically renewed. This page describes this feature, which is available in the [supported Google Kubernetes Engine versions](/kubernetes-engine/enterprise/knative-serving/docs/cluster-versions).\n - [Use your own certificates](/kubernetes-engine/enterprise/knative-serving/docs/bring-your-own-cert), where you are responsible for obtaining and renewing certificates. In some situations, described under [Limitations](#limitations), you must use your own certificates.\n- If you are using managed certificates, you must also\n [map your custom domain](/kubernetes-engine/enterprise/knative-serving/docs/mapping-custom-domains) in order to use the\n managed certificates feature.\n\nUsing HTTPS and HTTP\n--------------------\n\nBy default, if you use managed certificates, clusters or Knative serving\nservices with managed certificates are exposed to both HTTP and HTTPS traffic.\nIf you want only HTTPS traffic, you can [enable HTTPS redirects](#redirects) to\nforce all traffic to use HTTPS only.\n\nTroubleshooting\n---------------\n\nIf you experience issues when using managed TLS certificates, refer to the\n[managed TLS troubleshooting](/kubernetes-engine/enterprise/knative-serving/docs/troubleshooting#managed-tls) page.\n\nLimitations\n-----------\n\nThe following considerations apply to the use of the managed TLS certificates\nfeature:\n\n- Managed TLS certificates are disabled and not supported for Knative serving private clusters on Google Cloud.\n- To use the managed certificates feature, your service must be [exposed externally](/kubernetes-engine/enterprise/knative-serving/docs/managing/services#connectivity): it cannot be a cluster-local service or a service exposed by [Virtual Private Cloud](/vpc).\n- The managed certificates feature works only with Cloud Service Mesh. The Istio addon or other Istio configurations are not supported.\n- This feature uses [Let's Encrypt](https://letsencrypt.org/), which has an initial quota limit of 50 TLS certificates per week per registered domain. You can ask for a quota increase by following the [Let's Encrypt documentation](https://letsencrypt.org/docs/rate-limits/).\n- When running a Knative serving cluster on other platforms, such as on-prem or AWS, this feature is disabled. To use this feature, you must make sure your cluster is able to access [Let's Encrypt](https://acme-v02.api.letsencrypt.org/directory), and your Cloud Service Mesh ingress service is exposed to the public internet.\n\nBefore you begin\n----------------\n\nThe instructions on this page assume the following:\n\n- You have [deployed your Knative serving service](/kubernetes-engine/enterprise/knative-serving/docs/deploying) to the cluster.\n- You own a domain. If you don't have a domain, you can obtain one from [Google](https://domains.google/) or from another domain vendor.\n- You created a domain mapping for your service and updated your DNS record accordingly following the instructions at the [domains mapping page](/kubernetes-engine/enterprise/knative-serving/docs/mapping-custom-domains).\n- Use [Cloud DNS](/dns/docs/set-up-dns-records-domain-name), or a DNS server of your choice.\n\n| **Note:** By default, `gke-system-gateway` supports HTTP requests that have the Host header. However, if you have customized this gateway, make sure it still accepts the HTTP requests that contain the Host header.\n\nDisabling managed TLS certificates and HTTPS for a whole cluster\n----------------------------------------------------------------\n\nDisable managed TLS for a cluster by updating the ConfigMap\n`config-domainmapping`:\n\n\u003cbr /\u003e\n\n```bash\nkubectl patch cm config-domainmapping -n knative-serving -p '{\"data\":{\"autoTLS\":\"Disabled\"}}'\n```\n\n\u003cbr /\u003e\n\nDisabling managed TLS and HTTPS for a specific domain mapping\n-------------------------------------------------------------\n\nIf needed, you can turn off managed TLS for a specific domain mapping:\n\n1. Add the annotation `domains.cloudrun.com/disableAutoTLS: \"true\"`\\`:\n\n ```bash\n kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true\n ```\n2. Verify that HTTPS does not work:\n\n ```bash\n curl https://DOMAIN\n ```\n\n \u003cbr /\u003e\n\n3. Verify that HTTP is being used for the service:\n\n ```bash\n gcloud run domain-mappings describe --domain DOMAIN\n ```\n\n Replace \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e with your own domain name, for example:\n `your-domain.com`\n\n Check the `url:` field in the return from the above command: the URL should\n have `http`, not `https`.\n\nRe-enabling managed TLS certificates and HTTPS\n----------------------------------------------\n\nTo re-enable managed TLS:\n\n1. If you haven't already done so, create a domain mapping for your service and\n update your DNS record accordingly following the instructions at the\n [domains mapping page](/kubernetes-engine/enterprise/knative-serving/docs/mapping-custom-domains).\n\n2. Turn on managed TLS certificates and HTTPS by updating the ConfigMap\n `config-domainmapping`:\n\n ```bash\n kubectl patch cm config-domainmapping -n knative-serving -p '{\"data\":{\"autoTLS\":\"Enabled\"}}'\n ```\n3. Wait for a few minutes after the command succeeds, then make sure the\n certificates feature is working:\n\n ```bash\n kubectl get kcert\n ```\n\n If the certificate is ready, you should see a message similar to this one: \n\n ```bash\n NAME READY REASON\n your-domain.com True\n ```\n\n It may take from 20 seconds to 2 minutes for the `Kcert` to become ready. If\n you experience any issues, see the\n [troubleshooting instructions](/kubernetes-engine/enterprise/knative-serving/docs/troubleshooting) for this\n feature.\n\n### Verifying success\n\n1. Verify that the DNS record has gone into effect by running the command:\n\n ```bash\n gcloud run domain-mappings describe --domain DOMAIN\n ```\n\n Replace \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e with your own domain name, for example:\n `your-domain.com`\n2. Check the `url:` field in the return from the above command: the URL should\n have `https`, not `http`.\n\n3. Check the IP address from the above command, listed under\n `resourceRecords:rrdata`, and compare it to the value you see when you execute\n the command `host `\u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e. They should be the same.\n\nEnabling HTTPS redirects for Knative serving\n--------------------------------------------\n\n| **Important:** HTTPS redirect is available for cluster version `1.17.7-gke.8` and later.\n\nIf you use the managed TLS certificates feature, by default the cluster is\nexposed to both HTTP and HTTPS traffic for backwards compatibility reasons. If\nyou want to force all traffic to use HTTPS only, you can enable HTTPS redirects\nfor [an existing domain mapping](/kubernetes-engine/enterprise/knative-serving/docs/mapping-custom-domains) by invoking\nthe command \n\n kubectl annotate domainmappings \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e domains.cloudrun.com/httpsRedirect=Enabled\n\nwhere \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e is the name of the domain mapping.\n\nRelated topics\n--------------\n\n- [Troubleshooting managed TLS](/kubernetes-engine/enterprise/knative-serving/docs/troubleshooting#managed-tls) for details on checking domain mappings, certificate quotas, order status and order timeouts, and authorization failures.\n- [Bring your own TLS certificates](/kubernetes-engine/enterprise/knative-serving/docs/bring-your-own-cert) for instructions on using your own TLS certificates instead of the managed TLS certificates."]]