Solicitar um certificado usando Public CA e um cliente ACME

Neste tutorial, explicamos como solicitar um certificado TLS com Public Certificate Authority usando a Google Cloud CLI. Para informações sobre a raiz e ACs intermediárias usadas pelo Public Certificate Authority, consulte Google Trust Services. Não há cobrança para solicitar certificados da CA pública.

Antes de começar

  • Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  • Create or select a Google Cloud project.

    • 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.

  • Verifique se você tem as permissões de Proprietário (roles/owner) ou Criador de chaves de conta externa da AC pública (publicca.externalAccountKeyCreator) papel do IAM.

    Para conceder o papel de IAM Criador de chave de conta externa da CA pública (publicca.externalAccountKeyCreator), execute o seguinte comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:USER \
      --role=roles/publicca.externalAccountKeyCreator
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • USER: o identificador exclusivo do usuário para quem você quer atribuir o papel do IAM

    Para informações sobre como conceder um papel do IAM, consulte Gerenciar o acesso a projetos, pastas e com outras organizações.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Instalar um cliente

Para começar a usar o Public CA, instale uma Cliente ACME. O que você seguir Certbot que o cliente ACME. É possível usar qualquer outro cliente ACME se ele oferecer suporte à vinculação de conta externa (EAB, na sigla em inglês).

Para instalar o Certbot, consulte as instruções do Certbot.

Aponte seu cliente para o servidor do Public CA. Na primeira vez que o cliente ACME interage com a CA pública, ele gera um novo par de chaves e envia a chave pública para a CA pública.

Solicitar um ID de chave EAB e um HMAC

Depois de instalar um cliente ACME, registre sua conta na plataforma com um Public CA para solicitar certificados dela. Um secret EAB pode ajudar você a registrar sua conta da ACME AC pública. Um secret EAB consiste em um ID de chave e um HMAC.

É possível usar a API Public CA ou a Google Cloud CLI para solicitar um secret EAB.

Para solicitar um ID de chave EAB e um HMAC, execute o seguinte comando:

gcloud publicca external-account-keys create

Esse comando retorna um secret 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 EAB, e o campo b64MacKey contém a HMAC EAB.

É necessário usar uma chave secreta do EAB no prazo de sete dias após recebê-la. O segredo do EAB é invalidada se não for utilizada em até sete dias. A conta da ACME registrada usando um secret EAB não tem expiração.

Registrar uma conta da ACME

Nesta seção, explicamos como registrar uma conta da ACME no Public CA fornecendo o secret do EAB que você acabou de receber.

Use um cliente ACME normal para registrar uma conta da ACME e forneça o ID da chave EAB e HMAC durante o registro.

Registrar uma conta do ACME no Public CA e vincular a ACME conta ao projeto do Google Cloud usado para solicitar o secret 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:

  • EMAIL_ADDRESS: seu endereço de email
  • SERVER: o URL do diretório ACME do ambiente de produção ou preparo
  • EAB_KID: o ID da chave EAB
  • EAB_HMAC_KEY: a chave HMAC EAB

A tabela a seguir fornece a descrição e o URL do diretório ACME para de produção e teste:

Ambiente Descrição URL do diretório ACME
O ambiente de produção permite que você receba certificados confiáveis publicamente. https://dv.acme-v02.api.pki.goog/directory
Preparo O ambiente de teste retorna certificados que não são publicamente confiáveis. O ambiente de preparo executa as mesmas verificações de validação que o ambiente de produção. de nuvem. É possível usar o ambiente de preparo para integração ou qualquer outro tipo de teste. https://dv.acme-v02.test-api.pki.goog/directory

Só é possível registrar uma conta da ACME com um secret EAB. Depois de registrar uma conta do ACME usando um segredo de EAB, ele se torna inválido e não pode ser reutilizado. Se quiser registrar várias contas da ACME, você vai precisar solicitar um secret EAB exclusivo para cada uma das contas.

Solicitar certificados

Depois que a AC pública validar seu controle do destino do certificado e reconhecer que o cliente ACME funciona conforme o esperado para realizar operações de gerenciamento de certificados, você poderá usar os fluxos de trabalho normais do ACME para solicitar, renovar e revogar certificados. Você pode realizar essas operações usando seu cliente ACME. Para solicitar e renovar um certificado, você precisa concluir um desafio da ACME, como o desafio de DNS manual.

Para usar o desafio DNS manual para solicitar um certificado, execute o seguinte comando:

certbot certonly \
    --manual \
    --preferred-challenges "dns-01" \
    --server "SERVER" \
    --domains "DOMAINS"

Substitua:

  • SERVER: o URL do diretório ACME para a produção ou o preparo meio ambiente
  • DOMAINS: uma lista separada por vírgulas de domínios em que você está solicitando certificados

Limpar

Se você não precisar mais de certificados para seus domínios, exclua o projeto que você criou.

Preparo

Você pode usar o ambiente de teste do Public CA para solicitar certificados para fins de teste. Os certificados emitidos pelo teste até uma AC raiz de teste. Os certificados do ambiente de teste não serão considerados confiáveis pelos navegadores ou outros clientes que não foram configurados para confiar no certificado raiz de teste. Para receber um secret EAB válido no ambiente de preparação, substitua o endpoint de API para usar o endpoint no ambiente de preparo:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Em seguida, execute o comando de criação de chave de conta para criar uma chave de preparo:
gcloud publicca external-account-keys create
Para reverter para o endpoint do ambiente de produção, execute o seguinte comando:
gcloud config unset api_endpoint_overrides/publicca

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

A seguir