Este tutorial mostra-lhe como usar o Gestor de certificados para implementar um certificado autogerido global.
Os seguintes balanceadores de carga suportam certificados autogeridos globais:
- Balanceador de carga de aplicações externo global
- Balanceador de carga de aplicações clássico
- Balanceador de carga de rede de proxy externo global
- Balanceador de carga de rede de proxy clássico
Se quiser implementar balanceadores de carga regionais ou entre regiões, consulte o seguinte:
Carregue um certificado autogerido para o Gestor de certificados
Para carregar o certificado para o Gestor de certificados, faça o seguinte:
Consola
Na Google Cloud consola, aceda à página Gestor de certificados.
No separador Certificados, clique em Adicionar certificado.
No campo Nome do certificado, introduza um nome exclusivo para o certificado.
Opcional: no campo Descrição, introduza uma descrição do certificado. A descrição permite-lhe identificar o certificado.
Para Localização, selecione Global.
Para Âmbito, selecione Predefinição.
Para Tipo de certificado, selecione Criar certificado autogerido.
Para o campo Certificado, faça uma das seguintes ações:
- Clique no botão Carregar e selecione o ficheiro de certificado formatado em PEM.
- Copie e cole o conteúdo de um certificado formatado em PEM. O conteúdo tem de começar com
-----BEGIN CERTIFICATE-----e terminar com-----END CERTIFICATE-----.
Para o campo Certificado de chave privada, faça qualquer uma das seguintes ações:
- Clique no botão Carregar e selecione a sua chave privada. A chave privada tem de estar no formato PEM e não estar protegida com uma frase secreta.
- Copiar e colar o conteúdo de uma chave privada formatada em PEM. As chaves privadas têm de começar com
-----BEGIN PRIVATE KEY-----e terminar com-----END PRIVATE KEY-----.
No campo Etiquetas, especifique as etiquetas a associar ao certificado. Para adicionar uma etiqueta, clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.
Clique em Criar.
O novo certificado é apresentado na lista de certificados.
gcloud
Para criar um certificado autogerido global, use o comando certificate-manager certificates create:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--certificate-file="CERTIFICATE_FILE" \
--private-key-file="PRIVATE_KEY_FILE"
Substitua o seguinte:
CERTIFICATE_NAME: o nome do certificado.CERTIFICATE_FILE: o caminho e o nome do ficheiro do certificado CRT.PRIVATE_KEY_FILE: o caminho e o nome do ficheiro da chave privada KEY.
Terraform
Para carregar um certificado autogerido, pode usar um recurso google_certificate_manager_certificate com o bloco self_managed.
API
Carregue o certificado fazendo um pedido POST ao método certificates.create da seguinte forma:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
self_managed: {
pem_certificate: "PEM_CERTIFICATE",
pem_private_key: "PEM_KEY",
}
}
Substitua o seguinte:
PROJECT_ID: o ID do Google Cloud projeto.CERTIFICATE_NAME: o nome do certificado.PEM_CERTIFICATE: o PEM do certificado.PEM_KEY: o PEM da chave.
Implemente o certificado autogerido num balanceador de carga
Para implementar o certificado autogerido global, use um mapa de certificados.
Crie um mapa de certificados
Crie um mapa de certificados que faça referência à entrada do mapa de certificados associada ao seu certificado:
gcloud
Para criar um mapeamento de certificados, use o comando gcloud certificate-manager maps create:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Substitua CERTIFICATE_MAP_NAME pelo nome do mapa de certificados de destino.
Terraform
Para criar um mapa de certificados, pode usar um recurso google_certificate_manager_certificate_map.
Crie uma entrada de mapeamento de certificados
Crie uma entrada de mapa de certificados e associe-a ao seu certificado e mapa de certificados:
gcloud
Para criar uma entrada de mapeamento de certificados, use o comando gcloud certificate-manager maps entries create:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME" \
--certificates="CERTIFICATE_NAME" \
--hostname="HOSTNAME"
Substitua o seguinte:
CERTIFICATE_MAP_ENTRY_NAME: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME: o nome do mapeamento de certificados ao qual a entrada do mapeamento de certificados está anexada.CERTIFICATE_NAME: o nome do certificado que quer associar à entrada do mapa de certificados.HOSTNAME: o nome do anfitrião que quer associar à entrada do mapa de certificados.Se quiser criar um certificado que abranja um domínio com caráter universal e um domínio raiz, especifique o nome do anfitrião com uma raiz e um caráter universal, como
example.come*.example.com. Além disso, tem de especificar duas entradas de mapeamento de certificados: uma paraexample.come outra para*.example.com.
Terraform
Para criar uma entrada de mapa de certificados com um domínio raiz, use um recurso google_certificate_manager_certificate_map_entry.
Para criar uma entrada de mapeamento de certificados com um domínio de caráter universal, use um recurso google_certificate_manager_certificate_map_entry.
Verifique se a entrada do mapeamento de certificados está ativa
Verifique se a entrada do mapeamento de certificados está ativa antes de anexar o mapeamento de certificados correspondente ao proxy de destino.
Para validar a entrada do mapa de certificados, use o comando gcloud certificate-manager maps entries describe:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME"
Substitua o seguinte:
CERTIFICATE_MAP_ENTRY_NAME: o nome da entrada do mapa de certificados.CERTIFICATE_NAME: o nome do certificado que quer associar à entrada do mapa de certificados.
O resultado é semelhante ao seguinte:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Associe o mapa de certificados ao proxy de destino
Pode anexar o mapa de certificados a um novo proxy de destino ou a um proxy de destino existente.
gcloud
Para anexar o mapeamento de certificados a um novo proxy de destino, use o comando gcloud compute target-https-proxies create:
gcloud compute target-https-proxies create PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--url-map="URL_MAP" \
--global
Substitua o seguinte:
PROXY_NAME: o nome do proxy de destino.CERTIFICATE_MAP_NAME: o nome do mapeamento de certificados que faz referência à entrada do mapeamento de certificados e ao certificado associado.URL_MAP: o nome do mapa de URLs
Para anexar o mapa de certificados a um proxy HTTPS de destino existente, use o comando gcloud compute target-https-proxies update. Se não souber o nome do proxy de destino existente, aceda à página Proxies de destino e anote o nome do proxy de destino.
gcloud compute target-https-proxies update PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--global
Depois de criar ou atualizar o proxy de destino, execute o seguinte comando para o verificar:
gcloud compute target-https-proxies list
Terraform
Para anexar o mapeamento de certificados ao proxy de destino, pode usar um recurso google_compute_target_https_proxy.
Quando configura um proxy de destino, se anexar certificados TLS (SSL) diretamente e também através de um mapa de certificados, o proxy usa os certificados referenciados pelo mapa de certificados e ignora os certificados TLS (SSL) anexados diretamente.
Limpar
Para evitar incorrer em cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine-os.
Elimine o balanceador de carga e os respetivos recursos.
Consulte o artigo Limpe uma configuração de equilíbrio de carga.
Elimine ou desassocie o mapa de certificados do proxy.
Para eliminar o mapeamento de certificados, execute o seguinte comando:
gcloud compute target-https-proxies delete PROXY_NAME
Se quiser manter o proxy HTTPS de destino, desassocie o mapa de certificados do proxy.
- Se existirem certificados TLS (SSL) anexados diretamente ao proxy, a desanexação do mapa de certificados faz com que o proxy retome a utilização desses certificados TLS (SSL) anexados diretamente.
- Se não existirem certificados TLS (SSL) anexados diretamente ao proxy, não é possível separar o mapa de certificados do proxy. Primeiro, tem de anexar, pelo menos, um certificado TLS (SSL) diretamente ao proxy antes de poder desanexar o mapa de certificados.
Para desassociar o mapeamento de certificados, execute o seguinte comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapSubstitua
PROXY_NAMEpelo nome do proxy de destino.Elimine a entrada do mapa de certificados do mapa de certificados:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"Substitua o seguinte:
CERTIFICATE_MAP_ENTRY_NAME: o nome da entrada do mapa de certificados.CERTIFICATE_MAP_NAME: o nome do mapeamento de certificados.
Elimine o mapeamento de certificados:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Substitua
CERTIFICATE_MAP_NAMEpelo nome do mapa de certificados.Elimine o certificado carregado:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAMEpelo nome do certificado.