Emita um certificado através da Google Cloud CLI
Esta página explica como pode gerar ou emitir certificados através do Certificate Authority Service com a CLI gcloud.
O serviço de AC permite-lhe implementar e gerir ACs privadas sem gerir a infraestrutura.
Antes de começar
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
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.
Enable the Certificate Authority Service API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable privateca.googleapis.com
Verify that billing is enabled for your Google Cloud project.
Configure uma localização predefinida para utilização nos comandos
gcloud
neste início rápido.gcloud config set privateca/location LOCATION
Os recursos do serviço de AC, como os conjuntos de ACs e as ACs, residem numa única Google Cloud localização que não pode alterar depois de criar estes recursos.
Crie um grupo de ACs
Um grupo de autoridades de certificação (ACs) é uma coleção de várias ACs. Um conjunto de ACs permite a rotação das cadeias de confiança sem qualquer interrupção ou tempo de inatividade para cargas de trabalho.
Para criar um conjunto de ACs no nível Enterprise, execute o seguinte comando:
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
Substitua o seguinte:
- POOL_ID: o nome do grupo de ACs.
- LOCATION: a localização do grupo de ACs. Para ver a lista completa de localizações, consulte o artigo Localizações.
Os nomes de todos os recursos do serviço de CA têm de conter apenas os carateres permitidos, que são todas as letras, números, hífenes e sublinhados. O comprimento máximo permitido de um nome é de 63 carateres.
Crie uma AC de raiz
Um conjunto de CA está vazio no momento da criação. Para pedir certificados a um conjunto de ACs, tem de adicionar uma AC ao mesmo.
Para criar uma CA de raiz e adicioná-la ao conjunto de CAs que criou, execute o seguinte comando:
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA, O=Google"
Substitua o seguinte:
- CA_ID: o nome da AC de raiz.
- POOL_ID: o nome do grupo de ACs.
- LOCATION: a localização do grupo de ACs. Para ver a lista completa de localizações, consulte Localizações.
O serviço de CA devolve o seguinte comando quando cria a CA de raiz:
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
Ative a AC raiz introduzindo y
quando lhe for pedido pela CLI gcloud.
Opcional: crie um grupo de CAs subordinadas
Para criar um conjunto de ACs subordinado, execute o seguinte comando:
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
Substitua o seguinte:
- SUBORDINATE_POOL_ID: o ID do conjunto de ACs subordinado.
- LOCATION: a localização do conjunto de ACs subordinadas. Para ver a lista completa de localizações, consulte Localizações.
- TIER: o nível da CA subordinada, devops ou enterprise.
Opcional: crie uma CA subordinada assinada por uma CA de raiz armazenada em Google Cloud
Para criar uma AC subordinada no conjunto de ACs subordinadas que criou no passo 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 o seguinte:
- SUBORDINATE_CA_ID: o ID da AC subordinada.
- LOCATION: a localização da CA subordinada. Para ver a lista completa de localizações, consulte Localizações.
- SUBORDINATE_POOL_ID: o ID do conjunto de AC subordinado que criou na secção anterior.
- POOL_ID: o ID do conjunto de ACs principal.
- ISSUER_LOCATION: a localização do certificado.
- EXISTING_CA_ID: o ID da AC de origem.
- PROJECT_ID: o ID do projeto.
- LOCATION_ID: a localização do conjunto de chaves.
- KEY_RING: o nome do conjunto de chaves onde a chave se encontra.
- KEY: o nome da chave.
- KEY_VERSION: a versão da chave.
A seguinte declaração é devolvida 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 AC subordinada introduzindo y
quando lhe for pedido pela CLI gcloud.
Crie um certificado
Para usar a AC recém-criada para criar um certificado, faça o seguinte:
Instale a biblioteca de criptografia Pyca com 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 no seu computador local. Esta chave nunca é enviada para o serviço de AC.
Para permitir que o Google Cloud SDK use a biblioteca de criptografia Pyca, tem de ativar os pacotes do site.
macOS ou Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1
Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1
Crie 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.pem
Substitua o seguinte:
- POOL_ID: o ID do recurso do conjunto de ACs que criou.
- ISSUER_LOCATION: a localização da autoridade de certificação que emitiu o certificado digital.
O serviço de CA devolve a seguinte resposta:
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
Limpar
Faça a limpeza eliminando o conjunto de ACs, a AC e o projeto que criou para este início rápido.
Revogue o certificado.
- CERT_NAME: o nome do certificado que quer revogar.
- POOL_ID: o nome do conjunto de ACs que emitiu o certificado.
- LOCATION: a localização do grupo de ACs.
Para revogar um certificado, execute o seguinte comando:
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
Substitua o seguinte:
Elimine a CA.
Só pode eliminar uma AC depois de revogar todos os certificados emitidos por esta.
Desative a AC.
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION
Substitua o seguinte:
- CA_ID: o ID do recurso da AC.
- POOL_ID: o ID do recurso do conjunto de ACs.
- LOCATION: a localização do grupo de ACs. Para ver a lista completa de localizações, consulte Localizações.
Elimine a CA.
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
O estado da CA é alterado para
Deleted
. O CA elimina permanentemente o CA 30 dias após iniciar a eliminação.Elimine o conjunto de CA.
Só pode eliminar um conjunto de ACs depois de a AC no mesmo ter sido eliminada permanentemente.
gcloud privateca pools delete POOL_ID --location=LOCATION
Elimine o projeto.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
O que se segue?
- Saiba mais acerca dos conjuntos de ACs.
- Saiba como criar um grupo de CA.
- Saiba como criar CAs.
- Saiba como pedir certificados.
- Saiba como pode controlar o tipo de certificados que um conjunto de ACs pode emitir.