Criar uma autoridade certificadora raiz
Nesta página, descrevemos como criar uma autoridade de certificação (CA) raiz em um pool de CAs.
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. Como resultado, todos os certificados emitidos pela CA raiz são confiáveis.
Antes de começar
- Verifique se você tem o papel do IAM de CA Service Operation Manager
(
roles/privateca.caManager
) ou de Administrador de 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 de 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á no topo da cadeia de certificados. Nenhuma outra CA pode revogar o certificado de CA. A CRL da CA raiz se aplica somente aos outros certificados emitidos pela CA raiz, mas não a si mesma.
Console
Para criar uma AC raiz, siga as etapas abaixo.
Acesse a página Certificate Authority Service no console do Google Cloud.
Acessar o Certificate Authority Service (em inglês)
Clique na guia CA manager.
Clique em Criar CA.
Selecionar o tipo de CA
Para definir as configurações permanentes da AC, como camada, local, ciclo de vida e o estado operacional na criação, faça o seguinte:
- Selecione CA raiz.
- No campo Válido para, insira a duração que você quer que os certificados emitidos pelo certificado de CA sejam válidos.
- Opcional: selecione um nível para a CA.
- Clique em Região e, na lista, selecione o local onde você quer criar a AC. Recomendamos a criação da AC geograficamente próxima aos 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 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 da empresa ou a unidade de negócios.
- 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 região administrativa, digite o nome da sua cidade.
- No campo Nome comum da CA, 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 depois de criar a AC.
- Clique em Próxima.
- Escolha o algoritmo de chave que melhor atende à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 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 AC.
A publicação de CRL e certificado CA 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 à CA, faça o seguinte:
- Clique em Adicionar item.
- No campo Chave 1, insira a chave do rótulo.
- No campo Valor 1, digite o valor do rótulo.
- Se você 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.
Analise com atenção todas as configurações e clique em Criar para criar a AC.
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 AC.
Para mais informações sobre este 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 você não incluir
essa sinalização, o algoritmo da chave será
rsa-pkcs1-4096-sha256
por padrão. Para mais informações, consulte sinalização --key-algorithm.
Por padrão, a AC é 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 gerenciada pelo Google, use o exemplo de configuração a seguir:
Para criar uma AC raiz usando uma chave autogerenciada, use o exemplo de configuração a seguir:
Go
Para autenticar o 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 o 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 o 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 se a AC funciona conforme o 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 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 CA.
Go
Para autenticar o 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 o 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 o 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
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 é capaz de emitir certificados, solicite um certificado
do pool de ACs associado e mencione explicitamente o nome da AC que você quer
testar usando a sinalização --ca
.
Use os seguintes métodos para solicitar um certificado de um pool de ACs:
- Deixe que o CA Service crie uma chave privada ou pública para você.
- Gerar sua própria chave privada ou pública e enviar uma solicitação de assinatura de certificado (CSR, na sigla em inglês).
É mais fácil usar uma chave privada ou pública 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 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 é 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 para a raiz.
DNS_NAME: um ou mais nomes alternativos de assunto do DNS (SANs, na sigla em inglês) separados por vírgulas.
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 CA em um pool de CAs ou para mais informações sobre como solicitar certificados, consulte Solicitar um certificado e ver certificados emitidos.
Clonar autoridades certificadoras
Para clonar uma AC atual 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 sinalização --from-ca
é compatível com a criação da AC raiz e subordinada. A
AC atual precisa estar no mesmo pool de ACs que a nova.
A sinalização --key-algorithm
copia toda a configuração da AC atual, 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 AC fornecendo explicitamente a sinalização adequada. Por exemplo, você ainda pode
especificar "--subject SUBJECT" para usar um novo assunto.
Se você omitir a flag --key-algorithm
, o algoritmo vai usar o seguinte 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.