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 serviço de CA permite implantar e gerenciar CAs particulares sem gerenciar a infraestrutura.
Antes de começar
-
Instale a Google Cloud CLI. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud init Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Criar um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do seu Google Cloud projeto.
Ative a API Certificate Authority Service:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a 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, você pode receber essa permissão pelo papel de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable privateca.googleapis.com
Verifique se o faturamento está ativado para o seu Google Cloud projeto.
Configure um local padrão para uso nos comandos
gcloudneste guia de início rápido.gcloud config set privateca/location LOCATIONOs recursos do serviço de CA, como pools de CA e CAs, ficam em um único Google Cloud local que não pode ser alterado após a criação desses recursos.
Criar um pool de CA
Um pool de autoridade de certificação (CA) é uma coleção de várias CAs. Um pool de CA oferece a capacidade de alternar as cadeias de confiança sem nenhuma interrupção ou inatividade para cargas de trabalho.
Para criar um pool de CA no nível Enterprise, execute o seguinte comando:
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
Substitua:
- POOL_ID: o nome do pool de CA
- LOCATION: o local do pool de CA. Para conferir a lista completa de locais, consulte Locais.
Os nomes de recursos podem conter letras, números, hifens (-) e sublinhados (_) e podem ter até 63 caracteres.
Crie uma AC raiz:
Um pool de CA está vazio na criação. Para solicitar certificados de um pool de CA, é necessário adicionar uma CA a ele.
Para criar uma CA raiz e adicioná-la ao pool de CA 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 CA
- LOCATION: o local do pool de CA. Para conferir a lista completa de locais, consulte Locais.
O serviço de CA retorna a seguinte saída quando cria a CA raiz:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
Ative a CA raiz inserindo y quando solicitado pela CLI gcloud.
Opcional: criar um pool de CA subordinada
Para criar um pool de CA subordinada, execute o seguinte comando:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
Substitua:
- SUBORDINATE_POOL_ID: o ID do pool de CA subordinada
- LOCATION: o local do pool de CA subordinada. Para conferir a lista completa de locais, consulte Locais.
- TIER: o nível de CA subordinada, devops ou enterprise
Opcional: criar uma CA subordinada assinada por uma CA raiz armazenada em Google Cloud
Para criar uma CA subordinada no pool de CA 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 conferir a lista completa de locais, consulte Locais.
- SUBORDINATE_POOL_ID: o ID do pool de CA subordinada criado na seção anterior
- POOL_ID: o ID do pool de CA pai
- ISSUER_LOCATION: o local do certificado
- EXISTING_CA_ID: o ID da CA de origem
- PROJECT_ID: o ID do projeto
- LOCATION_ID: o local 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 para 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 CA usa a biblioteca de criptografia Pyca para gerar e armazenar um novo par de chaves assimétricas na máquina local. Essa chave nunca é enviada ao serviço de CA.
Para permitir que o SDK Google Cloud use a biblioteca de criptografia Pyca, é necessário ativar os pacotes de sites.
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 CA criado
- ISSUER_LOCATION: o local da autoridade de certificação 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 CA, a CA 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 CA que emitiu o certificado
- LOCATION: o local do pool de CA
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 CA
- LOCATION: o local do pool de CA. 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 serviço de CA exclui permanentemente a CA 30 dias após o início da exclusão.Exclua o pool de CA.
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 Google Cloud projeto:
gcloud projects delete PROJECT_ID
A seguir
- Saiba mais sobre pools de CA.
- Saiba como criar um pool de CA.
- Saiba como criar CAs.
- Saiba como solicitar certificados.
- Saiba como controlar o tipo de certificados que um pool de CA pode emitir.