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 AC permite implantar e gerenciar ACs privadas sem precisar 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, você precisa do papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie 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 Google Cloud projeto.
Ative a API Certificate Authority Service:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable privateca.googleapis.com
Verifique se o faturamento está ativado para o 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 AC, como pools de ACs e ACs, 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 ACs (autoridades certificadoras) é uma coleção de várias ACs. Um pool de ACs oferece a capacidade de alternar as cadeias de confiança sem nenhuma interrupção ou inatividade das cargas de trabalho.
Para criar um pool de ACs 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 ACs
- LOCATION: o local do pool de ACs. Para 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 ACs está vazio na criação. 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 a lista completa de locais, consulte Locais.
O serviço de AC retorna a saída a seguir quando cria a AC 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 ACs subordinadas
Para criar um pool de ACs 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 ACs subordinadas
- LOCATION: o local do pool de ACs subordinadas. Para a lista completa de locais, consulte Locais.
- TIER: o nível de AC subordinada, devops ou enterprise
Opcional: criar uma AC subordinada assinada por uma AC raiz armazenada em Google Cloud
Para criar uma AC subordinada no pool de ACs subordinadas 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 AC subordinada
- LOCATION: o local da AC subordinada. Para a lista completa de locais, consulte Locais.
- SUBORDINATE_POOL_ID: o ID do pool de ACs subordinadas criado na seção anterior
- POOL_ID: o ID do pool de ACs principais
- ISSUER_LOCATION: o local do certificado
- EXISTING_CA_ID: o ID da AC 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 AC 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 AC 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 AC 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 AC.
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 ACs criado
- ISSUER_LOCATION: o local da autoridade certificadora que emitiu o certificado digital
O serviço de AC 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 ACs
Para revogar um certificado, execute o seguinte comando:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
Substitua:
Exclua a AC.
Só é possível excluir uma AC depois de revogar todos os certificados emitidos por ela.
Desative a AC.
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATIONSubstitua:
- CA_ID: o ID do recurso da AC
- POOL_ID: o ID do recurso do pool de ACs
- LOCATION: o local do pool de ACs. Para a lista completa de locais, consulte Locais.
Exclua a AC.
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
O estado da AC muda para
Deleted. O serviço de AC exclui permanentemente a AC 30 dias após o início da exclusão.Exclua o pool de ACs.
Só é possível excluir um pool de ACs depois que a AC nele for excluída permanentemente.
gcloud privateca pools delete POOL_ID --location=LOCATIONExclua o projeto.
Exclua um Google Cloud projeto:
gcloud projects delete PROJECT_ID
A seguir
- Saiba mais sobre pools de ACs.
- Saiba como criar um pool de ACs.
- Saiba como criar ACs.
- Saiba como solicitar certificados.
- Saiba como controlar o tipo de certificados que um pool de ACs pode emitir.