Se quiser usar HTTPS:
- O seu contentor deve continuar a ouvir em
$PORT
Tem de escolher como está a fornecer certificados TLS:
- Use certificados TLS geridos, em que os certificados TLS são criados automaticamente conforme necessário e são renovados automaticamente. Esta página descreve esta funcionalidade, que está disponível nas versões suportadas do Google Kubernetes Engine.
- Usar os seus próprios certificados, em que é responsável por obter e renovar os certificados. Em algumas situações, descritas em Limitações, tem de usar os seus próprios certificados.
Se estiver a usar certificados geridos, também tem de mapear o seu domínio personalizado para usar a funcionalidade de certificados geridos.
Usar HTTPS e HTTP
Por predefinição, se usar certificados geridos, os clusters ou os serviços Knative serving com certificados geridos são expostos ao tráfego HTTP e HTTPS. Se quiser apenas tráfego HTTPS, pode ativar os redirecionamentos HTTPS para forçar todo o tráfego a usar apenas HTTPS.
Resolução de problemas
Se tiver problemas ao usar certificados TLS geridos, consulte a página de resolução de problemas de TLS gerido.
Limitações
As seguintes considerações aplicam-se à utilização da funcionalidade de certificados TLS geridos:
- Os certificados TLS geridos estão desativados e não são suportados para clusters privados do Knative Serving no Google Cloud.
- Para usar a funcionalidade de certificados geridos, o seu serviço tem de estar exposto externamente: não pode ser um serviço local do cluster nem um serviço exposto pela nuvem privada virtual.
- A funcionalidade de certificados geridos só funciona com a Cloud Service Mesh. O suplemento Istio ou outras configurações do Istio não são suportados.
- Esta funcionalidade usa o Let's Encrypt, que tem um limite de quota inicial de 50 certificados TLS por semana por domínio registado. Pode pedir um aumento da quota seguindo a documentação do Let's Encrypt.
- Quando executa um cluster de publicação do Knative noutras plataformas, como no local ou na AWS, esta funcionalidade está desativada. Para usar esta funcionalidade, tem de se certificar de que o seu cluster consegue aceder ao Let's Encrypt e que 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:
- Implementou o seu serviço Knative serving no cluster.
- É proprietário de um domínio. Se não tiver um domínio, pode obtê-lo na Google ou noutro fornecedor de domínios.
- Criou um mapeamento de domínio para o seu serviço e atualizou o registo DNS em conformidade com as instruções na página de mapeamento de domínios.
- Use o Cloud DNS ou um servidor DNS à sua escolha.
Desativar certificados TLS geridos e HTTPS para um cluster inteiro
Desative o TLS gerido para um cluster atualizando o ConfigMap
config-domainmapping
:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
Desativar o TLS e o HTTPS geridos para um mapeamento de domínio específico
Se necessário, pode desativar o TLS gerido 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á a ser 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 resultado do comando acima: o URL deve terhttp
e nãohttps
.
Reativar os certificados TLS geridos e o HTTPS
Para reativar o TLS gerido:
Se ainda não o fez, crie um mapeamento de domínio para o seu serviço e atualize o seu registo de DNS em conformidade com as instruções na página de mapeamento de domínios.
Ative os certificados TLS geridos 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, em seguida, certifique-se de que a funcionalidade de certificados está a funcionar:
kubectl get kcert
Se o certificado estiver pronto, deve ver uma mensagem semelhante a esta:
NAME READY REASON your-domain.com True
O
Kcert
pode demorar entre 20 segundos e 2 minutos a ficar pronto. Se tiver problemas, consulte as instruções de resolução de problemas desta funcionalidade.
Validação com êxito
Verifique se o registo de 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 resultado do comando acima: o URL deve terhttps
e nãohttp
.Verifique o endereço IP do comando acima, indicado em
resourceRecords:rrdata
, e compare-o com o valor apresentado quando executa o comandohost DOMAIN
. Devem ser iguais.
Ativar redirecionamentos HTTPS para o Knative Serving
Se usar a funcionalidade de certificados TLS geridos, por predefinição, o cluster é exposto ao tráfego HTTP e HTTPS por motivos de compatibilidade com versões anteriores. Se quiser forçar todo o tráfego a usar apenas HTTPS, pode ativar 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ínios.
Tópicos relacionados
- Resolução de problemas de TLS gerido para ver detalhes sobre a verificação de mapeamentos de domínios, quotas de certificados, estado da encomenda e tempos limite de encomendas, bem como falhas de autorização.
- Traga os seus próprios certificados TLS para ver instruções sobre como usar os seus próprios certificados TLS em vez dos certificados TLS geridos.