Criar uma autoridade certificadora raiz
Esta página descreve como criar uma autoridade certificadora raiz (AC) em um pool de ACs.
Uma AC raiz está no topo da hierarquia de uma infraestrutura de chave pública (ICP) e é responsável por formar a âncora confiável da ICP. Para participar e usar certificados em uma ICP, um dispositivo, software ou componente precisa confiar nela. Isso é feito configurando o dispositivo, o software ou o componente para confiar na AC raiz. Como resultado, todos os certificados emitidos pela AC raiz são confiáveis.
Antes de começar
- Verifique se você tem o papel do IAM de Gerente de operações de serviço de CA
(
roles/privateca.caManager
) ou de administrador do serviço de CA (roles/privateca.admin
). Para mais informações, consulte Configurar políticas do IAM. - Criar um pool de CA.
- Determine as configurações da AC.
Crie uma AC raiz:
Uma AC raiz tem um certificado autoassinado que você precisa distribuir para as lojas de confiança dos seus clientes. O certificado da AC raiz está no topo da cadeia de certificados. Nenhuma outra AC pode revogar o certificado da AC. O 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 Gerenciador de ACs.
Clique em Criar AC.
Selecionar o tipo de CA
Para configurar as configurações permanentes da AC, como nível, local, duração e estado operacional na criação, faça o seguinte:
- Selecione CA raiz.
- No campo Válido por, insira o período de validade dos certificados emitidos pelo certificado da AC.
- 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 criar a AC geograficamente perto 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 do certificado. Na lista, selecione o perfil de certificado que corresponde ao tipo de certificados que você quer que a AC emita.
Clique em Próxima.
- No campo Organização (O), insira o nome da sua empresa.
- Opcional: no campo Unidade organizacional (UO), insira a subdivisão da empresa ou a unidade de negócios.
- Opcional: no campo Nome do país, insira 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, insira o nome da sua cidade.
- No campo Nome comum da AC (CN), insira o nome da AC.
- No campo ID do pool, insira o nome do pool de ACs. Não é possível mudar o pool de ACs depois de criar a AC.
- Clique em Próxima.
- Escolha o algoritmo de chave que melhor atenda às suas necessidades. Para 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 gerenciado por você.
- Escolha se você quer desativar a publicação de listas de revogação de certificados (CRLs) e certificados de AC no bucket do Cloud Storage.
- Clique em Próxima.
Se você não selecionar um bucket autogerenciado do Cloud Storage, o CA Service vai criar um bucket gerenciado pelo Google no mesmo local que a AC.
A publicação de CRL e do certificado de AC em um bucket do Cloud Storage é ativada por padrão. Para desativar essas configurações, clique nos botões.
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, insira a chave do rótulo.
- No campo Valor 1, insira o valor do rótulo.
- Se quiser 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 todas as configurações com cuidado e clique em Criar para criar a AC.
gcloud
Para criar um pool de AC, 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 AC.
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 sinalização é opcional. Se você não incluir
essa flag, o algoritmo de chave será definido como
rsa-pkcs1-4096-sha256
por padrão. Para mais informações, consulte --key-algorithm flag.
Por padrão, a AC é criada no estado
STAGED
. Para ativar uma AC por padrão, inclua a flag--auto-enable
.Se você quiser usar um bucket do Cloud Storage gerenciado pelo cliente para publicar certificados de AC e CRLs, adicione
--bucket bucket-name
ao comando. Substitua bucket-name pelo nome do bucket do Cloud Storage.Para conferir a lista completa de configurações, execute o seguinte comando:
gcloud privateca roots create --help
Terraform
Para criar uma AC raiz usando uma chave de propriedade e gerenciamento do Google, use a seguinte configuração de exemplo:
Para criar uma AC raiz usando uma chave autogerenciada, use o seguinte exemplo de configuração:
Go
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no serviço de CA, 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 que a AC funciona conforme o esperado, é possível ativá-la para emitir certificados balanceados de carga para o pool de AC.
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 AC 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 AC.
Go
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no serviço de CA, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
API REST
Ative a AC para emitir 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
.
Use os seguintes métodos para solicitar um certificado de um pool de ACs:
- Peça para o serviço de AC 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).
É mais fácil usar uma chave pública ou privada gerada automaticamente 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 comando gcloud
a seguir:
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 é gravada no formato PEM.
- CERT_FILENAME: o arquivo em que o arquivo de cadeia de certificados codificado em PEM resultante é gravado. A ordem da cadeia de certificados é da folha à raiz.
DNS_NAME: um ou mais nomes alternativos do assunto (SANs) do DNS separados por vírgulas.
A flag
--generate-key
gera uma nova chave privada RSA-2048 na máquina.
Para usar uma solicitação de assinatura de certificado (CSR) e solicitar um certificado de uma AC em um pool de ACs ou para mais informações sobre como solicitar certificados, consulte Solicitar um certificado e conferir os certificados emitidos.
Clonar autoridades certificadoras
Para clonar uma AC e renová-la ou criar uma nova 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 flag --from-ca
tem suporte para a criação de ACs raiz e subordinadas. A
AC existente precisa estar no mesmo pool de ACs que a nova AC.
A flag --key-algorithm
copia toda a configuração da AC da AC atual,
exceto a versão da chave do Cloud KMS e o bucket do Cloud Storage. No entanto,
você ainda pode substituir qualquer um dos valores de configuração na nova AC fornecendo
explicitamente a flag apropriada. Por exemplo, ainda é possível
especificar `--subject SUBJECT para usar um novo assunto.
Se você omitir a flag --key-algorithm
, o algoritmo vai usar o padrão:
rsa-pkcs1-4096-sha256
para ACs raiz.rsa-pkcs1-2048-sha256
para ACs subordinadas.
Para mais informações sobre esse comando gcloud
, consulte
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.