Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página mostra como desativar e reativar o recurso de certificados TLS gerenciados
que fornece e renova automaticamente certificados TLS para dar suporte a
conexões HTTPS no Knative serving.
Se você quiser usar HTTPS:
seu contêiner deve continuar detectando $PORT;
escolha como você está fornecendo certificados TLS:
Use certificados TLS gerenciados, em que os certificados TLS são criados automaticamente
conforme necessário, assim como são renovados automaticamente. Nesta página, você verá esse
recurso, que está disponível nas
versões compatíveis do Google Kubernetes Engine.
use seus próprios certificados, em que você
é responsável por receber e renovar os certificados. Em algumas situações,
descritas em Limitações, você precisa usar seus próprios certificados.
se você estiver usando certificados gerenciados, também precisará
mapear seu domínio personalizado a fim de usar o
recurso de certificados gerenciados.
Como usar HTTPS e HTTP
Por padrão, se você usa certificados gerenciados, os clusters ou os serviços do
Knative serving com certificados gerenciados são expostos ao tráfego HTTP e HTTPS.
Se você quiser apenas o tráfego HTTPS, poderá ativar redirecionamentos HTTPS para
forçar todo o tráfego a usar somente HTTPS.
As considerações a seguir se aplicam ao uso do recurso de
certificados TLS gerenciados:
Os certificados TLS gerenciados estão desativados e não são compatíveis com clusters particulares do Knative serving
no Google Cloud.
Para usar o recurso de certificados gerenciados, seu serviço precisa estar
exposto externamente: não pode ser um
serviço de cluster local ou um serviço exposto pela nuvem privada virtual.
O recurso de certificados gerenciados funciona apenas com o Cloud Service Mesh. O complemento do Istio ou outras configurações do Istio não são compatíveis.
Esse recurso usa Let's Encrypt (em inglês), que tem um
limite de cota inicial de 50 certificados TLS por semana por domínio registrado. Para
solicitar um aumento de cota, siga a
documentação do Let's Encrypt (em inglês).
Ao executar um cluster do Knative serving em outras plataformas, como
no local ou na AWS, esse recurso será desativado. Para usar esse recurso, verifique se o cluster pode acessar o Let's Encrypt e se o serviço de entrada do Cloud Service Mesh está exposto à Internet pública.
Verifique se o HTTP está sendo usado para o serviço:
gcloudrundomain-mappingsdescribe--domainDOMAIN
Substitua DOMAIN pelo seu próprio nome de domínio, por exemplo:
your-domain.com
Verifique o campo url: no retorno do comando acima: o URL precisa ter http, não https.
Como reativar certificados TLS gerenciados e HTTPS
Para reativar o TLS gerenciado:
Se você ainda não tiver feito isso, crie um mapeamento de domínio para o serviço e
atualize o registro DNS seguindo as instruções na
página de mapeamento de domínios.
Ative os certificados TLS gerenciados e o HTTPS atualizando o ConfigMap
config-domainmapping:
Aguarde alguns minutos após o comando ser bem-sucedido e verifique se o recurso de certificados está funcionando:
kubectlgetkcert
Se o certificado estiver pronto, você verá uma mensagem semelhante a esta:
NAMEREADYREASON
your-domain.comTrue
Pode levar de 20 segundos a 2 minutos para que o Kcert fique pronto. Se você tiver problemas, veja as instruções de solução para este recurso.
Como verificar o sucesso
Verifique se o registro DNS entrou em vigor executando o comando:
gcloudrundomain-mappingsdescribe--domainDOMAIN
Substitua DOMAIN pelo seu próprio nome de domínio, por exemplo:
your-domain.com
Verifique o campo url: no retorno do comando acima: o URL precisa ter https, não http.
Verifique o endereço IP do comando acima, listado em resourceRecords:rrdata, e compare-o com o valor que você vê ao executar o comando host DOMAIN. Eles devem ser idênticos.
Como ativar redirecionamentos HTTPS para o Knative serving
Se você usar o recurso de certificados TLS gerenciados, por padrão, o cluster será
exposto aos tráfegos HTTP e HTTPS por motivos de compatibilidade com versões anteriores. Se
você quiser forçar todo o tráfego a usar apenas HTTPS, ative os redirecionamentos HTTPS
para um mapeamento de domínio existente invocando
o comando
Leia a Solução de problemas de TLS gerenciado para
detalhes sobre como verificar mapeamentos de domínio, cotas de certificados, status de pedidos e
tempos limite de pedidos, bem como falhas de autorização.
Leia Traga seus próprios certificados TLS para
instruções sobre como usar seus próprios certificados TLS em vez dos certificados TLS
gerenciados.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-01 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."]]