Emitir um certificado usando a Google Cloud CLI
Nesta página, explicamos como gerar ou emitir certificados pelo Certificate Authority Service usando a Google Cloud CLI.
O CA Service permite implantar e gerenciar ACs particulares sem precisar gerenciar a infraestrutura.
Antes de começar
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
Ative a API Certificate Authority Service, se ela ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable privateca.googleapis.com
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Configure um local padrão para uso nos comandos
gcloudneste início rápido.gcloud config set privateca/location LOCATIONOs recursos do serviço de CA, como pools e CAs, ficam em um único Google Cloud local que não pode ser alterado depois da criação desses recursos.
Criar um pool de CA
Um pool de autoridade certificadora (CA) é uma coleção de várias CAs. Um pool de ACs permite alternar as cadeias de confiança sem interrupções ou inatividade das cargas de trabalho.
Para criar um pool de ACs na camada Enterprise, execute o seguinte comando:
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
Substitua:
- POOL_ID: o nome do pool de ACs
- LOCATION: o local do pool de ACs. Para conferir a lista completa de locais, consulte Locais.
Os nomes de recursos podem conter letras, números, hifens (-) e sublinhados (_) e ter até 63 caracteres.
Crie uma AC raiz:
Um pool de CA é criado vazio. Para solicitar certificados de um pool de ACs, é necessário adicionar uma AC a ele.
Para criar uma AC raiz e adicioná-la ao pool de ACs criado, execute o seguinte comando:
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"
Substitua:
- CA_ID: o nome da CA raiz
- POOL_ID: o nome do pool de ACs
- LOCATION: o local do pool de ACs. Para conferir a lista completa de locais, consulte Locais.
O CA Service retorna a seguinte saída ao criar a CA raiz:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
Ative a AC raiz inserindo y quando solicitado pela CLI gcloud.
Opcional: criar um pool de CAs subordinadas
Para criar um pool de CAs subordinadas, execute o seguinte comando:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
Substitua:
- SUBORDINATE_POOL_ID: o ID do pool de AC subordinada
- LOCATION: o local do pool de AC subordinada. Para conferir a lista completa de locais, consulte Locais.
- TIER: o nível da CA subordinada, devops ou enterprise
Opcional: crie uma AC subordinada assinada por uma AC raiz armazenada em Google Cloud
Para criar uma AC subordinada no pool de AC subordinada criado na etapa anterior, execute o seguinte comando:
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--location=LOCATION \
--pool=SUBORDINATE_POOL_ID \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--from-ca=EXISTING_CA_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION
Substitua:
- SUBORDINATE_CA_ID: o ID da CA subordinada
- LOCATION: o local da CA subordinada. Para ver a lista completa de locais, consulte Locais.
- SUBORDINATE_POOL_ID: o ID do pool de AC subordinada criado na seção anterior
- POOL_ID: o ID do pool de ACs principal
- ISSUER_LOCATION: o local do certificado
- EXISTING_CA_ID: o ID da CA de origem
- PROJECT_ID: o ID do projeto
- LOCATION_ID: a localização do keyring;
- KEY_RING: o nome do keyring em que a chave está localizada
- KEY: o nome da chave;
- KEY_VERSION: a versão da chave.
A instrução a seguir é retornada quando a CA subordinada é criada.
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].
Ative a CA subordinada inserindo y quando solicitado pela CLI gcloud.
Criar um certificado
Para usar a CA recém-criada e criar um certificado, faça o seguinte:
Instale a biblioteca de criptografia Pyca usando o comando
pip.pip install --user "cryptography>=2.2.0"O serviço de AC usa a biblioteca de criptografia Pyca para gerar e armazenar um novo par de chaves assimétricas na sua máquina local. Essa chave nunca é enviada ao serviço de AC.
Para permitir que o SDK Google Cloud use a biblioteca de criptografia Pyca, é necessário ativar os pacotes do site.
macOS ou Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1Crie um certificado.
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --issuer-location ISSUER_LOCATION \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pemSubstitua:
- POOL_ID: o ID do recurso do pool de ACs que você criou
- ISSUER_LOCATION: o local da autoridade certificadora que emitiu o certificado digital.
O serviço de CA retorna a seguinte resposta:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
Limpar
Faça uma limpeza excluindo o pool de ACs, a AC e o projeto que você criou para este guia de início rápido.
Revogue o certificado.
- CERT_NAME: o nome do certificado que você quer revogar.
- POOL_ID: o nome do pool de ACs que emitiu o certificado
- LOCATION: o local do pool de CAs
Para revogar um certificado, execute o seguinte comando:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
Substitua:
Exclua a CA.
Só é possível excluir uma CA depois de revogar todos os certificados emitidos por ela.
Desative a CA.
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATIONSubstitua:
- CA_ID: o ID do recurso da CA
- POOL_ID: o ID do recurso do pool de ACs
- LOCATION: o local do pool de ACs. Para conferir a lista completa de locais, consulte Locais.
Exclua a CA.
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
O estado da CA muda para
Deleted. O CA Service exclui permanentemente a CA 30 dias após o início da exclusão.Exclua o pool de ACs.
Só é possível excluir um pool de CA depois que a CA nele for excluída permanentemente.
gcloud privateca pools delete POOL_ID --location=LOCATIONExclua o projeto.
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
A seguir
- Saiba mais sobre pools de CAs.
- Saiba mais sobre como criar um pool de CAs.
- Saiba mais sobre como criar ACs.
- Saiba mais sobre como solicitar certificados.
- Saiba como controlar o tipo de certificados que um pool de CA pode emitir.