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.
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 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.
Antes de começar
As instruções nesta página pressupõem o seguinte:
- Você implantou seu serviço do Knative serving 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.
- Use o Cloud DNS ou um servidor DNS de sua escolha.
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:
your-domain.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 your-domain.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:
your-domain.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 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
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.