Criar uma autoridade certificadora raiz
Nesta página, descrevemos como criar uma autoridade de certificação (AC) raiz em um pool de ACs.
Uma AC raiz está no topo de uma hierarquia de infraestrutura de chave pública (ICP) e é responsável por formar a âncora de confiança da ICP. Para participar adequadamente e usar os certificados em uma ICP, um dispositivo, software ou componente precisa confiar na ICP. Isso é feito configurando o dispositivo, software ou componente para confiar na CA raiz. Por isso, todos os certificados emitidos pela CA raiz são confiáveis.
Antes de começar
- Verifique se você tem o papel do IAM Administrador de operações de serviço de CA
(
roles/privateca.caManager
) ou Administrador de serviços de CA (roles/privateca.admin
). Para mais informações, consulte Configurar políticas do IAM. - Criar um pool de CA.
- Determinar as configurações da AC.
Crie uma AC raiz:
Uma AC raiz tem um certificado autoassinado que você precisa distribuir para os repositórios de confiança dos seus clientes. O certificado da CA raiz está na parte superior da cadeia de certificados. Nenhuma outra CA pode revogar o certificado de CA. A CRL da CA raiz se aplica apenas aos outros certificados emitidos pela CA raiz, mas não a ela mesma.
Console
Para criar uma AC raiz, faça o seguinte.
Acesse a página Certificate Authority Service no console do Google Cloud.
Clique na guia Gerente de CAs.
Clique em Criar CA.
Selecionar o tipo de CA
Para definir as configurações permanentes da AC, como nível, local, ciclo de vida e estado operacional na criação, faça o seguinte:
- Selecione AC raiz.
- No campo Válido para, insira o período de validade dos certificados emitidos pelo certificado de CA.
- Opcional: selecione um nível para a AC.
- Clique em Região e, na lista, selecione o local em que você quer criar a AC. Recomendamos a criação da AC geograficamente próxima dos clientes do seu aplicativo. Para mais informações, consulte Como escolher o melhor local.
Opcional: selecione o estado operacional da AC a ser criada.
Opcional: clique em Perfil de certificado. Na lista, selecione o perfil de certificado que corresponde ao tipo de certificado que você quer que a CA emita.
Clique em Próxima.
- No campo Organização (O), digite o nome da sua empresa.
- Opcional: no campo Unidade organizacional (UO), insira a subdivisão ou a unidade de negócios da empresa.
- Opcional: no campo Nome do país, digite um código de país com duas letras.
- Opcional: no campo Nome do estado ou da província, insira o nome do seu estado.
- Opcional: no campo Nome da localidade, digite o nome da sua cidade.
- No campo Nome comum da CA (CN), digite o nome da CA.
- No campo ID do pool, digite o nome do pool de ACs. Não é possível alterar o pool de ACs após criar a AC.
- Clique em Próxima.
- Escolha o algoritmo de chave que melhor atende às suas necessidades. Para mais informações sobre como decidir o algoritmo de chave adequado, consulte Escolher um algoritmo de chave.
- Clique em Próxima.
As etapas a seguir são opcionais. Se você pular essas etapas, as configurações padrão serão aplicadas.
- Escolha se você quer usar um bucket do Cloud Storage gerenciado pelo Google ou autogerenciado.
- Escolha se você quer desativar a publicação de listas de revogação de certificados (CRLs) e certificados de CA no bucket do Cloud Storage.
- Clique em Próxima.
Se você não selecionar um bucket autogerenciado do Cloud Storage, o CA Service criará um bucket gerenciado pelo Google no mesmo local da CA.
A publicação da CRL e do certificado de CA em um bucket do Cloud Storage é ativada por padrão. Para desativar essas configurações, clique nos botões de alternância.
As etapas a seguir são opcionais.
Se você quiser adicionar rótulos à AC, faça o seguinte:
- Clique em Adicionar item.
- No campo Chave 1, digite a chave do rótulo.
- No campo Valor 1, digite o valor do marcador.
- Para adicionar outro rótulo, clique em Adicionar item. Em seguida, adicione a chave e o valor do rótulo, conforme mencionado nas etapas 2 e 3.
- Clique em Próxima.
Revise cuidadosamente todas as configurações e clique em Criar para criar a CA.
gcloud
Para criar um pool de ACs, execute o seguinte comando:
gcloud privateca pools create POOL_ID
Substitua POOL_ID pelo nome do pool de ACs.
Para mais informações, consulte Criar um pool de ACs.
Para mais informações sobre esse comando
gcloud
, consulte gcloud privateca pools create.Crie uma nova AC raiz no pool de ACs que você criou.
gcloud privateca roots create ROOT_CA_ID --pool=POOL_ID \ --key-algorithm=KEY_ALGORITHM \ --subject="CN=my-ca, O=Test LLC"
Substitua:
- ROOT_CA_ID: o nome da AC.
- POOL_ID: o nome do pool de ACs.
- KEY_ALGORITHM: o algoritmo a ser usado para criar uma chave do Cloud KMS. Essa flag é opcional. Se ela não for incluída, o algoritmo da chave será definido como
rsa-pkcs1-4096-sha256
por padrão. Para mais informações, consulte --key-algorithm flag.
Por padrão, a CA é criada no estado
STAGED
. Para ativar uma AC por padrão, inclua a sinalização--auto-enable
.Se você quiser usar um bucket do Cloud Storage gerenciado pelo cliente para publicar certificados de CA e CRLs, adicione
--bucket bucket-name
ao comando. Substitua bucket-name pelo nome do bucket do Cloud Storage.Para ver a lista completa de configurações, execute o seguinte comando:
gcloud privateca roots create --help
Terraform
Para criar uma CA raiz usando uma chave de propriedade e gerenciada pelo Google, use o seguinte exemplo de configuração:
Para criar uma CA raiz usando uma chave autogerenciada, use o seguinte exemplo de configuração:
Go
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
API REST
Crie uma CA raiz.
Método HTTP e URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities?certificate_authority_id=ROOT_CA_ID
Corpo JSON da solicitação:
{ "type": "SELF_SIGNED", "lifetime": { "seconds": 315576000, "nanos": 0 }, "config": { "subject_config": { "subject": { "organization": "ORGANIZATION_NAME", "common_name": "COMMON_NAME" } }, "x509_config":{ "ca_options":{ "is_ca":true }, "key_usage":{ "base_key_usage":{ "cert_sign":true, "crl_sign":true } } } }, "key_spec":{ "algorithm":"RSA_PKCS1_4096_SHA256" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }
Pesquise a operação até que ela seja concluída.
Método HTTP e URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Depois de verificar se a AC funciona conforme esperado, ative-a para começar a emitir certificados com balanceamento de carga para o pool de ACs.
Ativar uma AC raiz
gcloud
Para ativar uma AC raiz, execute o seguinte comando gcloud
:
gcloud privateca roots enable ROOT_CA_ID --pool=POOL_ID
Substitua:
- ROOT_CA_ID: o nome da AC.
- POOL_ID: o nome do pool de ACs.
Terraform
Se você usar o Terraform para criar uma CA raiz, ela será ativada na criação. Para criar uma AC raiz no estado STAGED
, defina o campo desired_state
como STAGED
ao criar a AC.
É possível definir o campo desired_state
como ENABLED
ou DISABLED
após a criação da CA.
Go
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no CA Service, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
API REST
Permitir que a AC emita certificados do pool de ACs.
Método HTTP e URL:
POST https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/ROOT_CA_ID:enable
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": false }
Pesquise a operação até que ela seja concluída.
Método HTTP e URL:
GET https://privateca.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/operation-UUID", "metadata": {...}, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.security.privateca.v1.CertificateAuthority", "name": "...", } }
Testar uma AC
Para verificar se uma AC pode emitir certificados, solicite um certificado do
pool de AC associado e mencione explicitamente o nome da AC que você quer
testar usando a flag --ca
.
É possível usar os seguintes métodos para solicitar um certificado de um pool de ACs:
- Peça para o CA Service criar uma chave privada ou pública para você.
- Gere sua própria chave privada ou pública e envie uma solicitação de assinatura de certificado (CSR, na sigla em inglês).
É mais fácil usar uma chave privada gerada automaticamente ou uma chave pública para solicitar um certificado de uma AC em um pool de ACs. Esta seção fornece informações sobre como testar uma AC usando esse método.
Para usar uma chave privada ou pública gerada automaticamente para solicitar um certificado de uma AC em um pool de ACs, execute o seguinte comando gcloud
:
gcloud privateca certificates create \
--issuer-pool=POOL_ID \
--ca=ROOT_CA_ID \
--generate-key \
--key-output-file=KEY_FILENAME \
--cert-output-file=CERT_FILENAME \
--dns-san=DNS_NAME
Substitua:
- POOL_ID: o nome do pool de ACs.
- ROOT_CA_ID: o identificador exclusivo da AC que você quer testar.
- KEY_FILENAME: o arquivo em que a chave gerada está escrita no formato PEM.
- CERT_FILENAME: o arquivo em que o arquivo da cadeia de certificados codificado em PEM resultante é gravado. A ordem da cadeia de certificados é da folha para a raiz.
DNS_NAME: um ou mais nomes alternativos de assunto do DNS (SANs, na sigla em inglês) separados por vírgula.
A sinalização
--generate-key
gera uma nova chave privada RSA-2048 na sua máquina.
Para usar uma solicitação de assinatura de certificado (CSR, na sigla em inglês) para solicitar um certificado de uma AC em um pool de AC ou para mais informações sobre a solicitação de certificados, consulte Solicitar um certificado e ver certificados emitidos.
Clonar autoridades certificadoras
Para clonar uma AC atual e renová-la ou para criar uma nova AC com a mesma configuração, execute o seguinte comando:
gcloud privateca roots create NEW_CA_ID --pool=POOL_ID \
--from-ca=EXISTING_CA_ID \
--key-algorithm "ec-p384-sha384"
Substitua:
- NEW_CA_ID: o identificador exclusivo da nova AC.
- POOL_ID: o nome do pool de ACs em que você quer criar a nova AC.
A sinalização --from-ca
é compatível com a criação de CAs raiz e subordinadas. A
AC existente precisa estar no mesmo pool de ACs que a nova AC.
A sinalização --key-algorithm
copia toda a configuração da AC da AC existente
(exceto a versão da chave do Cloud KMS e o bucket do Cloud Storage). No entanto, ainda é possível substituir qualquer um dos valores de configuração na nova CA fornecendo explicitamente a sinalização apropriada. Por exemplo, você ainda pode especificar "--subject" SUBJECT para usar um novo assunto.
Se você omitir a sinalização --key-algorithm
, o algoritmo será definido por padrão:
rsa-pkcs1-4096-sha256
para CAs raiz.rsa-pkcs1-2048-sha256
para ACs subordinadas.
Para mais informações sobre esse comando gcloud
, veja gcloud privateca roots create.
A seguir
- Saiba como criar uma AC subordinada.
- Saiba como solicitar certificados.
- Saiba mais sobre modelos e políticas de emissão.