Saiba como configurar o Knative Serving para usar os seus próprios certificados SSL/TLS.
Em alternativa, pode usar a funcionalidade de certificados TLS geridos, que cria e renova automaticamente certificados TLS através do Let's Encrypt
Para usar os seus próprios certificados, armazena os certificados TLS num segredo do Kubernetes e, em seguida, configura o gateway de entrada do Cloud Service Mesh para usar esse segredo.
Antes de começar
- Estas instruções pressupõem que já obteve os seus certificados TLS.
 - Tem de configurar um domínio personalizado. Para ver detalhes, consulte o artigo Mapear domínios personalizados.
 - Tem de configurar cada um dos seus serviços de publicação do Knative que usam o
gateway de entrada
para publicar tráfego externo. Se estes serviços virados para o exterior não estiverem configurados para usar os seus certificados TLS, os serviços não vão poder validar uma ligação HTTPS e, por isso, nunca vão atingir o estado 
ready. 
Armazenar certificados TLS num secret do Kubernetes
Para armazenar os certificados num segredo:
Abra um terminal e navegue para o diretório onde se encontram os seus certificados TLS.
Use o seguinte comando para criar um segredo que armazena os seus certificados:
kubectl create --namespace INGRESS_NAMESPACE secret tls SECRET_NAME \ --key PRIVATE_KEY.pem \ --cert FULL_CHAIN.pem
Substituição:
- INGRESS_NAMESPACE com o espaço de nomes do seu serviço de entrada, 
istio-ingressgateway. Especifique oistio-systemnamespace se instalou o Cloud Service Mesh com a configuração predefinida. - SECRET_NAME com o nome que quer usar para o seu segredo do Kubernetes.
 - PRIVATE_KEY.pem com o nome do ficheiro que contém a chave privada do certificado.
 - FULL_CHAIN.pem com o nome do ficheiro que contém o seu certificado público.
 
- INGRESS_NAMESPACE com o espaço de nomes do seu serviço de entrada, 
 
Já pode configurar o gateway de entrada para usar o segredo que acabou de criar para o seu certificado TLS.
Configurar o gateway de entrada para usar os seus certificados
Modifique o gateway de entrada do Cloud Service Mesh para usar o segredo que criou para os seus certificados TLS:
Abra o YAML do gateway de entrada no modo de edição executando o seguinte comando:
kubectl edit gateway knative-ingress-gateway --namespace knative-serving
Exemplo da configuração do gateway de entrada predefinido:
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 80 protocol: HTTPConfigure o gateway de entrada para usar o seu segredo anexando os atributos
hosts,portetlsao YAML existente.Para configurar todos os serviços para usar o mesmo segredo: anexe o seguinte à sua configuração YAML e especifique
"*"como o valor do atributohosts:... # other skipped configuration ... - hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAMESubstitua SECRET_NAME pelo nome do segredo que criou.
Para configurar individualmente cada um dos seus serviços: anexe o seguinte à sua configuração YAML e especifique os valores dos atributos
hostsusando o nome e o espaço de nomes do serviço:Para cada serviço, especifica valores para os atributos
hosts,portetls:... # other skipped configuration ... - hosts: - SERVICE_NAME.SERVICE_NAMESPACE.CUSTOM_DOMAIN port: number: 443 name: https-SERVICE_NAME protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAMESubstituição:
- SERVICE_NAME com o nome do serviço Knative Serving. Todos os serviços que usam o gateway de entrada para publicar tráfego externo têm de ser configurados individualmente.
 - SERVICE_NAMESPACE com o nome do espaço de nomes no qual o serviço está a ser executado.
 - CUSTOM_DOMAIN com o domínio personalizado para o qual configurou o serviço para usar.
 - SECRET_NAME com o nome do segredo que quer que o serviço use. Se criou vários segredos para diferentes conjuntos de certificados TLS, pode especificar que segredo cada serviço usa.
 
Guarde as alterações.
Já pode usar o protocolo HTTPS para aceder aos seus serviços Knative Serving implementados.
Exemplos
- Configurar todos os serviços:
 Este exemplo demonstra como configurar todos os serviços para usar o segredo
TLSsecret:apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret- Configurar serviços individuais:
 Este exemplo demonstra como configurar individualmente todos os três serviços que estão a publicar tráfego da Internet:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: ... # other skipped configuration ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - hosts: - prodservice.prodnamespace.my-custom-domain.com port: number: 443 name: https-prodservice protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret - hosts: - experiment.namespace.my-custom-domain.com port: number: 443 name: https-experiment protocol: HTTPS tls: mode: SIMPLE credentialName: TLSsecret - hosts: - fallbackservice.anothernamespace.my-custom-domain.com port: number: 443 name: https-fallbackservice protocol: HTTPS tls: mode: SIMPLE credentialName: anotherTLSsecret