Solicitar um certificado usando Public CA e um cliente ACME

Neste tutorial, mostramos como solicitar um certificado TLS com a autoridade de certificação pública usando a CLI do Google Cloud. Para informações sobre as ACs raiz e intermediárias usadas pela autoridade certificadora pública, 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.

    Conceder ao criador da chave de conta externa da AC pública (publicca.externalAccountKeyCreator) IAM, 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 a quem você quer atribuir o papel do IAM.

    Para saber mais sobre a concessão de um papel do IAM, consulte Gerenciar o acesso a projetos, pastas e organizações.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Instalar um cliente

Para começar a usar a AC pública, instale um cliente ACME. O que você seguir Certbot que o cliente ACME. Você pode usar qualquer outro cliente ACME se ele tiver suporte para vinculação de conta externa (EAB).

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 HMAC

Depois de instalar um cliente ACME, você precisa registrar sua conta ACME na Public CA para solicitar certificados. Um segredo de EAB pode ajudar você a registrar sua conta do ACME com a CA pública. Um secret de EAB consiste em um ID de chave e um código de autenticação de mensagem baseado em hash (HMAC).

Use a API Public CA ou a Google Cloud CLI para solicitar um segredo 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 na produção de uma CA 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.

Você precisa usar um secret de AEA em até sete dias após recebê-lo. O segredo do EAB é invalidada se não for utilizada em até sete dias. A conta da ACME registrada com um secret EAB não tem expiração.

Registrar uma conta do 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 do ACME e forneça o ID da chave e o HMAC do EAB 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 para o ambiente de produção ou de pré-produção
  • EAB_KID: o ID da chave EAB
  • EAB_HMAC_KEY: a chave HMAC EAB.

A tabela a seguir mostra a descrição e o URL do diretório ACME para o ambiente de produção e de pré-produção:

Ambiente Descrição URL do diretório ACME
Produção 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. Você pode usar o ambiente de teste para integração ou qualquer outro 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 você quiser registrar várias contas da ACME, solicite um segredo de EAB exclusivo para cada uma delas.

Solicitar certificados

Depois que a CA pública validar seu controle do destino do certificado e confirma que seu cliente ACME funciona conforme o esperado para realizar operações de gerenciamento de certificados, é possível usar os fluxos de trabalho normais da ACME para 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 do ACME, como o desafio 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 criou.

Preparo

Você pode usar o ambiente de teste do Public CA para solicitar certificados para fins de teste. Os certificados emitidos pela cadeia de ambiente de preparo até uma CA 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 da conta para criar uma chave de preparação:
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