Este tópico destina-se apenas a ser um exemplo. Explica como obter um certificado TLS da autoridade de certificação (AC) Let's Encrypt. Estes passos são fornecidos principalmente como um exemplo a seguir se não tiver outra forma pronta de obter um par de certificado/chave autorizado por uma AC. O exemplo mostra como gerar certificados usando a AC Let's Encrypt, o cliente Certbot e o Cloud DNS da Google Cloud Platform.
Onde pode usar estes certificados
Tem de fornecer certificados TLS para gateways de entrada do tempo de execução expostos fora do cluster.
Consulte também Ligações externas.Requisitos
Precisa de um nome de domínio obtido através de uma entidade de registo de nomes de domínios. Pode registar um nome de domínio através do Google Domains ou de outra entidade de registo de domínios à sua escolha.
Configure o Cloud DNS
Para obter certificados TLS autorizados, tem de ter um nome de domínio qualificado. Os passos seguintes explicam como usar o Google Cloud DNS para obter um nome de domínio e gerir os servidores de domínio.- Abra a consola do Google Cloud e inicie sessão na sua conta.
- Selecione o projeto onde o Apigee Hybrid está instalado.
- Se ainda não o fez, ative a API Cloud DNS. Consulte o artigo Ativar APIs.
- Crie um endereço IP estático:
- Se estiver no GKE, siga as instruções em
Configure endereços IP externos estáticos para criar endereços IP estáticos que os processos externos
podem usar para comunicar com a entrada do tempo de execução híbrido. Pode atribuir qualquer nome ao endereço, por exemplo:
apigee-hybrid-runtime
. Quando terminar, vai usar o número de IP na configuração do cluster no passo seguinte. Por exemplo:34.66.75.196
- Se estiver no Google Distributed Cloud, siga as instruções em Planeie endereços IP e Crie um cluster de utilizadores para criar um endereço IP estático.
- Se estiver no GKE, siga as instruções em
Configure endereços IP externos estáticos para criar endereços IP estáticos que os processos externos
podem usar para comunicar com a entrada do tempo de execução híbrido. Pode atribuir qualquer nome ao endereço, por exemplo:
- Aceda ao IP externo que acabou de reservar.
- Crie um conjunto de registos para o ponto final de entrada do Istio de tempo de execução. Este é o endereço para fazer chamadas API
para o gateway híbrido. Introduza o IP externo que obteve no passo anterior e adicione um prefixo ao nome do domínio, como
example-endpoint
. Para obter instruções, consulte o artigo Crie um novo registo.- Crie uma zona pública gerida. Para ver instruções, consulte o artigo Crie uma zona pública gerida.
- Crie um novo conjunto de registos com:
- Nome DNS: o nome do ponto final com o qual as chamadas de API externas vão comunicar, como
api-services
ouexample-endpoint
- Tipo de registo de recurso: A
- TTL e Unidade de TTL: aceite as predefinições
- Endereço IP: o IP estático que criou.
- Nome DNS: o nome do ponto final com o qual as chamadas de API externas vão comunicar, como
- A vista Detalhes da zona apresenta quatro servidores DNS como os dados NS para a sua nova zona. Copie os dados do registo de DNS, conforme apresentado no exemplo seguinte:
- Regresse à página do domínio na sua entidade de registo (por exemplo, Google Domains).
- Selecione o domínio.
- Selecione DNS.
- Na secção Servidores de nomes, clique em Editar.
Introduza os servidores de nomes de domínio que copiou da página do Cloud DNS dos serviços de rede. Por exemplo:
Agora, o Google Cloud DNS vai gerir os registos de DNS do seu domínio.
Instale o Certbot numa VM
Agora que tem o Cloud DNS configurado para gerir os servidores de domínio, vai instalar o cliente Certbot com o plug-in dns_google numa VM do Google Cloud. O cliente permite-lhe obter certificados autorizados para o seu domínio a partir de um ponto final do Let's Encrypt.
- Abra a Google Cloud Console e inicie sessão com a conta que criou no Passo 1: crie uma conta do Google Cloud.
- Selecione o projeto que criou no passo 2: crie um projeto do Google Cloud.
- Selecione IAM e administrador > Contas de serviço.
A vista Contas de serviço apresenta uma lista das contas de serviço do projeto.
- Para criar uma nova conta de serviço, clique em +Criar conta de serviço na parte superior da vista.
A vista Detalhes da conta de serviço é apresentada.
- No campo Nome da conta de serviço, introduza o nome da conta de serviço.
Opcionalmente, pode adicionar uma descrição no campo Descrição da conta de serviço. As descrições são úteis para relembrar para que é usada uma determinada conta de serviço.
- Clique em Criar.
O Google Cloud cria uma nova conta de serviço e apresenta a vista Autorizações da conta de serviço. Use esta vista para atribuir uma função à sua nova conta de serviço.
- Clique na lista pendente Selecionar uma função.
- Selecione a função Proprietário do projeto.
- Clique em Continuar.
- Clique em Concluído.
- Na Google Cloud consola, selecione Compute Engine > Instâncias de VM.
- Crie uma instância de VM denominada certmanager.
- Na secção Disco de arranque, escolha CentOS7 e 20 GB para o unidade persistente SSD.
- Defina a conta de serviço para a que criou acima.
- Instale o Certbot e o plug-in dns_google
na máquina e execute o cliente Certbot:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.your_domain_name,*.your_domain_name --server https://acme-v02.api.letsencrypt.org/directory
Por exemplo:
sudo su -
yum -y install yum-utils
yum install certbot -y
yum install certbot-dns-google -y
certbot certonly --dns-google -d *.apigee-hybrid-docs.net,*.apigee-hybrid-docs.net --server https://acme-v02.api.letsencrypt.org/directory
- Agora, pode encontrar os ficheiros de certificado autorizado e chave privada neste diretório:
cd /etc/letsencrypt/live/your_domain_name/
Por exemplo:
cd /etc/letsencrypt/live/apigee-hybrid-docs.net
ls
cert.pem chain.pem fullchain.pem privkey.key README - Copie os ficheiros
fullchain.pem
eprivkey.key
para a sua máquina local. - Opcional: crie um secret do Kubernetes com o par de certificado/chave. Consulte as instruções na Opção 2: segredo do Kubernetes em Configurar TLS e mTLS na entrada do Istio.
- Atualize o ficheiro de substituições para apontar para o certificado e a chave privada.
Por exemplo:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: my-env-group sslCertPath: "$HOME/hybrid/apigee-hybrid-setup/tls/fullchain.pem" sslKeyPath: "$HOME/hybrid/apigee-hybrid-setup/tls/privkey.key"
Em alternativa, se usar segredos do Kubernetes:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json virtualhosts: - name: my-env-group tlsMode: SIMPLE # Note: SIMPLE is the default, MUTUAL is also an available value. sslSecret: myorg-test-policy-secret" ...
- Aplique as alterações à configuração do
envs
:Execute o comando
helm upgrade para cada ambiente que quer atualizar. helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
Teste a configuração
Implemente e teste um proxy. Consulte o artigo Crie o seu primeiro proxy de API: vista geral.