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 da hierarquia de uma infraestrutura de chave pública (ICP) e é responsável por formar a âncora confiável da ICP. Para participar adequadamente e usar 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 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.
- Determinar 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 CA pode revogar o certificado de CA. A CRL da a CA raiz se aplica somente aos outros certificados emitidos pela CA raiz, mas não aos por conta própria.
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 CA.
Selecionar o tipo de CA
Para definir as configurações permanentes da CA, como nível, localização, e o estado operacional na criação, faça o seguinte:
- Selecione AC raiz.
- No campo Válido para, insira a duração desejada certificados emitidos pelo certificado de CA para serem 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 criar a CA geograficamente próxima aos clientes do seu aplicativo. Para mais informações, consulte Como escolher 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), 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, digite o nome da 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 a criação da 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 Escolha 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 entre usar uma conta gerenciada pelo Google ou autogerenciada do bucket do Cloud Storage.
- Escolha se você quer desativar a publicação de certificados listas de revogação (CRLs) e certificados de AC para o Cloud Storage do Google Cloud.
- Clique em Próxima.
Se você não selecionar um bucket autogerenciado do Cloud Storage, O CA Service cria um bucket gerenciado pelo Google no mesmo local como a CA.
Publicação da CRL e do certificado de CA em um bucket do Cloud Storage é ativado 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 marcador, clique em Adicionar item. Em seguida, adicione o 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 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 uma AC: pool.
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 um
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 Para mais informações, consulte --key-algorithm flag.
Por padrão, a AC é criada no estado
STAGED
. Para ativar uma AC 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 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 CA raiz usando uma chave de propriedade e gerenciada pelo Google, use o exemplo a seguir configuração:
Para criar uma CA raiz usando uma chave autogerenciada, use o exemplo a seguir 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 confirmar que a AC funciona como esperado, ative-a para começar a emitir certificados com carga balanceada 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 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 de
o pool de AC associado e mencione explicitamente o nome da AC que você quer
teste usando a sinalização --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 uma certificado de uma AC em um pool de ACs. Esta seção fornece informações sobre testar uma AC usando esse método.
Usar uma chave privada ou pública gerada automaticamente para solicitar um certificado
Em 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 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 flag
--generate-key
gera uma nova chave privada RSA-2048 na máquina.
Para usar uma solicitação de assinatura de certificado (CSR) para solicitar um certificado de uma CA em um pool de ACs ou, para obter mais informações sobre solicitação de certificados, consulte Solicite um certificado e veja 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 sinalização --from-ca
é compatível com a criação de CAs raiz e subordinadas. O
A AC atual 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,
ainda será possível substituir qualquer um dos valores de configuração na nova CA
fornecendo explicitamente a sinalização adequada. Por exemplo, ainda é possível
especifique `--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 este 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.