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.com
e*.example.com
. Além disso, tem de especificar duas entradas de mapeamento de certificados: uma paraexample.com
e 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-map
Substitua
PROXY_NAME
pelo 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_NAME
pelo nome do mapa de certificados.Elimine o certificado carregado:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Substitua
CERTIFICATE_NAME
pelo nome do certificado.