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 Cloud Run for Anthos 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.
Solução de problemas
Se tiver problemas ao usar certificados TLS gerenciados, veja a página de solução de problemas de TLS gerenciado.
Limitações
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 Cloud Run for Anthos 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 só funciona com o Istio instalado automaticamente quando você configura o cluster para executar o Cloud Run for Anthos: ele não funciona com o complemento do Istio ou com outras configurações do Istio. Se você precisar usar o complemento Istio, talvez seja necessário usar seus próprios certificados TLS.
- 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 Cloud Run para Anthos em outras plataformas, como
no local ou na AWS, esse recurso é desativado. Para usar esse recurso, verifique
se o cluster pode acessar o
Let's Encrypt (em inglês) e se o serviço de entrada do
Istio (serviço
istio-ingress
emgke-system
) está exposto à Internet pública. - Se você usar certificados gerenciados ao mapear domínios, não será possível usar um
nome de mapeamento de domínio que seja exatamente igual ao URL do serviço que você
está mapeando. Por exemplo, se o URL do seu serviço for
test.default.example.com
, não será possível definir o nome do DomainMapping comotest.default.example.com
.
Antes de começar
As instruções nesta página pressupõem o seguinte:
- O cluster do Cloud Run for Anthos usa uma das versões de cluster compatíveis com TLS gerenciado.
- Você implantou o serviço do Cloud Run for Anthos no cluster.
- Você é proprietário de um domínio. Se você não tiver um domínio, poderá conseguir um do Google ou de outro fornecedor de domínios.
- Você criou um mapeamento de domínio para o serviço e atualizou o registro DNS seguindo as instruções da página de mapeamento de domínios.
- Se você recebeu seu domínio do Google Domains, use-o como seu servidor DNS. Caso contrário, use o Cloud DNS ou um servidor DNS de sua escolha. Usar um domínio do Google Domains é a opção mais fácil.
Versões de cluster compatíveis
Para as versões 1.17.7-gke.15 e mais recentes, os certificados gerenciados estão ativados por padrão para clusters públicos no Google Cloud.
Para as seguintes versões de cluster, o recurso de certificados gerenciados está desativado por padrão, mas é possível ativar certificados gerenciados se você quiser usá-los:
- 1.16.0
- 1.15.7-gke.23
- 1.14.10-gke.17
- 1.14.9-gke.23
- 1.14.8-gke.33
Para determinar qual é sua versão atual do cluster:
Acesse a página do Kubernetes Engine no console do Google Cloud.
Clique no cluster para abrir a página de detalhes.
Localize a versão do cluster ao lado do rótulo Versão principal.
Como desativar certificados TLS gerenciados e HTTPS para um cluster inteiro
Desative o TLS gerenciado para um cluster atualizando o ConfigMap
config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Como desativar o TLS gerenciado e o HTTPS para um mapeamento de domínio específico
Se necessário, desative o TLS gerenciado para um mapeamento de domínio específico:
Adicione a anotação
domains.cloudrun.com/disableAutoTLS: "true"
:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
Verifique se o HTTPS não funciona:
curl https://DOMAIN
Verifique se o HTTP está sendo usado para o serviço:
gcloud run domain-mappings describe --domain DOMAIN
Substitua DOMAIN pelo seu próprio nome de domínio, por exemplo:
example.com
Verifique o campo
url:
no retorno do comando acima: o URL precisa terhttp
, nãohttps
.
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
:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
Aguarde alguns minutos após o comando ser bem-sucedido e verifique se o recurso de certificados está funcionando:
kubectl get kcert
Se o certificado estiver pronto, você verá uma mensagem semelhante a esta:
NAME READY REASON example.com True
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:
gcloud run domain-mappings describe --domain DOMAIN
Substitua DOMAIN pelo seu próprio nome de domínio, por exemplo:
example.com
Verifique o campo
url:
no retorno do comando acima: o URL precisa terhttps
, nãohttp
.Verifique o endereço IP do comando acima, listado em
resourceRecords:rrdata
, e compare-o com o valor que você vê ao executar o comandohost DOMAIN
. Eles devem ser idênticos.
Como ativar redirecionamentos HTTPS para o Cloud Run for Anthos
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
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
em que DOMAIN é o nome do mapeamento de domínio.
Tópicos relacionados
- 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.