Peça um certificado através de uma AC pública e um cliente ACME
Este tutorial explica como pedir um certificado TLS com a autoridade de certificação pública através da CLI do Google Cloud. Para informações sobre as ACs raiz e intermédias usadas pela Autoridade de certificação pública, consulte os Serviços de confiança da Google. Não existe qualquer custo para pedir certificados à AC pública.
Antes de começar
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
Certifique-se de que tem a função do IAM de criador da chave da conta externa da AC pública (
roles/publicca.externalAccountKeyCreator
).Para conceder esta função, execute o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER \ --role=roles/publicca.externalAccountKeyCreator
Substitua o seguinte:
PROJECT_ID
: o ID do seu Google Cloud projetoUSER
: o identificador exclusivo do utilizador ao qual quer atribuir a função de IAM
Para ver informações sobre como conceder uma função de IAM, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Enable the Public CA API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable publicca.googleapis.com
Instale um cliente
Para começar a usar a CA pública, tem de instalar um cliente ACME. As instruções seguintes usam o Certbot como cliente ACME. Pode usar qualquer outro cliente ACME se o cliente suportar a vinculação de conta externa (EAB).
Para instalar o Certbot, consulte as instruções do Certbot.
Certifique-se de que direciona o seu cliente para o servidor de AC público. A primeira vez que o cliente ACME interage com a CA pública, o cliente gera um novo par de chaves e envia a chave pública para a CA pública.
Peça um ID da chave de EAB e um HMAC
Depois de instalar um cliente ACME, tem de registar a sua conta ACME na CA pública para pedir certificados à CA pública. Um segredo EAB pode ajudar a registar a sua conta ACME junto da AC pública. Um segredo de EAB consiste num ID da chave e num código de autenticação de mensagens (HMAC) baseado em hash.
Pode usar a API de CA pública ou a CLI do Google Cloud para pedir um segredo de EAB.
Para pedir um ID da chave de EAB e um HMAC, execute o seguinte comando:
gcloud publicca external-account-keys create
Este comando devolve um segredo EAB válido no ambiente de produção da AC pública. No corpo da resposta, o campo keyId
contém o ID da chave de EAB e o campo b64MacKey
contém o HMAC de EAB.
Tem de usar um segredo da EAB no prazo de 7 dias após a obtenção. O segredo da EAB é invalidado se não o usar no prazo de 7 dias. A conta ACME registada através de um segredo EAB não tem validade.
Registe uma conta ACME
Esta secção explica como registar uma conta ACME com a CA pública fornecendo o segredo EAB que acabou de obter.
Use um cliente ACME normal para registar uma conta ACME e faculte o ID da chave EAB e a chave HMAC durante o registo.
Para registar uma conta ACME com uma AC pública e associar a conta ACME ao Google Cloud projeto que usou para pedir o segredo EAB, execute o seguinte comando:
certbot register \ --email "EMAIL_ADDRESS" \ --no-eff-email \ --server "SERVER" \ --eab-kid "EAB_KID" \ --eab-hmac-key "EAB_HMAC_KEY"
Substitua o seguinte:
EMAIL_ADDRESS
: o seu endereço de emailSERVER
: o URL do diretório ACME para o ambiente de produção ou de testeEAB_KID
: o ID da chave de EABEAB_HMAC_KEY
: a chave HMAC de EAB
A tabela seguinte fornece a descrição e o URL do diretório ACME para o ambiente de produção e de preparação:
Ambiente | Descrição | URL do diretório ACME |
---|---|---|
Produção | O ambiente de produção permite-lhe obter certificados publicamente fidedignos. | https://dv.acme-v02.api.pki.goog/directory |
A testar | O ambiente de preparação devolve certificados que não são publicamente fidedignos. O ambiente de preparação realiza as mesmas verificações de validação que o ambiente de produção. Pode usar o ambiente de preparação para integração ou qualquer outro tipo de teste. | https://dv.acme-v02.test-api.pki.goog/directory |
Só pode registar uma conta ACME com um segredo EAB. Depois de registar uma conta ACME através de um segredo EAB, o segredo EAB torna-se inválido e não o pode reutilizar. Se quiser registar várias contas ACME, tem de pedir um segredo EAB exclusivo para cada uma das contas.
Peça certificados
Depois de a AC pública validar o seu controlo do destino do certificado e confirmar que o seu cliente ACME funciona como esperado para realizar operações de gestão de certificados, pode usar os fluxos de trabalho ACME normais para pedir, renovar e revogar certificados. Pode realizar estas operações através do seu cliente ACME. Para pedir e renovar um certificado, tem de concluir um desafio ACME, como o desafio de DNS manual.
Para usar o desafio DNS manual para pedir um certificado, execute o seguinte comando:
certbot certonly \ --manual \ --preferred-challenges "dns-01" \ --server "SERVER" \ --domains "DOMAINS"
Substitua o seguinte:
SERVER
: o URL do diretório ACME para o ambiente de produção ou testeDOMAINS
: uma lista de domínios separados por vírgulas para os quais está a pedir certificados
Limpar
Se já não precisar de certificados para os seus domínios, elimine o projeto que criou.
A testar
Pode usar o ambiente de preparação da CA pública para pedir certificados para fins de teste. Os certificados emitidos pela cadeia do ambiente de preparação são encadeados até uma AC de raiz de teste. Os certificados do ambiente de preparação não são considerados fidedignos pelos navegadores nem por outros clientes que não tenham sido configurados para considerar fidedigno o certificado de raiz de preparação. Para obter um segredo EAB válido no ambiente de preparação, substitua o ponto final da API para usar o ponto final do ambiente de preparação:
gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
gcloud publicca external-account-keys create
gcloud config unset api_endpoint_overrides/publicca
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID